- def save(self, db_conn: DatabaseConnection):
- """Add (or re-write) self to database."""
- db_conn.exec('REPLACE INTO days VALUES (?)', (self.date,))
+ @property
+ def prev_date(self) -> str:
+ """Return date preceding date of this Day."""
+ prev_datetime = self.datetime - timedelta(days=1)
+ return prev_datetime.strftime(DATE_FORMAT)
+
+ @property
+ def next_date(self) -> str:
+ """Return date succeeding date of this Day."""
+ next_datetime = self.datetime + timedelta(days=1)
+ return next_datetime.strftime(DATE_FORMAT)
+
+ @property
+ def calendarized_todos(self) -> list[Todo]:
+ """Return only those of self.todos that have .calendarize set."""
+ if self.todos is None:
+ msg = 'Trying to return from un-initialized Day.todos.'
+ raise HandledException(msg)
+ # pylint: disable=not-an-iterable
+ # (after the above is-None test, self.todos _should_ be iterable!)
+ return [t for t in self.todos if t.calendarize]