import os
from datetime import datetime as dt
-from sqlmodel import Field, Session, SQLModel, create_engine, select, text
+from sqlmodel import Field, Session, SQLModel, create_engine, select, text, Relationship
## Todo List
# - [ ] goal / vision / task
complete_date: dt | None = Field(default=None)
vision_id: int | None = Field(default=None, foreign_key="vision.id")
notes: str | None = Field(default=None)
+ tasks: list["Task"] = Relationship(back_populates="goal")
def __str__(self):
return f'{self.name} ({self.id})'
name: str = Field(default=None, unique=True)
goal_id: int | None = Field(default=None, foreign_key="goal.id")
complete_date: dt | None = Field(default=None)
+ goal: Goal = Relationship(back_populates="tasks")
+ def __str__(self):
+ return f'{self.name} ({self.id})'
class Data():
def __init__(self, db_file = DB_FILE):
return session.exec(cmd).all()
- def print_goal(self, id, include_finished=False):
- '''Includes tasks'''
- pass
+ def get_goal(self, id):
+ with Session(self.engine) as session:
+ cmd = select(Goal).where(Goal.id == id)
+ goal = session.exec(cmd).first()
+ return (goal, goal.tasks)
def complete_vision(self, id):
pass