From: Edward Delaporte Date: Mon, 23 Mar 2026 12:59:07 +0000 (-0500) Subject: Fixup X-Git-Url: https://us-delaporte.pagekite.me/gitweb/matrix-goal-bot.git/commitdiff_plain/f6957376c90b1931bed792024ec6bd914b7d4546 Fixup --- diff --git a/goals/db.py b/goals/db.py index 1ec90a9..84369e2 100644 --- a/goals/db.py +++ b/goals/db.py @@ -22,7 +22,7 @@ logging.basicConfig(filename='chore.log', encoding='utf-8', level=logging.DEBUG) class Vision(SQLModel, table=True): id: int | None = Field(default=None, primary_key=True) name: str = Field(default=None, unique=True) - complete_date: dt = Field(default=None) + complete_date: dt | None = Field(default=None) def __str__(self): return f'{self.name} ({self.id})' @@ -30,9 +30,9 @@ class Vision(SQLModel, table=True): class Goal(SQLModel, table=True): id: int | None = Field(default=None, primary_key=True) name: str = Field(default=None, unique=True) - complete_date: dt = Field(default=None) + complete_date: dt | None = Field(default=None) vision_id: int | None = Field(default=None, foreign_key="vision.id") - notes: str = Field(default=None) + notes: str | None = Field(default=None) def __str__(self): return f'{self.name} ({self.id})' @@ -40,7 +40,7 @@ class Task(SQLModel, table=True): id: int | None = Field(default=None, primary_key=True) name: str = Field(default=None, unique=True) goal_id: int | None = Field(default=None, foreign_key="goal.id") - complete_date: dt = Field(default=None) + complete_date: dt | None = Field(default=None) class Data(): def __init__(self, db_file = DB_FILE): @@ -52,6 +52,7 @@ class Data(): def setup(self): SQLModel.metadata.create_all(self.engine) + return 'Success' def print_all_visions(self): @@ -63,8 +64,11 @@ class Data(): def print_ophan_tasks(self): pass + def list_goals(self): + '''List all goals''' + pass - def print_goal(self, goal, include_finished=False): + def print_goal(self, id, include_finished=False): '''Includes tasks''' pass @@ -78,15 +82,13 @@ class Data(): pass def add_with_name(self, cls, name): - try: - with Session(self.engine) as session: - new = cls(name=name) - session.add(chore) - session.commit() - return f'Created {name} [{str(cls)}].' - except: - return f'Unable to create {name} [{str(cls)}]. May be duplicate.' - + id = -1 + with Session(self.engine) as session: + new = cls(name=name) + session.add(new) + session.commit() + id = new.id + return id def add_vision(self, name): return self.add_with_name(Vision, name) @@ -115,10 +117,6 @@ class Data(): # Someday: Notes on each - def check(self, chore_id): - with Session(self.engine) as session: - return Data.check_chore(session, chore_id) - def list(self): results = [] with Session(self.engine) as session: @@ -131,72 +129,3 @@ class Data(): results.append(Data.check_chore(session, chore.id)) return results - def add(self, name): - try: - with Session(self.engine) as session: - new_chore = Chore(name=name) - session.add(new_chore) - session.commit() - return f'Created chore {name}.' - except: - return f'Unable to create {name}. May be duplicate.' - - - - def done(self, chore_id): - with Session(self.engine) as session: - chore = get_chore(session, chore_id) - if(not chore): - return f'Chore not found: {chore_id}' - - try: - session.add(Record(chore_id=chore.id)) - session.commit() - return f'Marked chore as done: {chore.name}.' - except Exception as ex: - return f'Unable to mark chore as done: {ex}' - - - def undo(self, chore_id): - with Session(self.engine) as session: - cmd = select(Chore).where(Chore.id == chore_id) - chore = session.exec(cmd).first() - - if(not chore): - return f'Not found: {chore_id}' - - try: - cmd = select(Record).where(Record.chore_id == chore_id).where(Record.complete_date >= today()) - results = session.exec(cmd).all() - for result in results: - session.delete(result) - session.commit() - return f'Marked chore as *not* done: {chore.name}.' - except Exception as ex: - return f'Unable to mark chore as done: {ex}' - - def remove(self, chore_id): - try: - with Session(self.engine) as session: - chore = get_chore(session, chore_id) - if(not chore): - return f'Chore not found: {chore_id}' - - sql = text(''' - DELETE FROM Record - WHERE chore_id = :chore_id - ''') - params = {} - params['chore_id'] = chore_id - results = session.execute(sql, params) - logger.debug(results) - sql = text(''' - DELETE FROM Chore - WHERE id = :chore_id - ''') - results = session.execute(sql, params) - logger.debug(results) - session.commit() - return f'Removed chore {chore_id}' - except Exception as ex: - return f'Unable to remove chore: {ex}' diff --git a/goals/tasks.py b/goals/tasks.py new file mode 100644 index 0000000..7ecdcbb --- /dev/null +++ b/goals/tasks.py @@ -0,0 +1,26 @@ +from invoke import task + +from .db import Data + +@task +def setup(c): + result = Data().setup() + print(result) + +@task +def add_goal(c, name): + result = Data().add_goal(name) + print(result) + +@task +def list(c): + result = Data().list_goals() + print(result) + +@task +def print_goal(c, id): + result = Data().print_goal(id) + print(result) + + + diff --git a/tasks.py b/tasks.py new file mode 100644 index 0000000..4dad0c2 --- /dev/null +++ b/tasks.py @@ -0,0 +1,5 @@ +from invoke import Collection +from goals import tasks + +ns = Collection() +ns.add_collection(tasks)