summaryrefslogtreecommitdiff
path: root/ishtar_common/admin.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/admin.py')
-rw-r--r--ishtar_common/admin.py64
1 files changed, 32 insertions, 32 deletions
diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py
index 7b1aa48d4..a2dfc63aa 100644
--- a/ishtar_common/admin.py
+++ b/ishtar_common/admin.py
@@ -281,23 +281,25 @@ def serialize_action(dir_name, model_list):
else:
modellist = [modeladmin.model]
opts = modeladmin.model._meta
+ if getattr(modeladmin, "serialize_filter_queryset", None):
+ queryset = queryset.filter(**modeladmin.serialize_filter_queryset)
result = generic_get_results(
modellist, dir_name, result_queryset={opts.object_name: queryset}
)
basename = str(opts).replace(".", "_")
in_memory = BytesIO()
- zip = zipfile.ZipFile(in_memory, "a")
+ current_zip = zipfile.ZipFile(in_memory, "a")
for key in result.keys():
__, model_name = key
- zip.writestr(dir_name + os.sep + model_name + ".json", result[key])
+ current_zip.writestr(dir_name + os.sep + model_name + ".json", result[key])
# info
- zip.writestr("info.json", json.dumps(serialization_info(), indent=2))
+ current_zip.writestr("info.json", json.dumps(serialization_info(), indent=2))
# fix for Linux zip files read in Windows
- for file in zip.filelist:
- file.create_system = 0
- zip.close()
+ for cfile in current_zip.filelist:
+ cfile.create_system = 0
+ current_zip.close()
response = HttpResponse(content_type="application/zip")
response["Content-Disposition"] = "attachment; filename={}.zip".format(basename)
in_memory.seek(0)
@@ -2124,15 +2126,11 @@ class ImporterGroupImporterInline(admin.TabularInline):
extra = 3
-serialize_importer_group_action = serialize_action("common_imports", IMPORT_MODEL_LIST)
-serialize_importer_group_action.short_description = SERIALIZE_DESC
-
-
@admin.register(models.ImporterGroup, site=admin_site)
class ImporterGroupAdmin(ImportJSONActionAdmin):
list_display = ("name", "importer_types_label", "available")
actions = [
- serialize_importer_group_action,
+ serialize_importer_action,
change_value("available", True, _("Make available")),
change_value("available", False, _("Make unavailable")),
]
@@ -2359,6 +2357,7 @@ class ImportAdmin(admin.ModelAdmin):
"creation_date",
)
autocomplete_fields = ["user"]
+ search_fields = ("name", "importer_type__name")
admin_site.register(models.Import, ImportAdmin)
@@ -2377,23 +2376,6 @@ class ImportGroupAdmin(admin.ModelAdmin):
autocomplete_fields = ["user"]
-class TargetKeyGroupAdmin(admin.ModelAdmin):
- list_display = ("name", "all_user_can_use", "all_user_can_modify", "available")
- search_fields = ("name",)
-
-
-admin_site.register(models.TargetKeyGroup, TargetKeyGroupAdmin)
-
-
-class TargetKeyAdmin(admin.ModelAdmin):
- list_display = ("target", "importer_type", "column_nb", "key", "value", "is_set")
- list_filter = ("is_set", "target__column__importer_type")
- search_fields = ("target__target", "value", "key")
-
-
-admin_site.register(models.TargetKey, TargetKeyAdmin)
-
-
class OperationTypeAdmin(GeneralTypeAdmin):
extra_list_display = ["order", "preventive"]
model = models.OperationType
@@ -2410,12 +2392,30 @@ class SpatialReferenceSystemAdmin(GeneralTypeAdmin):
admin_site.register(models.SpatialReferenceSystem, SpatialReferenceSystemAdmin)
-class ItemKeyAdmin(admin.ModelAdmin):
- list_display = ("content_type", "key", "content_object", "importer")
- search_fields = ("key",)
+@admin.register(models.ItemKey, site=admin_site)
+class ItemKeyAdmin(ImportJSONActionAdmin):
+ list_display = (
+ "content_type", "content_type_model", "key", "content_object", "linked_to_all",
+ "linked_to_importer_type", "linked_to_importer", "linked_to_user"
+ )
+ search_fields = ("key", "content_type__model")
+ list_filter = (("content_type", admin.RelatedOnlyFieldListFilter),)
+ autocomplete_fields = ["user", "ishtar_import"]
+ actions = [
+ serialize_type_action
+ ]
+ serialize_filter_queryset = {
+ "user__isnull": True,
+ "group__isnull": True,
+ "ishtar_import__isnull": True
+ }
-admin_site.register(models.ItemKey, ItemKeyAdmin)
+@admin.register(models.TargetKey, site=admin_site)
+class TargetKeyAdmin(admin.ModelAdmin):
+ list_display = ("target", "importer_type", "column_nb", "key", "value", "is_set")
+ list_filter = ("is_set", "target__column__importer_type")
+ search_fields = ("target__target", "value", "key")
@admin.register(models.ImportColumnValue, site=admin_site)