X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=plomtask%2Fprocesses.py;h=c23c6de7d89995ff14d909ffe731b9952db06592;hb=eb16b47ddcaefaeab2f616419ea746cc32346893;hp=1778e4f73b8eff992322b9b1e166f6987047e05d;hpb=5e3c633f1994329297999899790e69d28516934b;p=plomtask diff --git a/plomtask/processes.py b/plomtask/processes.py index 1778e4f..c23c6de 100644 --- a/plomtask/processes.py +++ b/plomtask/processes.py @@ -22,23 +22,23 @@ 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')] - # 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 +54,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',