From 973c8dfdfd90b82e0144af8d979e49e3018ddd0d Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Sun, 14 Feb 2021 17:20:14 +0200 Subject: Improve week processing --- hommaexceli_py/data_parser.py | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'hommaexceli_py/data_parser.py') diff --git a/hommaexceli_py/data_parser.py b/hommaexceli_py/data_parser.py index e8ca33b..92297b4 100644 --- a/hommaexceli_py/data_parser.py +++ b/hommaexceli_py/data_parser.py @@ -35,9 +35,15 @@ def _date_to_timestamp(date: datetime.datetime) -> str: def _process_row(row: SheetsRow): interval = _calculate_interval(row.interval) - last_done_date = _timestamp_to_date(row.last_done) - next_date = last_done_date + interval - next_date_str = _date_to_timestamp(next_date) + + if row.last_done is not None: + last_done_date = _timestamp_to_date(row.last_done) + next_date = last_done_date + interval + next_date_str = _date_to_timestamp(next_date) + else: + last_done_date = datetime.datetime.now() + next_date = datetime.datetime.now() + next_date_str = _date_to_timestamp(next_date) return ProcessedRow( name=row.name, @@ -55,8 +61,10 @@ def process_rows(rows: list[SheetsRow]) -> list[ProcessedRow]: def _is_this_week(processed_row: ProcessedRow): next_date = processed_row.next_date - now = datetime.datetime.now() - return (next_date - now) < datetime.timedelta(weeks=1) + today = datetime.datetime.now() + current_week_start = today - datetime.timedelta(days=today.weekday()) + current_week_end = current_week_start + datetime.timedelta(days=7) + return next_date > current_week_start and next_date < current_week_end def filter_only_this_week(rows: list[ProcessedRow]) -> list[ProcessedRow]: -- cgit v1.3