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=8082c3cb1d412fa7aa7806735e20ee908f27c404;hb=80e2cf170d408e7d183301ea3fba0df65ec261d5;hp=23da7c10f365539661fbf7cb5815f61158a6c923;hpb=30aef71506f7d6215b04cddaba8fddba1788f883;p=plomtask diff --git a/plomtask/processes.py b/plomtask/processes.py index 23da7c1..8082c3c 100644 --- a/plomtask/processes.py +++ b/plomtask/processes.py @@ -44,11 +44,13 @@ class Process(BaseModel[int], ConditionsRelations): self.explicit_steps: list[ProcessStep] = [] self.suppressed_steps: list[ProcessStep] = [] self.calendarize = calendarize + self.n_owners: int | None = None # only set by from_table_row @classmethod def from_table_row(cls, db_conn: DatabaseConnection, row: Row | list[Any]) -> Process: """Make from DB row, with dependencies.""" + # pylint: disable=no-member process = super().from_table_row(db_conn, row) assert isinstance(process.id_, int) for name in ('title', 'description', 'effort'): @@ -58,11 +60,11 @@ class Process(BaseModel[int], ConditionsRelations): for row_ in db_conn.row_where('process_steps', 'owner', process.id_): step = ProcessStep.from_table_row(db_conn, row_) - process.explicit_steps += [step] # pylint: disable=no-member + process.explicit_steps += [step] for row_ in db_conn.row_where('process_step_suppressions', 'process', process.id_): step = ProcessStep.by_id(db_conn, row_[1]) - process.suppressed_steps += [step] # pylint: disable=no-member + process.suppressed_steps += [step] for name in ('conditions', 'blockers', 'enables', 'disables'): table = f'process_{name}' assert isinstance(process.id_, int) @@ -70,6 +72,7 @@ class Process(BaseModel[int], ConditionsRelations): 'process', process.id_): target = getattr(process, name) target += [Condition.by_id(db_conn, c_id)] + process.n_owners = len(process.used_as_step_by(db_conn)) return process def used_as_step_by(self, db_conn: DatabaseConnection) -> list[Process]: