forked from CGM_Public/pretix_original
Allow to filter subevent list by weekday
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
from django import forms
|
from django import forms
|
||||||
from django.apps import apps
|
from django.apps import apps
|
||||||
from django.db.models import Exists, F, OuterRef, Q
|
from django.db.models import Exists, F, OuterRef, Q
|
||||||
from django.db.models.functions import Coalesce
|
from django.db.models.functions import Coalesce, ExtractWeekDay
|
||||||
from django.urls import reverse, reverse_lazy
|
from django.urls import reverse, reverse_lazy
|
||||||
from django.utils.timezone import now
|
from django.utils.timezone import now
|
||||||
from django.utils.translation import pgettext_lazy, ugettext_lazy as _
|
from django.utils.translation import pgettext_lazy, ugettext_lazy as _
|
||||||
@@ -307,6 +307,20 @@ class SubEventFilterForm(FilterForm):
|
|||||||
),
|
),
|
||||||
required=False
|
required=False
|
||||||
)
|
)
|
||||||
|
weekday = forms.ChoiceField(
|
||||||
|
label=_('Weekday'),
|
||||||
|
choices=(
|
||||||
|
('', _('All days')),
|
||||||
|
('2', _('Monday')),
|
||||||
|
('3', _('Tuesday')),
|
||||||
|
('4', _('Wednesday')),
|
||||||
|
('5', _('Thursday')),
|
||||||
|
('6', _('Friday')),
|
||||||
|
('7', _('Saturday')),
|
||||||
|
('1', _('Sunday')),
|
||||||
|
),
|
||||||
|
required=False
|
||||||
|
)
|
||||||
query = forms.CharField(
|
query = forms.CharField(
|
||||||
label=_('Event name'),
|
label=_('Event name'),
|
||||||
widget=forms.TextInput(attrs={
|
widget=forms.TextInput(attrs={
|
||||||
@@ -336,6 +350,9 @@ class SubEventFilterForm(FilterForm):
|
|||||||
elif fdata.get('status') == 'past':
|
elif fdata.get('status') == 'past':
|
||||||
qs = qs.filter(presale_end__lte=now())
|
qs = qs.filter(presale_end__lte=now())
|
||||||
|
|
||||||
|
if fdata.get('weekday'):
|
||||||
|
qs = qs.annotate(wday=ExtractWeekDay('date_from')).filter(wday=fdata.get('weekday'))
|
||||||
|
|
||||||
if fdata.get('query'):
|
if fdata.get('query'):
|
||||||
query = fdata.get('query')
|
query = fdata.get('query')
|
||||||
qs = qs.filter(
|
qs = qs.filter(
|
||||||
|
|||||||
@@ -22,9 +22,12 @@
|
|||||||
<div class="col-md-4 col-sm-6 col-xs-12">
|
<div class="col-md-4 col-sm-6 col-xs-12">
|
||||||
{% bootstrap_field filter_form.query layout='inline' %}
|
{% bootstrap_field filter_form.query layout='inline' %}
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-6 col-sm-6 col-xs-12">
|
<div class="col-md-3 col-sm-6 col-xs-12">
|
||||||
{% bootstrap_field filter_form.status layout='inline' %}
|
{% bootstrap_field filter_form.status layout='inline' %}
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-md-3 col-sm-6 col-xs-12">
|
||||||
|
{% bootstrap_field filter_form.weekday layout='inline' %}
|
||||||
|
</div>
|
||||||
<div class="col-md-2 col-sm-6 col-xs-12">
|
<div class="col-md-2 col-sm-6 col-xs-12">
|
||||||
<button class="btn btn-primary btn-block" type="submit">
|
<button class="btn btn-primary btn-block" type="submit">
|
||||||
<span class="fa fa-filter"></span>
|
<span class="fa fa-filter"></span>
|
||||||
|
|||||||
Reference in New Issue
Block a user