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 %}
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} )