From 1110fb9e28700bd22d2494547b282d8937aefa63 Mon Sep 17 00:00:00 2001 From: Gregor Kleen Date: Wed, 20 Aug 2025 14:14:40 +0200 Subject: ... --- overlays/worktime/worktime/__main__.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'overlays') diff --git a/overlays/worktime/worktime/__main__.py b/overlays/worktime/worktime/__main__.py index 6ce1331a..b0ac57e1 100755 --- a/overlays/worktime/worktime/__main__.py +++ b/overlays/worktime/worktime/__main__.py @@ -470,9 +470,9 @@ class Worktime(object): self.time_to_work = sum([self.days_to_work[day] for day in self.days_to_work.keys() if day <= self.end_date.date()], timedelta()) for day in [d for d in list(self.pull_forward) if d > self.end_date.date()]: - days_forward = set([d for d in [start_day + timedelta(days = x) for x in range(0, (max(end_day, max(self.pull_forward.keys())) - start_day).days + 1)] if d >= self.end_date.date() and d < day and (not d in self.pull_forward or d == self.end_date.date())]) - extra_days_forward = set([d for d in self.extra_days_to_work.keys() if d >= self.end_date.date() and d < day and (not d in self.pull_forward or d == self.end_date.date())]) - days_forward = days_forward.union(extra_days_forward) + days_forward = set([d for d in [start_day + timedelta(days = x) for x in range(0, (day - start_day).days + 1)] if d >= self.end_date.date() and d < day and (d not in self.pull_forward or d == self.end_date.date())]) + extra_days_forward = set([d for d in self.extra_days_to_work.keys() if d >= self.end_date.date() and d < day and (d not in self.pull_forward or d == self.end_date.date())]) + days_forward |= extra_days_forward extra_day_time_left = timedelta() for extra_day in extra_days_forward: @@ -486,7 +486,7 @@ class Worktime(object): self.extra_days_to_work[extra_day] += extra_day_time * (day_time / extra_day_time_left) hours_per_day_forward = time_forward / len(days_forward) if len(days_forward) > 0 else timedelta() - # days_forward.discard(self.end_date.date()) + days_forward.discard(self.end_date.date()) self.time_pulled_forward += time_forward - hours_per_day_forward * len(days_forward) @@ -610,7 +610,7 @@ def time_worked(now, waybar, **args): out_text = None out_class = "running" if now.running_entry else "stopped" tooltip = tooltip_timedelta(worked) - target_time = max(then.time_per_day(then.now.date()), now.time_per_day(now.now.date())) if then.time_per_day(then.now.date()) and now.time_per_day(now.now.date()) else (then.time_per_day(then.now.date()) if then.time_per_day(then.now.date()) else now.time_per_day(now.now.date())); + target_time = max(then.time_per_day(then.now.date()), now.time_per_day(now.now.date())) if then.time_per_day(then.now.date()) and now.time_per_day(now.now.date()) else (then.time_per_day(then.now.date()) if then.time_per_day(then.now.date()) else now.time_per_day(now.now.date())) difference = target_time - worked difference_pull_forward = difference + now.time_pulled_forward if now.running_entry and difference_pull_forward < timedelta(seconds=0): @@ -641,7 +641,7 @@ def time_worked(now, waybar, **args): clockout_time, exact_clockout_time, clockout_difference = round_clockout_time(difference) clockout_time_pull_forward, exact_clockout_time_pull_forward, clockout_difference_pull_forward = round_clockout_time(difference_pull_forward) - clockout_pull_forward_sum, exact_clockout_pull_forward_sum, _ = round_clockout_time(now.time_to_work - now.time_worked + sum(now.pull_forward.values(), start=timedelta(milliseconds=0))) + clockout_pull_forward_sum, exact_clockout_pull_forward_sum, _ = round_clockout_time(now.time_to_work - now.time_pulled_forward - now.time_worked + sum(now.pull_forward.values(), start=timedelta(milliseconds=0))) if now.running_entry and clockout_time and (clockout_difference >= 0 or clockout_difference_pull_forward >= 0): out_text = f"{difference_string}/{clockout_time:%H:%M}" -- cgit v1.2.3