home · contact · privacy
Re-factor date ranging and default to range 'yesterday' to 'tomorrow'.
[plomtask] / plomtask / db.py
index 4396b444a61f0c2f59e2046b554e79c56e541faa..b5461a507e9612e2593643e6d6e198779e2fc456 100644 (file)
@@ -6,7 +6,7 @@ from difflib import Differ
 from sqlite3 import connect as sql_connect, Cursor, Row
 from typing import Any, Self, TypeVar, Generic
 from plomtask.exceptions import HandledException, NotFoundException
-from plomtask.dating import (MIN_RANGE_DATE, MAX_RANGE_DATE, valid_date)
+from plomtask.dating import valid_date
 
 EXPECTED_DB_VERSION = 4
 MIGRATIONS_DIR = 'migrations'
@@ -358,19 +358,19 @@ class BaseModel(Generic[BaseModelId]):
     @classmethod
     def by_date_range_with_limits(cls: type[BaseModelInstance],
                                   db_conn: DatabaseConnection,
-                                  date_range: tuple[str, str] = ('', ''),
+                                  date_range: tuple[str, str],
                                   date_col: str = 'day'
                                   ) -> tuple[list[BaseModelInstance], str,
                                              str]:
         """Return list of Days in database within (open) date_range interval.
 
-        If no range values provided, defaults them to MIN_RANGE_DATE and
-        MAX_RANGE_DATE. Also knows to properly interpret 'today' as value.
+        If no range values provided, defaults them to 'yesterday' and
+        'tomorrow'. Knows to properly interpret these and 'today' as value.
         """
-        min_date = MIN_RANGE_DATE
-        max_date = MAX_RANGE_DATE
-        start_date = valid_date(date_range[0] if date_range[0] else min_date)
-        end_date = valid_date(date_range[1] if date_range[1] else max_date)
+        start_str = date_range[0] if date_range[0] else 'yesterday'
+        end_str = date_range[1] if date_range[1] else 'tomorrow'
+        start_date = valid_date(start_str)
+        end_date = valid_date(end_str)
         items = []
         sql = f'SELECT id FROM {cls.table_name} '
         sql += f'WHERE {date_col} >= ? AND {date_col} <= ?'