diff options
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 |
commit | 7a15461392a8df5cdcf27ca819c7a1bf3164f498 (patch) | |
tree | 84b81092df907dd751a1b54aef8b7e6adb70b804 /ishtar_common/serializers.py | |
parent | 04bdc9d57ba7c2ece4c138c9dcb4072bb45a1608 (diff) | |
download | Ishtar-7a15461392a8df5cdcf27ca819c7a1bf3164f498.tar.bz2 Ishtar-7a15461392a8df5cdcf27ca819c7a1bf3164f498.zip |
Serialization: fix version management
Diffstat (limited to 'ishtar_common/serializers.py')
-rw-r--r-- | ishtar_common/serializers.py | 14 |
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)) |