X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=plomtask%2Fdb.py;fp=plomtask%2Fdb.py;h=054060e13b7c1fa4aa27274efab13ff1c2828815;hb=9c62e1b0e5c30ed3fd7a49828749db195bc3e557;hp=1cecc16f6985b555f25757ad6e9f65724311a287;hpb=8c04dfb85e29c7bb68f1bfafdd3093493a7c5063;p=plomtask diff --git a/plomtask/db.py b/plomtask/db.py index 1cecc16..054060e 100644 --- a/plomtask/db.py +++ b/plomtask/db.py @@ -275,6 +275,8 @@ class BaseModel(Generic[BaseModelId]): def as_dict(self) -> dict[str, object]: """Return self as (json.dumps-coompatible) dict.""" d: dict[str, object] = {'id': self.id_} + if len(self.to_save_versioned) > 0: + d['_versioned'] = {} for k in self.to_save: attr = getattr(self, k) if hasattr(attr, 'as_dict'): @@ -282,7 +284,8 @@ class BaseModel(Generic[BaseModelId]): d[k] = attr for k in self.to_save_versioned: attr = getattr(self, k) - d[k] = attr.as_dict + assert isinstance(d['_versioned'], dict) + d['_versioned'][k] = attr.history for r in self.to_save_relations: attr_name = r[2] d[attr_name] = [x.as_dict for x in getattr(self, attr_name)]