home · contact · privacy
Add Todos view, filterable and sortable by process, date, comment, etc.
[plomtask] / plomtask / todos.py
index bffa23ae8c46ae02004344e7c206a4e7104050a0..712609aa8d81fdbe4f194a244ab6927224ee67ca 100644 (file)
@@ -31,6 +31,7 @@ class Todo(BaseModel[int], ConditionsRelations):
                          ('todo_disables', 'todo', 'disables'),
                          ('todo_children', 'parent', 'children'),
                          ('todo_children', 'child', 'parents')]
+    to_search = ['comment']
 
     # pylint: disable=too-many-arguments
     def __init__(self, id_: int | None,
@@ -107,6 +108,12 @@ class Todo(BaseModel[int], ConditionsRelations):
                 target += [Condition.by_id(db_conn, cond_id)]
         return todo
 
+    @classmethod
+    def by_process_id(cls, db_conn: DatabaseConnection,
+                      process_id: int | None) -> list[Todo]:
+        """Collect all Todos of Process of process_id."""
+        return [t for t in cls.all(db_conn) if t.process.id_ == process_id]
+
     @classmethod
     def by_date(cls, db_conn: DatabaseConnection, date: str) -> list[Todo]:
         """Collect all Todos for Day of date."""