From 374b69fa21f32678763a0fc31635791ad4a519a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christoffer=20M=C3=BCller=20Madsen?= Date: Sat, 17 Sep 2016 23:38:54 +0200 Subject: [PATCH] =?UTF-8?q?tilf=C3=B8j=20punkt-modul?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- klandr.py | 136 ++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 111 insertions(+), 25 deletions(-) diff --git a/klandr.py b/klandr.py index 4f6c282..d252e46 100755 --- a/klandr.py +++ b/klandr.py @@ -16,6 +16,7 @@ d.set_background_title("Klandr") # Initialization holdets_time = None klandringer = None +events = None date = None @@ -38,8 +39,10 @@ if file_storage == True: def menu_select_date(): global klandringer + global events global holdets_time global date + date_entries = [()] if file_storage == True: if complete_klandringer != {}: @@ -60,48 +63,119 @@ def menu_select_date(): klandringer = complete_klandringer[date] if mongo == True: holdets_time = collection.find({"date":date})[0] - klandringer = holdets_time["data"] + klandringer = holdets_time["klandringer"] + events = holdets_time["events"] menu_main() def menu_main(): code, tag = d.menu("Vælg punkt på dagsordenen:", title="Hovedmenu - " + str(date), choices=[("Timen", "Ændr i beskrivelsen af denne time"), - ("Indledende", "Indledende bemærkninger"), - ("Klandringer", "Så mange klandringer"), - ("Afsluttende", "Afsluttende bemærkninger")]) + ("Punkter", "Ændr punkter på dagsordenen"), + ("Klandringer", "Så mange klandringer")]) if code == d.OK: - if tag == "Indledende": - menu_indledende() + if tag == "Punkter": + menu_events() elif tag == "Klandringer": menu_klandringer() - elif tag == "Afsluttende": - menu_afsluttende() elif tag == "Timen": menu_holdets_time() else: quit() -#################### -# Begin indledende # -#################### +################ +# Begin events # +################ -# TODO: Write indledende +def menu_events(): + code, tag = d.menu("Hvad du vil gøre med punkterne på dagsordenen?", + title="Punkter", + choices=[("Nyt", "Oprette et nyt punkt"), + ("Ændr", "Ændre et eksisterende punkt"), + ("Beskriv", "Beskrive et eksisterende punkt"), + #("Omarrangér", "Omarrangere de eksisterende punkter"), + ("Slet", "Slette et eksisterende punkt"), + ("Batch", "Gå i batch-mode")]) + + if code == d.CANCEL: + menu_main() + elif code == d.OK: + if tag == "Nyt": + create_event() + elif tag == "Batch": + batch_mode() + else: + event = menu_select_event() + if event != None: + if tag == "Ændr": + edit_event(event) + elif tag == "Beskriv": + describe_event(event) + elif tag == "Slet": + delete_event(event) + + menu_events() -################## -# End indledende # -################## +def menu_select_event(): + event_entries = [(str(i),e["title"]) for i,e in enumerate(events)] + code, tag = d.menu("Vælg det punkt du vil ændre/slette", + title="Vælg punkt", + choices=event_entries) + if code == d.OK: + return tag -##################### -# Begin afsluttende # -##################### +def create_event(): + events.append({"title":"","description":""}) + code = edit_event(-1) + if code != d.OK: + del events[-1] + return code -# TODO: Write afsluttende +def edit_event(strid): + id = int(strid) + e = events[id] + code, elements = d.form("Ændr detaljer om punkt", + title="Ændr punkt", + elements=[("Titel:",1,1,e["title"],1,11,40,40)]) + + if code == d.OK: + e["title"] = elements[0] + save() + + return code + +def describe_event(strid): + id = int(strid) + e = events[id] + code, text = d.editbox_str(e["description"], + height=0, + width=0, + title=e["title"]) + + if code == d.OK: + e["description"] = text + save() + + return code + +def delete_event(strid): + id = int(strid) + code = d.yesno("Vil du virkelig slette dette punkt?\n\nDenne handling er ufortrydelig!", + title="Slet punkt!", + yes_label="Ja", + no_label="Nej",) + if code == d.OK: + del events[id] + d.msgbox("Punktet er slettet!") + save() + + return code + +############## +# End events # +############## -################### -# End afsluttende # -################### ##################### # Begin klandringer # @@ -212,7 +286,7 @@ def save(): with open("klandringer.json","w") as jsonfile: jsonfile.write(json.dumps(complete_klandringer)) if mongo == True: - #collection.update_one({"date":date},{"$set": {"data":klandringer}}) + #collection.update_one({"date":date},{"$set": {"klandringer":klandringer}}) collection.update_one({"date":date},{"$set": holdets_time}) ################### @@ -228,7 +302,8 @@ def menu_holdets_time(): title="Holdets time", choices=[("Tid", "Ændre tidspunktet"), ("Sted", "Ændre stedet"), - ("Undertitel", "Give en undertitel")]) + ("Undertitel", "Give en undertitel"), + ("Klandringsskel", "Vælg punktet før klandringerne")]) if code == d.CANCEL: menu_main() @@ -239,6 +314,8 @@ def menu_holdets_time(): change_place() elif tag == "Undertitel": change_subtitle() + elif tag == "Klandringsskel": + change_prepost() menu_holdets_time() @@ -269,6 +346,15 @@ def change_subtitle(): menu_holdets_time() +def change_prepost(): + eventid = menu_select_event() + if eventid != None: + holdets_time['prepost_event'] = eventid + save() + + menu_holdets_time() + + #################### # End holdets time # #################### @@ -282,7 +368,7 @@ def new_date(): if file_storage == True: complete_klandringer[date] = [] if mongo == True: - collection.insert({"date":date,"time":"","place":"","subtitle":"","data":[]}) + collection.insert({"date":date,"time":"","place":"","subtitle":"","klandringer":[],"events":[],"prepost_event":0}) return date else: menu_select_date()