complete_date: dt | None = Field(default=None)
goals: list["Goal"] = Relationship(back_populates="vision")
def __str__(self):
- return f'{self.name} ({self.id})'
+ return f'{self.name} (Vision {self.id})'
class Goal(SQLModel, table=True):
tasks: list["Task"] = Relationship(back_populates="goal")
vision: Vision = Relationship(back_populates="goals")
def __str__(self):
- return f'{self.name} ({self.id})'
+ return f'{self.name} (Goal {self.id})'
class Task(SQLModel, table=True):
id: int | None = Field(default=None, primary_key=True)
def pretty_print(goal, tasks):
results = []
results.append(f' ## {goal}')
+ if not tasks:
+ results.append('-- Nothing to list --')
+
for task in tasks:
if(task.complete_date):
results.append(f' - [x] {task}')
else:
results.append(f' - [ ] {task}')
- else:
- results.append('-- Nothing to list --')
return results
return session.exec(cmd).all()
+ def get_done_goals(self):
+ '''List all goals'''
+ with Session(self.engine) as session:
+ cmd = select(Goal).where(Goal.complete_date != None)
+ return session.exec(cmd).all()
+
+
def get_goal(self, id):
with Session(self.engine) as session:
cmd = select(Goal).where(Goal.id == id)
def complete_vision(self, id):
- pass
+ with Session(self.engine) as session:
+ cmd = select(Vision).where(Vision.id == id)
+ vision = session.exec(cmd).first()
+ vision.complete_date = dt.today()
+ session.commit()
+
def complete_goal(self, id):
+ vision_id = -1
with Session(self.engine) as session:
cmd = select(Goal).where(Goal.id == id)
goal = session.exec(cmd).first()
goal.complete_date = dt.today()
+ vision_id = goal.vision_id
session.commit()
+ return vision_id
def complete_task(self, id):
with Session(self.engine) as session:
goal = session.exec(cmd).first()
goal.vision_id = vision_id
session.commit()
- return 'Success'
def add_note(self, note, goal):
'''Notes print with the goal.'''