From a6d117d490e481b062a20476e657ddcb0352553b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Thu, 15 Jun 2017 17:53:00 +0200 Subject: [PATCH] add cache_key to ChangeSet --- src/c3nav/editor/models.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/c3nav/editor/models.py b/src/c3nav/editor/models.py index b5abc968..659ec5d3 100644 --- a/src/c3nav/editor/models.py +++ b/src/c3nav/editor/models.py @@ -36,6 +36,7 @@ class ChangeSet(models.Model): self.deleted_existing = {} self.m2m_add_existing = {} self.m2m_remove_existing = {} + self._last_change_pk = 0 def parse_changes(self): if self.parsed: @@ -45,6 +46,8 @@ class ChangeSet(models.Model): self.parsed = True def _parse_change(self, change): + self._last_change_pk = change.pk + if change.action == 'delchange': raise NotImplementedError @@ -86,8 +89,12 @@ class ChangeSet(models.Model): self.m2m_remove_existing.setdefault(model, {}).setdefault(change.obj_pk, set()).add(value) def get_changed_values(self, model, name): - return tuple((pk, values[name]) - for pk, values in self.updated_existing.get(model, {}).items() if name in values) + r = tuple((pk, values[name]) for pk, values in self.updated_existing.get(model, {}).items() if name in values) + return r + + @property + def cache_key(self): + return str(self.pk)+'-'+str(self._last_change_pk) @classmethod def qs_base(cls, hide_applied=True):