diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-10-14 17:50:58 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2022-07-08 09:58:49 +0200 |
commit | 9b577a64b518f9e5f83aeb2b21bd54e980f71fc3 (patch) | |
tree | 58a6e53bdde1c439ff543f81711eaa7ea12ffb41 /ishtar_common/admin.py | |
parent | 246b5135af3f0d87add7e6ce8a03c3a5c35c9c57 (diff) | |
download | Ishtar-9b577a64b518f9e5f83aeb2b21bd54e980f71fc3.tar.bz2 Ishtar-9b577a64b518f9e5f83aeb2b21bd54e980f71fc3.zip |
Admin: add custom label to list filters
Diffstat (limited to 'ishtar_common/admin.py')
-rw-r--r-- | ishtar_common/admin.py | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py index 03819ec12..e363de401 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 @@ -1537,6 +1547,7 @@ class ImportTargetInline(admin.TabularInline): extra = 1 form = ImportTargetForm + class ImporterColumnAdmin(admin.ModelAdmin): list_display = ( "label", @@ -1549,7 +1560,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] |