]> us-delaporte.pagekite.me Git - matrix-goal-bot.git/commitdiff
Fixup
authorEdward Delaporte <edward@delaporte.us>
Mon, 23 Mar 2026 12:59:07 +0000 (07:59 -0500)
committerEdward Delaporte <edward@delaporte.us>
Mon, 23 Mar 2026 12:59:07 +0000 (07:59 -0500)
goals/db.py
goals/tasks.py [new file with mode: 0644]
tasks.py [new file with mode: 0644]

index 1ec90a9e17a9af4be8621427d7751ba91fbd532b..84369e2788fc2cf729c8b52321ed1aac82c24032 100644 (file)
@@ -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 (file)
index 0000000..7ecdcbb
--- /dev/null
@@ -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 (file)
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)