From c6dd55df4e96fef22c24540b445654cec9f2c9ef Mon Sep 17 00:00:00 2001 From: smilerz Date: Wed, 17 Feb 2021 10:45:31 -0600 Subject: [PATCH] add filter to new keywords page --- cookbook/filters.py | 8 ++++++++ cookbook/templates/manage/keyword_table.html | 1 - cookbook/templates/manage/keywords.html | 16 +++++++++++++++- cookbook/views/manage.py | 11 +++++++++-- 4 files changed, 32 insertions(+), 4 deletions(-) diff --git a/cookbook/filters.py b/cookbook/filters.py index c1cc86463..2d473cf8c 100644 --- a/cookbook/filters.py +++ b/cookbook/filters.py @@ -66,6 +66,14 @@ class IngredientFilter(django_filters.FilterSet): fields = ['name'] +class KeywordFilter(django_filters.FilterSet): + name = django_filters.CharFilter(lookup_expr='icontains') + + class Meta: + model = Keyword + fields = ['name'] + + class ShoppingListFilter(django_filters.FilterSet): def __init__(self, data=None, *args, **kwargs): diff --git a/cookbook/templates/manage/keyword_table.html b/cookbook/templates/manage/keyword_table.html index a1e57d118..ea1eb90b5 100644 --- a/cookbook/templates/manage/keyword_table.html +++ b/cookbook/templates/manage/keyword_table.html @@ -1,4 +1,3 @@ -{% load crispy_forms_tags %} {% load i18n %} {% load django_tables2 %} diff --git a/cookbook/templates/manage/keywords.html b/cookbook/templates/manage/keywords.html index efbdabe5a..fab4415bf 100644 --- a/cookbook/templates/manage/keywords.html +++ b/cookbook/templates/manage/keywords.html @@ -1,4 +1,5 @@ {% extends "base.html" %} +{% load crispy_forms_tags %} {% load i18n %} {% load django_tables2 %} @@ -8,13 +9,26 @@ {% block content %}
-

{% trans 'Manage Keywords' %} {% trans 'List' %} +

{% trans 'Manage Keywords' %} {% if create_url %} {% endif %}

+ {% if filter %} +
+
+
+ {% csrf_token %} + {{ filter.form|crispy }} + + {% trans 'Clear' %} +
+ {% endif %} + + {% render_table table %}
diff --git a/cookbook/views/manage.py b/cookbook/views/manage.py index db126cc4f..43ca4f8ca 100644 --- a/cookbook/views/manage.py +++ b/cookbook/views/manage.py @@ -1,3 +1,4 @@ +from cookbook.filters import KeywordFilter from cookbook.helper.permission_helper import group_required from cookbook.models import Keyword from cookbook.tables import ManageKeywordTable @@ -9,11 +10,17 @@ from django.utils.translation import gettext as _ @group_required('user') def keywords(request): - table = ManageKeywordTable(Keyword.objects.all()) + f = KeywordFilter( + request.GET, + queryset=Keyword.objects.all().order_by('pk') + ) + + table = ManageKeywordTable(f.qs) RequestConfig(request, paginate={'per_page': 25}).configure(table) return render( request, 'manage/keywords.html', - {'title': _("Keyword"), 'table': table, 'create_url': 'new_keyword'} + {'title': _("Keyword"), 'table': table, + 'create_url': 'new_keyword', 'filter': f} )