X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;f=plomtask%2Ftodos.py;h=a9bd94c7c0afa6d27e584f1e44bfa318012f93e5;hb=e60bbd142b5026748ee2181ca6758afef6202fb4;hp=e42c484a56e56e5bcf35b3c8a0c801270619f5bf;hpb=bdb37bdbfdc46a64631c0fb97d0d86540076165e;p=plomtask
diff --git a/plomtask/todos.py b/plomtask/todos.py
index e42c484..a9bd94c 100644
--- a/plomtask/todos.py
+++ b/plomtask/todos.py
@@ -22,21 +22,23 @@ class Todo(BaseModel[int], ConditionsRelations):
"""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] = []
@@ -126,13 +128,16 @@ class Todo(BaseModel[int], ConditionsRelations):
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."""