always include_deleted_created because the cache does the performance

This commit is contained in:
Laura Klünder 2017-07-07 15:16:35 +02:00
parent 369a1b558b
commit 45765ef135
3 changed files with 4 additions and 10 deletions

View file

@ -183,5 +183,5 @@ class ChangeSetViewSet(ReadOnlyModelViewSet):
@detail_route(methods=['get']) @detail_route(methods=['get'])
def changes(self, request, *args, **kwargs): def changes(self, request, *args, **kwargs):
changeset = self.get_object() changeset = self.get_object()
changeset.fill_changes_cache(include_deleted_created=True) changeset.fill_changes_cache()
return Response([obj.serialize() for obj in changeset.iter_changed_objects()]) return Response([obj.serialize() for obj in changeset.iter_changed_objects()])

View file

@ -133,7 +133,7 @@ class ChangeSet(models.Model):
def relevant_changed_objects(self): def relevant_changed_objects(self):
return self.changed_objects_set.exclude(existing_object_pk__isnull=True, deleted=True) return self.changed_objects_set.exclude(existing_object_pk__isnull=True, deleted=True)
def fill_changes_cache(self, include_deleted_created=False): def fill_changes_cache(self):
""" """
Get all changed objects and fill this ChangeSet's changes cache. Get all changed objects and fill this ChangeSet's changes cache.
Only executable once, if something is changed later the cache will be automatically updated. Only executable once, if something is changed later the cache will be automatically updated.
@ -151,12 +151,6 @@ class ChangeSet(models.Model):
cache_key = self.cache_key_by_changes + ':cache' cache_key = self.cache_key_by_changes + ':cache'
if include_deleted_created:
cache_key += '_with_deleted'
qs = self.changed_objects_set.all()
else:
qs = self.relevant_changed_objects()
cached_cache = cache.get(cache_key) cached_cache = cache.get(cache_key)
if cached_cache is not None: if cached_cache is not None:
(self.changed_objects, self.created_objects, self.updated_existing, (self.changed_objects, self.created_objects, self.updated_existing,
@ -164,7 +158,7 @@ class ChangeSet(models.Model):
return True return True
self.changed_objects = {} self.changed_objects = {}
for change in qs: for change in self.changed_objects_set.all():
change.update_changeset_cache() change.update_changeset_cache()
if self.state != 'applied': if self.state != 'applied':

View file

@ -160,7 +160,7 @@ def changeset_detail(request, pk):
'obj_title': changeset.title, 'obj_title': changeset.title,
}) })
changeset.fill_changes_cache(include_deleted_created=True) changeset.fill_changes_cache()
ctx = { ctx = {
'changeset': changeset, 'changeset': changeset,