X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=plomtask%2Fprocesses.py;h=ebe781e8fb83e09699e38532c0c2c7b3a9a2e1f2;hb=0ccae4d00a38cc04c41cd0ee68e2aed896144fce;hp=6df8eaf9132d7652e447931d59a2cc6a39d3043b;hpb=db62e6559fdd577dae38d4b6f5cbd5ef6a14cc57;p=plomtask diff --git a/plomtask/processes.py b/plomtask/processes.py index 6df8eaf..ebe781e 100644 --- a/plomtask/processes.py +++ b/plomtask/processes.py @@ -34,6 +34,7 @@ class Process(BaseModel[int], ConditionsRelations): ('process_step_suppressions', 'process', 'suppressed_steps', 0)] to_search = ['title.newest', 'description.newest'] + can_create_by_id = True def __init__(self, id_: int | None, calendarize: bool = False) -> None: BaseModel.__init__(self, id_) @@ -50,8 +51,9 @@ class Process(BaseModel[int], ConditionsRelations): def as_dict(self) -> dict[str, object]: """Return self as (json.dumps-coompatible) dict.""" d = super().as_dict - d['explicit_steps'] = [s.as_dict for s in self.explicit_steps] - d['suppressed_steps'] = [s.as_dict for s in self.suppressed_steps] + assert isinstance(d['_library'], dict) + d['explicit_steps'] = [s.as_dict_into_reference(d['_library']) + for s in self.explicit_steps] return d @classmethod @@ -59,11 +61,7 @@ class Process(BaseModel[int], ConditionsRelations): row: Row | list[Any]) -> Process: """Make from DB row, with dependencies.""" process = super().from_table_row(db_conn, row) - assert isinstance(process.id_, int) - for name in ('title', 'description', 'effort'): - table = f'process_{name}s' - for row_ in db_conn.row_where(table, 'parent', process.id_): - getattr(process, name).history_from_row(row_) + assert process.id_ is not None for name in ('conditions', 'blockers', 'enables', 'disables'): table = f'process_{name}' assert isinstance(process.id_, int)