diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-01-30 13:08:34 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2025-02-19 14:45:56 +0100 |
commit | 042b8f956369c115536dfe7e33d9c0461dafe539 (patch) | |
tree | 90f8577c5e52047be00f5aeb2f31d010f0d65fb2 /ishtar_common/serializers.py | |
parent | bfae6a086ff5d35c794a5c5c0380bf2332661452 (diff) | |
download | Ishtar-042b8f956369c115536dfe7e33d9c0461dafe539.tar.bz2 Ishtar-042b8f956369c115536dfe7e33d9c0461dafe539.zip |
✨ admin: better management of Import - Item keys, import/export, links all user/imports
Diffstat (limited to 'ishtar_common/serializers.py')
-rw-r--r-- | ishtar_common/serializers.py | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/ishtar_common/serializers.py b/ishtar_common/serializers.py index 1469e13a1..3cbe20907 100644 --- a/ishtar_common/serializers.py +++ b/ishtar_common/serializers.py @@ -17,11 +17,12 @@ from .models_common import State, Department from archaeological_operations.models import ActType from ishtar_common.serializers_utils import ( - generic_get_results, archive_serialization, + CUSTOM_SERIALIZERS, + generic_get_results, generic_archive_files, - SERIALIZATION_VERSION, get_model_from_filename, + SERIALIZATION_VERSION, ) from archaeological_operations.serializers import ( @@ -466,7 +467,15 @@ def restore_serialized( or releasing_locks or (user and historized) ) - idx = -1 + idx = None + model_name = f"{model._meta.app_label}.{model._meta.model_name}" + if model_name in CUSTOM_SERIALIZERS: + current_serializer = CUSTOM_SERIALIZERS[model_name]() + for idx, values in enumerate(json.loads(data)): + current_serializer.save(values["fields"]) + if idx is not None: + result.append((model._meta.verbose_name, idx + 1)) + continue for idx, obj in enumerate(deserialize("json", data)): extra_attrs = {} if historized or hasattr(model, "locked"): @@ -514,6 +523,6 @@ def restore_serialized( obj.lock_user = None obj._no_move = True obj.save() - if idx >= 0: - result.append((model.__name__, idx + 1)) + if idx is not None: + result.append((model._meta.verbose_name, idx + 1)) return result |