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
commitf28a84102fcea5dffd8618c9253687d57acda035 (patch)
tree84b81092df907dd751a1b54aef8b7e6adb70b804 /ishtar_common/serializers.py
parent37234e1423fb4ce64ceafe7bec90960b8da86793 (diff)
downloadIshtar-f28a84102fcea5dffd8618c9253687d57acda035.tar.bz2
Ishtar-f28a84102fcea5dffd8618c9253687d57acda035.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))