From 53828bd958ab22522253f2a11772765197351b15 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Sat, 22 Feb 2025 16:11:21 +0100 Subject: ... --- overlays/worktime/worktime/__main__.py | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) (limited to 'overlays') diff --git a/overlays/worktime/worktime/__main__.py b/overlays/worktime/worktime/__main__.py index cca5ab5a..c13d82ca 100755 --- a/overlays/worktime/worktime/__main__.py +++ b/overlays/worktime/worktime/__main__.py @@ -542,7 +542,7 @@ def worktime(pull_forward_cutoff, waybar, **args): return difference_string - difference = worktime.time_to_work - worktime.time_worked + sum(worktime.pull_forward.values(), start=timedelta(milliseconds=0)) + difference = worktime.time_to_work - worktime.time_worked total_minutes_difference = 5 * ceil(difference / timedelta(minutes = 5)) if worktime.running_entry and abs(difference) < timedelta(days = 1) and (total_minutes_difference > 0 or abs(worktime.running_entry) >= abs(difference)) : @@ -564,31 +564,29 @@ def worktime(pull_forward_cutoff, waybar, **args): return f"{indicator}{difference_string}" else: difference_string = difference_string(total_minutes_difference * timedelta(minutes = 1)) - if worktime.now_is_workday: - return difference_string - else: - return f"({difference_string})" + return difference_string out_class = "running" if worktime.running_entry else "stopped" difference = worktime.time_to_work - worktime.time_worked if worktime.running_entry and -min(timedelta(milliseconds=0), difference) > sum(worktime.pull_forward.values(), start=timedelta(milliseconds=0)) or not worktime.running_entry and max(timedelta(milliseconds=0), difference) > worktime.time_per_day(worktime.now.date()) and worktime.now_is_workday: out_class = "over" - tooltip = tooltip_timedelta(difference) - if worktime.time_pulled_forward >= min(pull_forward_cutoff, timedelta(seconds = 1)): + pull_forward_sum = sum(worktime.pull_forward.values(), start=timedelta(milliseconds=0)) + if pull_forward_sum >= min(pull_forward_cutoff, timedelta(seconds = 1)): worktime_no_pulled_forward = deepcopy(worktime) worktime_no_pulled_forward.time_to_work -= worktime_no_pulled_forward.time_pulled_forward worktime_no_pulled_forward.time_pulled_forward = timedelta() worktime_no_pulled_forward.pull_forward = dict() + worktime.time_to_work += pull_forward_sum - difference_string = format_worktime(worktime) difference_string_no_pulled_forward = format_worktime(worktime_no_pulled_forward) - tooltip = tooltip_timedelta(worktime_no_pulled_forward.time_to_work - worktime_no_pulled_forward.time_worked) + "…" + tooltip - if worktime.time_pulled_forward >= pull_forward_cutoff: - out_text = f"{difference_string_no_pulled_forward}…{difference_string}" + tooltip = tooltip_timedelta(worktime_no_pulled_forward.time_to_work - worktime_no_pulled_forward.time_worked) + "…" + tooltip_timedelta(difference + pull_forward_sum) + if pull_forward_sum >= pull_forward_cutoff: + out_text = f"{difference_string_no_pulled_forward}…{format_worktime(worktime)}" else: out_text = format_worktime(worktime) else: + tooltip = tooltip_timedelta(difference) out_text = format_worktime(worktime) if waybar: @@ -659,6 +657,9 @@ def time_worked(now, waybar, **args): else: out_text = str(worked) + if not now.now_is_workday: + out_text = f'({out_text})' + if waybar: json.dump({"text": out_text, "class": out_class, "tooltip": tooltip}, stdout) else: -- cgit v1.2.3