home
·
contact
·
privacy
projects
/
plomtask
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Base core models on BaseModel providing sensible defaults.
[plomtask]
/
plomtask
/
days.py
diff --git
a/plomtask/days.py
b/plomtask/days.py
index abfce06f51fc7ab43607ccd177dddc2194667391..553579e35ee694989433cab6cc0d01310847b180 100644
(file)
--- a/
plomtask/days.py
+++ b/
plomtask/days.py
@@
-3,7
+3,7
@@
from __future__ import annotations
from datetime import datetime, timedelta
from sqlite3 import Row
from plomtask.exceptions import BadFormatException, NotFoundException
from datetime import datetime, timedelta
from sqlite3 import Row
from plomtask.exceptions import BadFormatException, NotFoundException
-from plomtask.db import DatabaseConnection
+from plomtask.db import DatabaseConnection
, BaseModel
DATE_FORMAT = '%Y-%m-%d'
DATE_FORMAT = '%Y-%m-%d'
@@
-25,11
+25,13
@@
def todays_date() -> str:
return datetime.now().strftime(DATE_FORMAT)
return datetime.now().strftime(DATE_FORMAT)
-class Day:
+class Day
(BaseModel)
:
"""Individual days defined by their dates."""
"""Individual days defined by their dates."""
+ table_name = 'days'
+ to_save = ['comment']
def __init__(self, date: str, comment: str = '') -> None:
def __init__(self, date: str, comment: str = '') -> None:
- self.
date
= valid_date(date)
+ self.
id_: str
= valid_date(date)
self.datetime = datetime.strptime(self.date, DATE_FORMAT)
self.comment = comment
self.datetime = datetime.strptime(self.date, DATE_FORMAT)
self.comment = comment
@@
-88,6
+90,11
@@
class Day:
assert isinstance(day, Day)
return day
assert isinstance(day, Day)
return day
+ @property
+ def date(self) -> str:
+ """Return self.id_ under the assumption it's a date string."""
+ return self.id_
+
@property
def weekday(self) -> str:
"""Return what weekday matches self.date."""
@property
def weekday(self) -> str:
"""Return what weekday matches self.date."""
@@
-107,6
+114,4
@@
class Day:
def save(self, db_conn: DatabaseConnection) -> None:
"""Add (or re-write) self to DB and cache."""
def save(self, db_conn: DatabaseConnection) -> None:
"""Add (or re-write) self to DB and cache."""
- db_conn.exec('REPLACE INTO days VALUES (?, ?)',
- (self.date, self.comment))
- db_conn.cached_days[self.date] = self
+ self.save_core(db_conn, update_with_lastrowid=False)