use django filters + search filter; still need adapts sub-page list views

This commit is contained in:
bkfox
2022-02-22 15:29:57 +01:00
parent e9e09104ad
commit 849a14014c
7 changed files with 145 additions and 73 deletions

View File

@ -57,6 +57,19 @@ Usefull context:
{% endblock %}
</div>
<div class="navbar-end">
{% block top-nav-end %}
<div class="navbar-item">
<form action="{% url 'page-list' %}" method="GET">
<div class="control has-icons-left">
<span class="icon is-small is-left">
<i class="fa fa-search"></i>
</span>
<input type="text" name="q" class="input"
placeholder="{% trans "Search" %}" />
</div>
</form>
</div>
{% endblock %}
{% block top-nav-tools %}
{% endblock %}
</div>

View File

@ -24,48 +24,7 @@
{% block main %}{{ block.super }}
{% block before_list %}
{% if filters %}
<form method="GET" action="" class="media">
<div class="media-content">
{% block filters %}
{% for label, name, choices in filters %}
<div class="field is-horizontal">
<div class="field-label">
<label class="label">{{ label }}</label>
</div>
<div class="field-body">
<div class="field is-narrow">
<div class="control">
{% for label, value, checked in choices %}
<label class="checkbox">
<input type="checkbox" class="checkbox" name="{{ name }}"
value="{{ value }}"
{% if checked %}checked{% endif %} />
{{ label }}
</label>
{% endfor %}
</div>
</div>
</div>
</div>
{% endfor %}
{% endblock %}
</div>
<div class="media-right">
<div class="field is-grouped is-grouped-right">
<div class="control">
<button class="button is-primary"/>{% trans "Apply" %}</button>
</div>
<div class="control">
<a href="?" class="button is-secondary">{% trans "Reset" %}</a>
</div>
</div>
</div>
</form>
{% endif %}
{% endblock %}
{% block before_list %}{% endblock %}
<section role="list">
{% block pages_list %}

View File

@ -2,3 +2,62 @@
{% comment %}Display a list of Pages{% endcomment %}
{% load i18n aircox %}
{% block before_list %}
{{ block.super }}
{% if view.has_filters %}
<form method="GET" action="" class="media">
<div class="media-content">
{% block filters %}
<div class="field is-horizontal">
<div class="field-label">
<label class="label">{% trans "Search" %}</label>
</div>
<div class="field-body">
<div class="field">
<div class="control has-icons-left">
<span class="icon is-small is-left">
<i class="fa fa-search"></i>
</span>
<input class="input" type="text" name="q"
value="{{ filterset_data.q }}"
placeholder="{% trans "Search content" %}">
</div>
</div>
</div>
</div>
<div class="field is-horizontal">
<div class="field-label">
<label class="label">{% trans "Categories" %}</label>
</div>
<div class="field-body">
<div class="field is-narrow">
<div class="control">
{% for label, value in categories %}
<label class="checkbox">
<input type="checkbox" class="checkbox" name="category__id__in"
value="{{ value }}"
{% if value in filterset_data.category__id__in %}checked{% endif %} />
{{ label }}
</label>
{% endfor %}
</div>
</div>
</div>
</div>
{% endblock %}
</div>
<div class="media-right">
<div class="field is-grouped is-grouped-right">
<div class="control">
<button class="button is-primary"/>{% trans "Apply" %}</button>
</div>
<div class="control">
<a href="?" class="button is-secondary">{% trans "Reset" %}</a>
</div>
</div>
</div>
</form>
{% endif %}
{% endblock %}