|
1 | 1 | import pytz |
2 | 2 | from datetime import datetime, timedelta, timezone |
3 | | -from utils.time import datetime_str |
| 3 | +from utils.time import datetime_str, str_to_datetime |
4 | 4 |
|
5 | 5 |
|
6 | 6 | class DateRange: |
@@ -49,13 +49,6 @@ def date_range(time_offset: int): |
49 | 49 | } |
50 | 50 |
|
51 | 51 |
|
52 | | -def stop_running_time_entry(time_entries, tz): |
53 | | - end = datetime.now(tz) |
54 | | - for t in time_entries: |
55 | | - if t.end_date is None: |
56 | | - t.end_date = datetime_str(end) |
57 | | - |
58 | | - |
59 | 52 | class WorkedTime: |
60 | 53 | def __init__(self, time_entries): |
61 | 54 | self.time_entries = time_entries |
@@ -108,10 +101,27 @@ def worked_time_in_month(time_entries, tz): |
108 | 101 | return WorkedTime(month_time_entries).summary() |
109 | 102 |
|
110 | 103 |
|
| 104 | +def stop_running_time_entry(time_entries, tz): |
| 105 | + end = datetime.now(tz) |
| 106 | + for t in time_entries: |
| 107 | + if t.end_date is None: |
| 108 | + t.end_date = datetime_str(end) |
| 109 | + |
| 110 | + |
| 111 | +def change_timezones(time_entries, tz): |
| 112 | + for t in time_entries: |
| 113 | + start_date = str_to_datetime(t.start_date) |
| 114 | + end_date = str_to_datetime(t.end_date) |
| 115 | + |
| 116 | + t.start_date = datetime_str(start_date.astimezone(tz)) |
| 117 | + t.end_date = datetime_str(end_date.astimezone(tz)) |
| 118 | + |
| 119 | + |
111 | 120 | def summary(time_entries, time_offset): |
112 | 121 | offset_in_minutes = time_offset if time_offset else 300 |
113 | 122 | tz = timezone(timedelta(minutes=-offset_in_minutes)) |
114 | 123 | stop_running_time_entry(time_entries, tz) |
| 124 | + change_timezones(time_entries, tz) |
115 | 125 | return { |
116 | 126 | 'day': worked_time_in_day(time_entries, tz), |
117 | 127 | 'week': worked_time_in_week(time_entries, tz), |
|
0 commit comments