mirror of
https://github.com/TandoorRecipes/recipes.git
synced 2026-01-01 04:10:06 -05:00
add filter to new keywords page
This commit is contained in:
@@ -66,6 +66,14 @@ class IngredientFilter(django_filters.FilterSet):
|
|||||||
fields = ['name']
|
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):
|
class ShoppingListFilter(django_filters.FilterSet):
|
||||||
|
|
||||||
def __init__(self, data=None, *args, **kwargs):
|
def __init__(self, data=None, *args, **kwargs):
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
{% load crispy_forms_tags %}
|
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% load django_tables2 %}
|
{% load django_tables2 %}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
|
{% load crispy_forms_tags %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% load django_tables2 %}
|
{% load django_tables2 %}
|
||||||
|
|
||||||
@@ -8,13 +9,26 @@
|
|||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<div class="table-container">
|
<div class="table-container">
|
||||||
<h3 style="margin-bottom: 2vh">{% trans 'Manage Keywords' %} {% trans 'List' %}
|
<h3 style="margin-bottom: 2vh">{% trans 'Manage Keywords' %}
|
||||||
{% if create_url %}
|
{% if create_url %}
|
||||||
<a href="{% url create_url %}"> <i class="fas fa-plus-circle"></i>
|
<a href="{% url create_url %}"> <i class="fas fa-plus-circle"></i>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
|
{% if filter %}
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
|
<form action="." method="get">
|
||||||
|
{% csrf_token %}
|
||||||
|
{{ filter.form|crispy }}
|
||||||
|
<button type="submit" class="btn btn-success">{% trans 'Filter' %}</button>
|
||||||
|
<a href="{% url 'manage_keywords' %}"
|
||||||
|
class="btn btn-secondary shadow-none">{% trans 'Clear' %}</a>
|
||||||
|
</form>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
{% render_table table %}
|
{% render_table table %}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
from cookbook.filters import KeywordFilter
|
||||||
from cookbook.helper.permission_helper import group_required
|
from cookbook.helper.permission_helper import group_required
|
||||||
from cookbook.models import Keyword
|
from cookbook.models import Keyword
|
||||||
from cookbook.tables import ManageKeywordTable
|
from cookbook.tables import ManageKeywordTable
|
||||||
@@ -9,11 +10,17 @@ from django.utils.translation import gettext as _
|
|||||||
|
|
||||||
@group_required('user')
|
@group_required('user')
|
||||||
def keywords(request):
|
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)
|
RequestConfig(request, paginate={'per_page': 25}).configure(table)
|
||||||
|
|
||||||
return render(
|
return render(
|
||||||
request,
|
request,
|
||||||
'manage/keywords.html',
|
'manage/keywords.html',
|
||||||
{'title': _("Keyword"), 'table': table, 'create_url': 'new_keyword'}
|
{'title': _("Keyword"), 'table': table,
|
||||||
|
'create_url': 'new_keyword', 'filter': f}
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user