X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=guiltcards.py;h=00f02f8344bb0e0bfd4927d86ff1ed66132084c2;hb=75c92056e742fc2d3066c7e239e1b718ddf5fd26;hp=cad1cb36da57bb3f49a3857b9b0c250649293f11;hpb=c0290f81d02b98927666ccb8a7e94147bae79ac0;p=guiltcards diff --git a/guiltcards.py b/guiltcards.py index cad1cb3..00f02f8 100755 --- a/guiltcards.py +++ b/guiltcards.py @@ -7,7 +7,7 @@ import base64 web_path = '/guiltcards' decks_dir = 'decks/' -def get_card_data(deck_id, card_id): +def get_card_data(deck_id, card_id, card_type_hint): cards_dir = decks_dir + deck_id if not os.path.exists(cards_dir): os.makedirs(cards_dir) @@ -16,9 +16,10 @@ def get_card_data(deck_id, card_id): with open(path_card, 'r') as f: data = json.loads(f.read()) else: - data = {'title': '?', - 'prompt':'?', - 'answers': ['?', '?']} + data = {'type': card_type_hint, + 'title': 'title', + 'paragraphs': ['first paragraph', 'second paragraph'], + 'answers': ['first option', 'second option']} return data @get(web_path + '/') @@ -29,7 +30,6 @@ def list_decks(): os.makedirs(decks_dir) deck_ids = os.listdir(decks_dir) decks = {} - print('DEBUG', deck_ids) for deck_id in deck_ids: decks[deck_id] = base64.b64decode(deck_id).decode() return dict(web_path=web_path, decks=decks) @@ -58,21 +58,34 @@ def list_cards(deck_id): deck_name=deck_name, cards=cards) +@get(web_path + '/decks//printable') +@view('cards_print') +def print_view(deck_id): + cards_dir = decks_dir + deck_id + cards = [] + if os.path.exists(cards_dir): + card_ids = os.listdir(cards_dir) + for card_id in card_ids: + cards += [get_card_data(deck_id, card_id, None)] + deck_name = base64.b64decode(deck_id).decode() + return dict(cards=cards) + @get(web_path + '/decks//cards/') def new_card(deck_id): card_name = request.query.get('card_name') + card_type = request.query.get('card_type') card_id = base64.b64encode(card_name.encode()).decode() - redirect(web_path + '/decks/' + deck_id + '/cards/' + card_id + '/form') + redirect(web_path + '/decks/' + deck_id + '/cards/' + card_id + + '/form?type=' + card_type) @get(web_path + '/decks//cards//view') @view('card') def show_card(deck_id, card_id): - data = get_card_data(deck_id, card_id) + data = get_card_data(deck_id, card_id, None) return dict(web_path=web_path, deck_id=deck_id, - title=data['title'], - prompt=data['prompt'], - answers=data['answers']) + card_id=card_id, + card=data) @post(web_path + '/decks//cards/') def update_card(deck_id, card_id): @@ -80,13 +93,17 @@ def update_card(deck_id, card_id): if not os.path.exists(cards_dir): os.makedirs(cards_dir) path_card = cards_dir + '/' + card_id - json_dict = { - 'title': request.forms.get('title'), - 'prompt': request.forms.get('prompt'), - 'answers': request.forms.getall('answer') - } - json_dict['answers'] = [answer for answer in json_dict['answers'] - if answer.strip() != ''] + card_type = request.forms.get('type') + json_dict = {'type': request.forms.get('type')} + if card_type == 'action': + json_dict['title'] = request.forms.get('title') + json_dict['paragraphs'] = request.forms.getall('paragraph') + json_dict['paragraphs'] = [paragraph for paragraph in json_dict['paragraphs'] + if paragraph.strip() != ''] + else: + json_dict['answers'] = request.forms.getall('answer') + json_dict['answers'] = [answer for answer in json_dict['answers'] + if answer.strip() != ''] with open(path_card, 'w') as f: f.write(json.dumps(json_dict, indent=4)) redirect(web_path + '/decks/' + deck_id + '/cards/' + card_id + '/view') @@ -94,7 +111,8 @@ def update_card(deck_id, card_id): @get(web_path + '/decks//cards//form') @view('card_form') def card_form(deck_id, card_id): - data = get_card_data(deck_id, card_id) + card_type = request.query.get('type') + data = get_card_data(deck_id, card_id, card_type) card_path = decks_dir + deck_id + '/' + card_id deletable = False if os.path.exists(card_path): @@ -102,9 +120,7 @@ def card_form(deck_id, card_id): return dict(web_path=web_path, card_id=card_id, deck_id=deck_id, - title=data['title'], - prompt=data['prompt'], - answers=data['answers'], + card=data, deletable=deletable) @get(web_path + '/decks//cards//delete')