diff --git a/studio/analytics.py b/studio/analytics.py index 0b7c89b..9e4ca34 100644 --- a/studio/analytics.py +++ b/studio/analytics.py @@ -52,6 +52,19 @@ def ifdate(string): return ret +def if_days_a_week(string): + + try: + string = int(string) + if string <= 7 and string >= 1: + return True + else: + return False + except Exception as e: + print("fail", e) + return False + + def get_legacy(project_location): # This function will return analytics data about a project. This particular @@ -832,7 +845,7 @@ def load(project_location): alldates = list(reversed(data["dates"].keys())) prevdate = alldates[alldates.index(today)+1] prev_frac = data["dates"][prevdate].get("fractions", {}).get("project", data["fraction"]) - data["needed"] = ( 1 - prev_frac ) / ( data["duration"] - data["dayspassed"] ) + data["needed"] = ( 1 - prev_frac ) / (( data["duration"] - data["dayspassed"] )/7*data.get("days_a_week", 7)) except: data["needed"] = 0 diff --git a/studio/studio_settingsLayer.py b/studio/studio_settingsLayer.py index cf2bbcb..b9bd000 100644 --- a/studio/studio_settingsLayer.py +++ b/studio/studio_settingsLayer.py @@ -333,7 +333,44 @@ def layer(win): button=do, icon="ok", tip=talk.text("checked")) + + current_Y += 50 + + # Days a week. + + UI_elements.text(layer, win, "Project_days_a_week_setting", + win.current["w"]/2-190, + 110 + current_Y + win.scroll["studio_settings"], + 80, + 40, + set_text=str(win.analytics.get("days_a_week", 7)), + tip=talk.text("days_a_week")) + if win.text["Project_days_a_week_setting"]["text"] != str(win.analytics.get("days_a_week", 7))\ + and analytics.if_days_a_week(win.text["Project_days_a_week_setting"]["text"]): + def do(): + win.analytics["days_a_week"] = int(win.text["Project_days_a_week_setting"]["text"]) + + # Refrashing the analytics + analytics.save(win.project, win.analytics) + win.analytics = analytics.load(win.project) + + UI_elements.roundrect(layer, win, + win.current["w"]/2-150, + 110 + current_Y + win.scroll["studio_settings"], + 40, + 40, + 10, + button=do, + icon="ok", + tip=talk.text("checked")) + + UI_color.set(layer, win, "text_normal") + layer.set_font_size(20) + layer.move_to(win.current["w"]/2-100, + current_Y + win.scroll["studio_settings"] + 135) + layer.show_text(talk.text("days_a_week")) + current_Y += 100