diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2026-02-18 17:07:00 +0100 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2026-02-19 12:16:05 +0100 |
| commit | a20d84d7567e889f18082122ad4e164098a1efd8 (patch) | |
| tree | fcb3411e00c389b395b21583b4a583b65033651c /ishtar_common/admin.py | |
| parent | 976248379d5866d8d46f9ec7974d3766f5b8c209 (diff) | |
| download | Ishtar-a20d84d7567e889f18082122ad4e164098a1efd8.tar.bz2 Ishtar-a20d84d7567e889f18082122ad4e164098a1efd8.zip | |
✨ admin - CustomForm: JSON import/export
Diffstat (limited to 'ishtar_common/admin.py')
| -rw-r--r-- | ishtar_common/admin.py | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py index 4d922bded..2f3556eca 100644 --- a/ishtar_common/admin.py +++ b/ishtar_common/admin.py @@ -76,7 +76,7 @@ from ishtar_common.utils import API_MAIN_CONTENT_TYPES, get_cache, create_slug,\ get_person_gdpr_log, InlineClass from ishtar_common import forms as common_forms, forms_common as other_common_forms -from ishtar_common.serializers import restore_serialized, IMPORT_MODEL_LIST +from ishtar_common.serializers import CUSTOM_FORM_LIST, restore_serialized, IMPORT_MODEL_LIST from ishtar_common.serializers_utils import generic_get_results, serialization_info from archaeological_files import forms as file_forms from archaeological_operations import forms as operation_forms @@ -1519,7 +1519,6 @@ class ImportJSONActionAdmin(admin.ModelAdmin): with open(filename, "wb+") as zipped_file: for chunk in request.FILES["json_file"].chunks(): zipped_file.write(chunk) - result = restore_serialized(filename) try: result = restore_serialized(filename) except ValueError as e: @@ -2694,7 +2693,11 @@ class JsonFieldInline(admin.TabularInline): formset = JsonFieldFormset -class CustomFormAdmin(admin.ModelAdmin): +serialize_form_action = serialize_action("custom_forms", CUSTOM_FORM_LIST) +serialize_form_action.short_description = SERIALIZE_DESC + + +class CustomFormAdmin(ImportJSONActionAdmin): list_display = [ "name", "form", @@ -2716,8 +2719,10 @@ class CustomFormAdmin(admin.ModelAdmin): "profile_types", ) autocomplete_fields = ["users"] + actions = [serialize_form_action] form = CustomFormForm inlines = [ExcludeFieldInline, JsonFieldInline] + import_keys = ["name"] def get_inline_instances(self, request, obj=None): # no inline on creation |
