From f78617d996610f39cb396c29f8a0c8484229730a Mon Sep 17 00:00:00 2001 From: Fabien Le Frapper Date: Thu, 5 Dec 2024 06:51:18 +0100 Subject: [PATCH] Ignorer les accents dans les recherches dans Django admin (#1108) --- core/admin.py | 7 +++++++ qfdmd/admin.py | 4 ++-- qfdmo/admin/acteur.py | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 core/admin.py diff --git a/core/admin.py b/core/admin.py new file mode 100644 index 000000000..002311e0f --- /dev/null +++ b/core/admin.py @@ -0,0 +1,7 @@ +from django.contrib.postgres.lookups import Unaccent +from django.db.models import CharField, TextField + +# Useful to support unaccent lookups in django admin, for +# acteurs and produits for example +CharField.register_lookup(Unaccent) +TextField.register_lookup(Unaccent) diff --git a/qfdmd/admin.py b/qfdmd/admin.py index 94595d167..04914bdb0 100644 --- a/qfdmd/admin.py +++ b/qfdmd/admin.py @@ -34,7 +34,7 @@ class SuggestionAdmin(admin.ModelAdmin): @admin.register(Produit) class ProduitAdmin(admin.ModelAdmin): list_display = ("nom", "id", "synonymes_existants") - search_fields = ["nom", "id", "synonymes_existants"] + search_fields = ["nom__unaccent", "id", "synonymes_existants__unaccent"] # ajout des filtres de recherche sur bdd et code list_filter = ["bdd", "code"] inlines = [SynonymeInline, LienInline] @@ -49,5 +49,5 @@ class LienAdmin(NotEditableInlineMixin, admin.ModelAdmin): @admin.register(Synonyme) class SynonymeAdmin(NotEditableInlineMixin, ImportExportModelAdmin, admin.ModelAdmin): resource_classes = [SynonymeResource] - search_fields = ["nom"] + search_fields = ["nom__unaccent"] list_display = ("nom", "produit", "slug") diff --git a/qfdmo/admin/acteur.py b/qfdmo/admin/acteur.py index 3b573dbfd..c9e94de89 100644 --- a/qfdmo/admin/acteur.py +++ b/qfdmo/admin/acteur.py @@ -177,7 +177,7 @@ class BaseActeurAdmin(admin.GISModelAdmin): search_fields = [ "code_postal", "identifiant_unique", - "nom", + "nom__unaccent", "siret", "ville", ]