From b5899fcdbd505cb36468cb5ea9e5a9601c3b7317 Mon Sep 17 00:00:00 2001 From: JensDiemer Date: Sun, 21 Sep 2025 13:18:13 +0200 Subject: [PATCH] Enhance change list filters by using RelatedOnlyFieldListFilter --- README.md | 2 +- inventory/admin/base.py | 2 +- inventory/admin/item.py | 8 +++++++- inventory/admin/memo.py | 2 +- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 980ff36..86d8f55 100644 --- a/README.md +++ b/README.md @@ -167,13 +167,13 @@ To make a new release, do this: [comment]: <> (✂✂✂ auto generated history start ✂✂✂) * [**dev**](https://github.com/jedie/PyInventory/compare/v0.21.2...main) + * 2025-09-21 - Update requirements * 2025-09-21 - Bugfix Memo changelist ordering * 2025-09-20 - Code cleanup: Use format_html() with kwargs * 2025-09-20 - Add type hints * 2025-09-20 - Cleanup: We didn't have make files * 2025-09-20 - Cleanup: Remove obsolete files * 2025-09-20 - Add PyCharm run configs - * 2025-09-20 - Update requirements * 2025-09-20 - pre-commit: remove "default_install_hook_types" * 2025-09-20 - Remove obsolete config files * 2025-09-20 - Update ReadmeHistoryTestCase diff --git a/inventory/admin/base.py b/inventory/admin/base.py index af37cc7..0e14035 100644 --- a/inventory/admin/base.py +++ b/inventory/admin/base.py @@ -49,7 +49,7 @@ class BaseUserAdmin(CompareVersionAdmin): if request.user.is_superuser: # Superuser sees entries from all users -> Add "By user" filter list_filter = list(list_filter) - list_filter.insert(0, 'user') + list_filter.insert(0, ('user', admin.RelatedOnlyFieldListFilter)) return list_filter diff --git a/inventory/admin/item.py b/inventory/admin/item.py index bd4fe1a..8552a9a 100644 --- a/inventory/admin/item.py +++ b/inventory/admin/item.py @@ -94,7 +94,13 @@ class ItemModelAdmin(TagulousModelAdminFix, ImportExportMixin, SortableAdminMixi list_display = ('producer', 'item', 'kind', 'location', 'received_date', 'update_dt') ordering = ('path_str',) list_display_links = () - list_filter = (LimitTreeDepthListFilter, 'kind', 'location', 'producer', 'tags') + list_filter = ( + LimitTreeDepthListFilter, + ('kind', admin.RelatedOnlyFieldListFilter), + ('location', admin.RelatedOnlyFieldListFilter), + ('producer', admin.RelatedOnlyFieldListFilter), + ('tags', admin.RelatedOnlyFieldListFilter), + ) search_fields = ('name', 'description', 'kind__name', 'tags__name') fieldsets = ( ( diff --git a/inventory/admin/memo.py b/inventory/admin/memo.py index a85b637..a6e18d0 100644 --- a/inventory/admin/memo.py +++ b/inventory/admin/memo.py @@ -44,7 +44,7 @@ class MemoModelAdmin(TagulousModelAdminFix, ImportExportMixin, SortableAdminBase list_display = ('name', 'update_dt') ordering = ('-update_dt',) list_display_links = ('name',) - list_filter = ('tags',) + list_filter = (('tags', admin.RelatedOnlyFieldListFilter),) search_fields = ('name', 'memo', 'tags__name') fieldsets = ( (