diff options
Diffstat (limited to 'overlays')
-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: |