"""Make Todo from database row, write to DB cache."""
todo = cls(id_=row[0],
process=Process.by_id(db_conn, row[1]),
- is_done=row[2],
+ is_done=bool(row[2]),
day=Day.by_date(db_conn, row[3]))
assert todo.id_ is not None
db_conn.cached_todos[todo.id_] = todo
todos += [cls.by_id(db_conn, row[0])]
return todos
+ @property
+ def is_doable(self) -> bool:
+ """Decide whether .is_done can be set to True based on children's."""
+ for child in self.children:
+ if not child.is_done:
+ return False
+ return True
+
def add_child(self, child: Todo) -> None:
"""Add child to self.children, guard against recursion"""
def walk_steps(node: Todo) -> None: