Skip to content
Prev Previous commit
fix: filtered time_entries by value.
  • Loading branch information
Angeluz-07 committed Jun 18, 2020
commit f113edbe79e4d002e5bf2bb3c6e3070ab1912a9b
13 changes: 7 additions & 6 deletions utils/worked_time.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import pytz
from datetime import datetime, timedelta, timezone
from utils.time import datetime_str, str_to_datetime
from copy import deepcopy


class DateRange:
Expand Down Expand Up @@ -83,7 +84,7 @@ def filter_time_entries(time_entries, dr: DateRange):
)
in_range = start <= te_start <= end or start <= te_end <= end
if in_range:
result.append(t)
result.append(deepcopy(t))
return result


Expand All @@ -95,29 +96,29 @@ def cut_time_entries_out_of_range(time_entries, dr):
str_to_datetime(t.end_date),
)
if te_start < start:
t.start = datetime_str(start)
t.start_date = datetime_str(start)
if end < te_end:
t.end = datetime_str(end)
t.end_date = datetime_str(end)


def worked_time_in_day(time_entries, tz):
dr = DayDateRange(tz)
day_time_entries = filter_time_entries(time_entries, dr)
cut_time_entries_out_of_range(time_entries, dr)
cut_time_entries_out_of_range(day_time_entries, dr)
return WorkedTime(day_time_entries).summary()


def worked_time_in_week(time_entries, tz):
dr = WeekDateRange(tz)
week_time_entries = filter_time_entries(time_entries, dr)
cut_time_entries_out_of_range(time_entries, dr)
cut_time_entries_out_of_range(week_time_entries, dr)
return WorkedTime(week_time_entries).summary()


def worked_time_in_month(time_entries, tz):
dr = MonthDateRange(tz)
month_time_entries = filter_time_entries(time_entries, dr)
cut_time_entries_out_of_range(time_entries, dr)
cut_time_entries_out_of_range(month_time_entries, dr)
return WorkedTime(month_time_entries).summary()


Expand Down