summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2021-10-14 17:50:58 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2021-11-16 17:04:41 +0100
commite6f0b0b6e5b8f1dbce717e7956cb78b346937623 (patch)
tree5f444674a145adc8073603df2cd628e020f0ae17
parent97cae3d097c7337772e62034061b48950734bd07 (diff)
downloadIshtar-e6f0b0b6e5b8f1dbce717e7956cb78b346937623.tar.bz2
Ishtar-e6f0b0b6e5b8f1dbce717e7956cb78b346937623.zip
Admin: add custom label to list filters
-rw-r--r--ishtar_common/admin.py19
1 files changed, 18 insertions, 1 deletions
diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py
index c7ef05f28..f811a98e1 100644
--- a/ishtar_common/admin.py
+++ b/ishtar_common/admin.py
@@ -110,6 +110,16 @@ class ImportGenericForm(forms.Form):
)
+def custom_titled_filter(title, klass):
+ # klass: admin.BooleanFieldListFilter, admin.RelatedFieldListFilter or ...
+ class Wrapper(klass):
+ def __new__(cls, *args, **kwargs):
+ instance = klass(*args, **kwargs)
+ instance.title = title
+ return instance
+ return Wrapper
+
+
def change_value(attribute, value, description):
"""
Action to change a specific value in a list
@@ -1530,6 +1540,7 @@ class ImportTargetInline(admin.TabularInline):
extra = 1
form = ImportTargetForm
+
class ImporterColumnAdmin(admin.ModelAdmin):
list_display = (
"label",
@@ -1542,7 +1553,13 @@ class ImporterColumnAdmin(admin.ModelAdmin):
"duplicate_fields_lbl",
"required",
)
- list_filter = ("importer_type", "importer_type__available")
+ list_filter = (
+ (
+ "importer_type__available",
+ custom_titled_filter(_("Importer available"), admin.BooleanFieldListFilter),
+ ),
+ "importer_type",
+ )
search_fields = ("label",)
inlines = (ImportTargetInline, ImporterDuplicateFieldInline)
actions = [duplicate_importercolumn, shift_left, shift_right]