summaryrefslogtreecommitdiff
path: root/ishtar_common/admin.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2026-02-18 17:07:00 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2026-02-18 17:07:00 +0100
commitdf41dc144d9921cd454213290090fce40d2fdbc3 (patch)
tree40febc596d046cda70595fcbef7f4a0ff075bc7c /ishtar_common/admin.py
parent7adc51e8d45ef9da2037daa2b48e1a5457701d64 (diff)
downloadIshtar-df41dc144d9921cd454213290090fce40d2fdbc3.tar.bz2
Ishtar-df41dc144d9921cd454213290090fce40d2fdbc3.zip
✨ admin - CustomForm: JSON import/export
Diffstat (limited to 'ishtar_common/admin.py')
-rw-r--r--ishtar_common/admin.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py
index 5775eada8..15624704c 100644
--- a/ishtar_common/admin.py
+++ b/ishtar_common/admin.py
@@ -77,7 +77,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:
@@ -2689,7 +2688,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",
@@ -2711,8 +2714,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