"""Individual actionable."""
# pylint: disable=too-many-instance-attributes
table_name = 'todos'
- to_save = ['process_id', 'is_done', 'date']
+ to_save = ['process_id', 'is_done', 'date', 'comment']
to_save_relations = [('todo_conditions', 'todo', 'conditions'),
('todo_enables', 'todo', 'enables'),
('todo_disables', 'todo', 'disables'),
('todo_children', 'parent', 'children'),
('todo_children', 'child', 'parents')]
+ # pylint: disable=too-many-arguments
def __init__(self, id_: int | None, process: Process,
- is_done: bool, date: str) -> None:
+ is_done: bool, date: str, comment: str = '') -> None:
super().__init__(id_)
if process.id_ is None:
raise NotFoundException('Process of Todo without ID (not saved?)')
self.process = process
self._is_done = is_done
self.date = date
+ self.comment = comment
self.children: list[Todo] = []
self.parents: list[Todo] = []
self.conditions: list[Condition] = []
for condition in self.disables:
condition.is_active = False
- def adopt_from(self, todos: list[Todo]) -> None:
+ def adopt_from(self, todos: list[Todo]) -> bool:
"""As far as possible, fill unsatisfied dependencies from todos."""
+ adopted = False
for process_id in self.unsatisfied_dependencies:
for todo in [t for t in todos if t.process.id_ == process_id
and t not in self.children]:
self.add_child(todo)
+ adopted = True
break
+ return adopted
def make_missing_children(self, db_conn: DatabaseConnection) -> None:
"""Fill unsatisfied dependencies with new Todos."""