From e65a90d9bd7ec1e8f3c6496934a4c8c3e9b45ffd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Tue, 20 Jun 2017 17:56:20 +0200 Subject: [PATCH] fix several minor bugs with data types --- src/c3nav/editor/models.py | 9 ++++----- src/c3nav/editor/wrappers.py | 6 ------ 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/src/c3nav/editor/models.py b/src/c3nav/editor/models.py index 8102c086..7a0ddd19 100644 --- a/src/c3nav/editor/models.py +++ b/src/c3nav/editor/models.py @@ -4,6 +4,7 @@ from collections import OrderedDict from django.apps import apps from django.conf import settings +from django.core.serializers.json import DjangoJSONEncoder from django.db import models, transaction from django.db.models import Q from django.db.models.fields.related_descriptors import ForwardManyToOneDescriptor, ManyToManyDescriptor @@ -42,7 +43,6 @@ class ChangeSet(models.Model): self.m2m_removed = {} self._last_change_pk = 0 - @property def relevant_changes(self): return self.changes.filter(discarded_by__isnull=True).exclude(action='restore') @@ -53,7 +53,7 @@ class ChangeSet(models.Model): if get_history: self.changes_qs = self.changes.all() else: - self.changes_qs = self.relevant_changes + self.changes_qs = self.relevant_changes() for change in self.changes_qs: self._parse_change(change) @@ -300,8 +300,8 @@ class ChangeSet(models.Model): obj.pk = 'c%d' % change.pk def _add_value(self, action, obj, name, value, author=None): - return self._new_change(author=author, action=action, obj=obj, - field_name=name, field_value=json.dumps(value, ensure_ascii=False)) + return self._new_change(author=author, action=action, obj=obj, field_name=name, + field_value=json.dumps(value, ensure_ascii=False, cls=DjangoJSONEncoder)) def add_update(self, obj, name, value, author=None): with transaction.atomic(): @@ -408,7 +408,6 @@ class Change(models.Model): return 'c' + str(self.pk) raise TypeError('existing_model_pk or created_object have to be set.') - @property def other_changes(self): """ get queryset of other active changes on the same object diff --git a/src/c3nav/editor/wrappers.py b/src/c3nav/editor/wrappers.py index 0d77eb0e..5e46867b 100644 --- a/src/c3nav/editor/wrappers.py +++ b/src/c3nav/editor/wrappers.py @@ -371,12 +371,6 @@ class BaseQueryWrapper(BaseWrapper): (add_pks if check(new_value) else remove_pks).append(pk) created_pks = set() for pk, values in chain(*(self._changeset.created_objects.get(model, {}).items() for model in models)): - try: - if check(values[field_name]): - created_pks.add(pk) - continue - except AttributeError: - pass if check(getattr(self._changeset.get_created_object(self._obj.model, pk), field_name)): created_pks.add(pk)