X-Git-Url: https://plomlompom.com/repos/%7B%7Bprefix%7D%7D/balance2?a=blobdiff_plain;f=plomtask%2Fprocesses.py;h=590c5bca56d3f84c1b67f34ee3f80c084903b1c9;hb=ac5a85f6d0186d714415ce7e2b51597bf5dca248;hp=6249d48445a3488a8f8c4bdd5748b63a5a727ae5;hpb=87505e3be37ad7a208c8f77dc7d7631728d87fa4;p=plomtask diff --git a/plomtask/processes.py b/plomtask/processes.py index 6249d48..590c5bc 100644 --- a/plomtask/processes.py +++ b/plomtask/processes.py @@ -18,7 +18,7 @@ class ProcessStepsNode: seen: bool -class Process(BaseModel, ConditionsRelations): +class Process(BaseModel[int], ConditionsRelations): """Template for, and metadata for, Todos, and their arrangements.""" table_name = 'processes' @@ -38,12 +38,13 @@ class Process(BaseModel, ConditionsRelations): def all(cls, db_conn: DatabaseConnection) -> list[Process]: """Collect all Processes and their connected VersionedAttributes.""" processes = {} - for id_, process in db_conn.cached_processes.items(): + for id_, process in cls.cache_.items(): processes[id_] = process already_recorded = processes.keys() for id_ in db_conn.column_all('processes', 'id'): if id_ not in already_recorded: process = cls.by_id(db_conn, id_) + assert isinstance(process.id_, int) processes[process.id_] = process return list(processes.values()) @@ -165,8 +166,7 @@ class Process(BaseModel, ConditionsRelations): """Set self.explicit_steps in bulk.""" assert isinstance(self.id_, int) for step in self.explicit_steps: - assert isinstance(step.id_, int) - del db_conn.cached_process_steps[step.id_] + step.uncache() self.explicit_steps = [] db_conn.delete_where('process_steps', 'owner', self.id_) for step_tuple in steps: @@ -189,10 +189,9 @@ class Process(BaseModel, ConditionsRelations): db_conn.delete_where('process_steps', 'owner', self.id_) for step in self.explicit_steps: step.save(db_conn) - db_conn.cached_processes[self.id_] = self -class ProcessStep(BaseModel): +class ProcessStep(BaseModel[int]): """Sub-unit of Processes.""" table_name = 'process_steps' to_save = ['owner_id', 'step_process_id', 'parent_step_id']