summaryrefslogtreecommitdiff
path: root/ishtar_common/serializers.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2019-09-10 12:37:00 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2019-09-10 12:37:00 +0200
commit7a15461392a8df5cdcf27ca819c7a1bf3164f498 (patch)
tree84b81092df907dd751a1b54aef8b7e6adb70b804 /ishtar_common/serializers.py
parent04bdc9d57ba7c2ece4c138c9dcb4072bb45a1608 (diff)
downloadIshtar-7a15461392a8df5cdcf27ca819c7a1bf3164f498.tar.bz2
Ishtar-7a15461392a8df5cdcf27ca819c7a1bf3164f498.zip
Serialization: fix version management
Diffstat (limited to 'ishtar_common/serializers.py')
-rw-r--r--ishtar_common/serializers.py14
1 files changed, 10 insertions, 4 deletions
diff --git a/ishtar_common/serializers.py b/ishtar_common/serializers.py
index 6ff0ae9bb..aaf7baa08 100644
--- a/ishtar_common/serializers.py
+++ b/ishtar_common/serializers.py
@@ -330,7 +330,7 @@ def restore_serialized(archive_name, user=None, delete_existing=False):
idx = -1
for idx, obj in enumerate(deserialize("json", data)):
extra_attrs = {}
- if historized and not user:
+ if historized:
keys = obj.object.natural_key()
old_obj = None
try:
@@ -351,11 +351,17 @@ def restore_serialized(archive_name, user=None, delete_existing=False):
obj = model.objects.get(id=obj.object.id)
if user:
obj.history_modifier = user
- else:
+ if extra_attrs and \
+ "history_creator_id" in extra_attrs:
+ obj.history_creator_id = extra_attrs[
+ "history_creator_id"]
+ else:
+ obj.history_creator = user
+ elif extra_attrs:
+ for k in extra_attrs:
+ setattr(obj, k, extra_attrs[k])
obj.skip_history_when_saving = True
obj._no_move = True
- for k in extra_attrs:
- setattr(obj, k, extra_attrs[k])
obj.save()
if idx >= 0:
result.append((model.__name__, idx + 1))