diff options
| -rwxr-xr-x | overlays/worktime/worktime/__main__.py | 23 |
1 files changed, 12 insertions, 11 deletions
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): | |||
| 542 | 542 | ||
| 543 | return difference_string | 543 | return difference_string |
| 544 | 544 | ||
| 545 | difference = worktime.time_to_work - worktime.time_worked + sum(worktime.pull_forward.values(), start=timedelta(milliseconds=0)) | 545 | difference = worktime.time_to_work - worktime.time_worked |
| 546 | total_minutes_difference = 5 * ceil(difference / timedelta(minutes = 5)) | 546 | total_minutes_difference = 5 * ceil(difference / timedelta(minutes = 5)) |
| 547 | 547 | ||
| 548 | if worktime.running_entry and abs(difference) < timedelta(days = 1) and (total_minutes_difference > 0 or abs(worktime.running_entry) >= abs(difference)) : | 548 | 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): | |||
| 564 | return f"{indicator}{difference_string}" | 564 | return f"{indicator}{difference_string}" |
| 565 | else: | 565 | else: |
| 566 | difference_string = difference_string(total_minutes_difference * timedelta(minutes = 1)) | 566 | difference_string = difference_string(total_minutes_difference * timedelta(minutes = 1)) |
| 567 | if worktime.now_is_workday: | 567 | return difference_string |
| 568 | return difference_string | ||
| 569 | else: | ||
| 570 | return f"({difference_string})" | ||
| 571 | 568 | ||
| 572 | out_class = "running" if worktime.running_entry else "stopped" | 569 | out_class = "running" if worktime.running_entry else "stopped" |
| 573 | difference = worktime.time_to_work - worktime.time_worked | 570 | difference = worktime.time_to_work - worktime.time_worked |
| 574 | 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: | 571 | 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: |
| 575 | out_class = "over" | 572 | out_class = "over" |
| 576 | tooltip = tooltip_timedelta(difference) | 573 | pull_forward_sum = sum(worktime.pull_forward.values(), start=timedelta(milliseconds=0)) |
| 577 | if worktime.time_pulled_forward >= min(pull_forward_cutoff, timedelta(seconds = 1)): | 574 | if pull_forward_sum >= min(pull_forward_cutoff, timedelta(seconds = 1)): |
| 578 | worktime_no_pulled_forward = deepcopy(worktime) | 575 | worktime_no_pulled_forward = deepcopy(worktime) |
| 579 | worktime_no_pulled_forward.time_to_work -= worktime_no_pulled_forward.time_pulled_forward | 576 | worktime_no_pulled_forward.time_to_work -= worktime_no_pulled_forward.time_pulled_forward |
| 580 | worktime_no_pulled_forward.time_pulled_forward = timedelta() | 577 | worktime_no_pulled_forward.time_pulled_forward = timedelta() |
| 581 | worktime_no_pulled_forward.pull_forward = dict() | 578 | worktime_no_pulled_forward.pull_forward = dict() |
| 579 | worktime.time_to_work += pull_forward_sum | ||
| 582 | 580 | ||
| 583 | difference_string = format_worktime(worktime) | ||
| 584 | difference_string_no_pulled_forward = format_worktime(worktime_no_pulled_forward) | 581 | difference_string_no_pulled_forward = format_worktime(worktime_no_pulled_forward) |
| 585 | 582 | ||
| 586 | tooltip = tooltip_timedelta(worktime_no_pulled_forward.time_to_work - worktime_no_pulled_forward.time_worked) + "…" + tooltip | 583 | tooltip = tooltip_timedelta(worktime_no_pulled_forward.time_to_work - worktime_no_pulled_forward.time_worked) + "…" + tooltip_timedelta(difference + pull_forward_sum) |
| 587 | if worktime.time_pulled_forward >= pull_forward_cutoff: | 584 | if pull_forward_sum >= pull_forward_cutoff: |
| 588 | out_text = f"{difference_string_no_pulled_forward}…{difference_string}" | 585 | out_text = f"{difference_string_no_pulled_forward}…{format_worktime(worktime)}" |
| 589 | else: | 586 | else: |
| 590 | out_text = format_worktime(worktime) | 587 | out_text = format_worktime(worktime) |
| 591 | else: | 588 | else: |
| 589 | tooltip = tooltip_timedelta(difference) | ||
| 592 | out_text = format_worktime(worktime) | 590 | out_text = format_worktime(worktime) |
| 593 | 591 | ||
| 594 | if waybar: | 592 | if waybar: |
| @@ -659,6 +657,9 @@ def time_worked(now, waybar, **args): | |||
| 659 | else: | 657 | else: |
| 660 | out_text = str(worked) | 658 | out_text = str(worked) |
| 661 | 659 | ||
| 660 | if not now.now_is_workday: | ||
| 661 | out_text = f'({out_text})' | ||
| 662 | |||
| 662 | if waybar: | 663 | if waybar: |
| 663 | json.dump({"text": out_text, "class": out_class, "tooltip": tooltip}, stdout) | 664 | json.dump({"text": out_text, "class": out_class, "tooltip": tooltip}, stdout) |
| 664 | else: | 665 | else: |
