X-Git-Url: https://plomlompom.com/repos/%7B%7B%20web_path%20%7D%7D/decks/%7B%7Bdeck_id%7D%7D/cards/%7B%7Bcard_id%7D%7D/form?a=blobdiff_plain;f=plomtask%2Fprocesses.py;h=027e97517a98c269cdedb39601143442931ba868;hb=20ee4c41027582f761a63d947ed4c46e5b02bdab;hp=e1364215cfe57e5c66d376cd95cf721fe4f6f65a;hpb=e150bee233a648950061b716dc1780581105ede6;p=plomtask diff --git a/plomtask/processes.py b/plomtask/processes.py index e136421..027e975 100644 --- a/plomtask/processes.py +++ b/plomtask/processes.py @@ -27,19 +27,19 @@ class Process(BaseModel[int], ConditionsRelations): 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'] def __init__(self, id_: int | None, calendarize: bool = False) -> None: - super().__init__(id_) + 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.calendarize = calendarize - self.conditions: list[Condition] = [] - self.enables: list[Condition] = [] - self.disables: list[Condition] = [] @classmethod def from_table_row(cls, db_conn: DatabaseConnection, @@ -55,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', @@ -124,7 +124,6 @@ class Process(BaseModel[int], ConditionsRelations): just deleted under its feet), or if the parent step would not be owned by the current Process. """ - def walk_steps(node: ProcessStep) -> None: if node.step_process_id == self.id_: raise BadFormatException('bad step selection causes recursion')