Skip to content

Commit 96bec02

Browse files
committed
fix: change timezones in memory
1 parent 8278201 commit 96bec02

File tree

2 files changed

+22
-13
lines changed

2 files changed

+22
-13
lines changed

utils/time.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,9 @@ def to_utc(date: datetime) -> datetime:
6868
return localized
6969

7070
from dateutil.parser import isoparse
71-
from dateutil import tz
7271

73-
there_is_utc_info = type(isoparse(value).tzinfo) == tz.tzutc
74-
if there_is_utc_info:
75-
return isoparse(value)
76-
else:
72+
no_timezone_info = isoparse(value).tzinfo is None
73+
if no_timezone_info:
7774
return to_utc(isoparse(value))
75+
else:
76+
return isoparse(value)

utils/worked_time.py

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import pytz
22
from datetime import datetime, timedelta, timezone
3-
from utils.time import datetime_str
3+
from utils.time import datetime_str, str_to_datetime
44

55

66
class DateRange:
@@ -49,13 +49,6 @@ def date_range(time_offset: int):
4949
}
5050

5151

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-
5952
class WorkedTime:
6053
def __init__(self, time_entries):
6154
self.time_entries = time_entries
@@ -108,10 +101,27 @@ def worked_time_in_month(time_entries, tz):
108101
return WorkedTime(month_time_entries).summary()
109102

110103

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+
111120
def summary(time_entries, time_offset):
112121
offset_in_minutes = time_offset if time_offset else 300
113122
tz = timezone(timedelta(minutes=-offset_in_minutes))
114123
stop_running_time_entry(time_entries, tz)
124+
change_timezones(time_entries, tz)
115125
return {
116126
'day': worked_time_in_day(time_entries, tz),
117127
'week': worked_time_in_week(time_entries, tz),

0 commit comments

Comments
 (0)