diff options
Diffstat (limited to 'ishtar_common/admin.py')
| -rw-r--r-- | ishtar_common/admin.py | 35 |
1 files changed, 22 insertions, 13 deletions
diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py index 8f9d4d0a9..0b6765399 100644 --- a/ishtar_common/admin.py +++ b/ishtar_common/admin.py @@ -1029,7 +1029,7 @@ MAIN_ITEM_READONLY_FIELDS = [ @admin.register(models.BiographicalNote, site=admin_site) -class BiographicalNoteAdmin(admin.ModelAdmin): +class BiographicalNoteAdmin(MergeActionAdmin, admin.ModelAdmin): list_display = ("denomination", "last_name", "first_name") autocomplete_fields = ["person", "organization"] model = models.BiographicalNote @@ -1135,7 +1135,7 @@ class ImportActionAdmin(admin.ModelAdmin): def get_urls(self): urls = super(ImportActionAdmin, self).get_urls() my_urls = [ - re_path(r"^import-from-csv/$", self.import_generic), + re_path(r"^import-from-csv/$", self.admin_site.admin_view(self.import_generic)), ] return my_urls + urls @@ -1293,7 +1293,7 @@ class ImportGEOJSONActionAdmin(object): def get_urls(self): urls = super(ImportGEOJSONActionAdmin, self).get_urls() my_urls = [ - re_path(r"^import-from-geojson/$", self.import_geojson), + re_path(r"^import-from-geojson/$", self.admin_site.admin_view(self.import_geojson)), ] return my_urls + urls @@ -1519,7 +1519,7 @@ class ImportJSONActionAdmin(admin.ModelAdmin): def get_urls(self): urls = super(ImportJSONActionAdmin, self).get_urls() my_urls = [ - re_path(r"^import-from-json/$", self.import_json), + re_path(r"^import-from-json/$", self.admin_site.admin_view(self.import_json)), ] return my_urls + urls @@ -1788,7 +1788,7 @@ class CreateDepartmentActionAdmin(GeneralTypeAdmin): def get_urls(self): urls = super(CreateDepartmentActionAdmin, self).get_urls() my_urls = [ - re_path(r"^create-department/$", self.create_area), + re_path(r"^create-department/$", self.admin_site.admin_view(self.create_area)), ] return my_urls + urls @@ -2124,22 +2124,31 @@ duplicate_importertype.short_description = _("Duplicate") def generate_libreoffice_template(modeladmin, request, queryset): + c_url = ( + reverse( + "admin:%s_%s_changelist" + % (modeladmin.model._meta.app_label, modeladmin.model._meta.model_name) + ) + + "?" + + urllib.parse.urlencode(request.GET) + ) if queryset.count() != 1: messages.add_message( request, messages.ERROR, str(_("Select only one importer.")) ) - c_url = ( - reverse( - "admin:%s_%s_changelist" - % (modeladmin.model._meta.app_label, modeladmin.model._meta.model_name) - ) - + "?" - + urllib.parse.urlencode(request.GET) - ) return HttpResponseRedirect(c_url) importer_type = queryset.all()[0] dest_filename = importer_type.get_libreoffice_template() + try: + dest_filename = importer_type.get_libreoffice_template() + except AttributeError: + messages.add_message( + request, messages.ERROR, + str(_("Error on libreoffice daemon. Contact your server administrator.")) + ) + return HttpResponseRedirect(c_url) + in_memory = BytesIO() with open(dest_filename, "rb") as fle: in_memory.write(fle.read()) |
