11import pytz
22from datetime import datetime , timedelta , timezone
33from utils .time import datetime_str , str_to_datetime
4+ from copy import deepcopy
45
56
67class DateRange :
@@ -83,7 +84,7 @@ def filter_time_entries(time_entries, dr: DateRange):
8384 )
8485 in_range = start <= te_start <= end or start <= te_end <= end
8586 if in_range :
86- result .append (t )
87+ result .append (deepcopy ( t ) )
8788 return result
8889
8990
@@ -95,29 +96,29 @@ def cut_time_entries_out_of_range(time_entries, dr):
9596 str_to_datetime (t .end_date ),
9697 )
9798 if te_start < start :
98- t .start = datetime_str (start )
99+ t .start_date = datetime_str (start )
99100 if end < te_end :
100- t .end = datetime_str (end )
101+ t .end_date = datetime_str (end )
101102
102103
103104def worked_time_in_day (time_entries , tz ):
104105 dr = DayDateRange (tz )
105106 day_time_entries = filter_time_entries (time_entries , dr )
106- cut_time_entries_out_of_range (time_entries , dr )
107+ cut_time_entries_out_of_range (day_time_entries , dr )
107108 return WorkedTime (day_time_entries ).summary ()
108109
109110
110111def worked_time_in_week (time_entries , tz ):
111112 dr = WeekDateRange (tz )
112113 week_time_entries = filter_time_entries (time_entries , dr )
113- cut_time_entries_out_of_range (time_entries , dr )
114+ cut_time_entries_out_of_range (week_time_entries , dr )
114115 return WorkedTime (week_time_entries ).summary ()
115116
116117
117118def worked_time_in_month (time_entries , tz ):
118119 dr = MonthDateRange (tz )
119120 month_time_entries = filter_time_entries (time_entries , dr )
120- cut_time_entries_out_of_range (time_entries , dr )
121+ cut_time_entries_out_of_range (month_time_entries , dr )
121122 return WorkedTime (month_time_entries ).summary ()
122123
123124
0 commit comments