From f135ad906d3a8e7967e3feb221b478398e079315 Mon Sep 17 00:00:00 2001 From: timur-orudzhov Date: Wed, 16 May 2018 16:05:40 +0300 Subject: [PATCH 1/2] add support for django admin filters --- adminsortable/admin.py | 7 +++++++ .../templates/adminsortable/change_list.html | 19 ++++++++++++++++++- .../change_list_with_sort_link.html | 19 ++++++++++++++++++- 3 files changed, 43 insertions(+), 2 deletions(-) diff --git a/adminsortable/admin.py b/adminsortable/admin.py index 3647d88..7c7bd6c 100644 --- a/adminsortable/admin.py +++ b/adminsortable/admin.py @@ -109,14 +109,21 @@ class SortableAdmin(SortableAdminBase, ModelAdmin): """ # get sort group index from querystring if present sort_filter_index = request.GET.get('sort_filter') + filter_expression = request.GET.get('filter_expression') filters = {} + if sort_filter_index: try: filters = self.model.sorting_filters[int(sort_filter_index)][1] except (IndexError, ValueError): pass + if filter_expression: + filters.update( + dict([filter_expression.split('=')]) + ) + # Apply any sort filters to create a subset of sortable objects return self.get_queryset(request).filter(**filters) diff --git a/adminsortable/templates/adminsortable/change_list.html b/adminsortable/templates/adminsortable/change_list.html index 3be48ab..b36374e 100644 --- a/adminsortable/templates/adminsortable/change_list.html +++ b/adminsortable/templates/adminsortable/change_list.html @@ -29,6 +29,23 @@ {% include 'adminsortable/csrf/jquery.django-csrf.html' with csrf_cookie_name=csrf_cookie_name %} + + {% endblock %} {% block bodyclass %}{{ block.super }} app-{{ opts.app_label }} model-{{ opts.model_name }} change-list{% endblock %} @@ -77,7 +94,7 @@ {% block object-tools %}