X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;ds=sidebyside;f=plomtask%2Fprocesses.py;h=684dec81dde47e6bd409ffaa52edc3a251246e8d;hb=63073c2c05785d2b5539780dd5bc40adff57aab1;hp=1778e4f73b8eff992322b9b1e166f6987047e05d;hpb=5e3c633f1994329297999899790e69d28516934b;p=plomtask
diff --git a/plomtask/processes.py b/plomtask/processes.py
index 1778e4f..684dec8 100644
--- a/plomtask/processes.py
+++ b/plomtask/processes.py
@@ -22,23 +22,24 @@ class ProcessStepsNode:
class Process(BaseModel[int], ConditionsRelations):
"""Template for, and metadata for, Todos, and their arrangements."""
+ # pylint: disable=too-many-instance-attributes
table_name = 'processes'
+ to_save = ['calendarize']
to_save_versioned = ['title', 'description', 'effort']
to_save_relations = [('process_conditions', 'process', 'conditions'),
+ ('process_blockers', 'process', 'blockers'),
('process_enables', 'process', 'enables'),
('process_disables', 'process', 'disables')]
+ to_search = ['title.newest', 'description.newest']
- # pylint: disable=too-many-instance-attributes
-
- def __init__(self, id_: int | None) -> None:
- super().__init__(id_)
+ def __init__(self, id_: int | None, calendarize: bool = False) -> None:
+ BaseModel.__init__(self, id_)
+ ConditionsRelations.__init__(self)
self.title = VersionedAttribute(self, 'process_titles', 'UNNAMED')
self.description = VersionedAttribute(self, 'process_descriptions', '')
self.effort = VersionedAttribute(self, 'process_efforts', 1.0)
self.explicit_steps: list[ProcessStep] = []
- self.conditions: list[Condition] = []
- self.enables: list[Condition] = []
- self.disables: list[Condition] = []
+ self.calendarize = calendarize
@classmethod
def from_table_row(cls, db_conn: DatabaseConnection,
@@ -54,7 +55,7 @@ class Process(BaseModel[int], ConditionsRelations):
process.id_):
step = ProcessStep.from_table_row(db_conn, row_)
process.explicit_steps += [step] # pylint: disable=no-member
- for name in ('conditions', 'enables', 'disables'):
+ for name in ('conditions', 'blockers', 'enables', 'disables'):
table = f'process_{name}'
assert isinstance(process.id_, int)
for c_id in db_conn.column_where(table, 'condition',