UPD: improved the event export list feature.
This commit is contained in:
@@ -20,11 +20,14 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class EventListExportForm(forms.Form):
|
||||
sport = forms.ChoiceField(choices=choices.SPORT_CHOICES,
|
||||
required=False,
|
||||
label=_(u'Spielart'),
|
||||
)
|
||||
sport = forms.MultipleChoiceField(choices=choices.SPORT_CHOICES,
|
||||
required=False,
|
||||
label=_(u'Spielart'),
|
||||
initial=[c for c, l in choices.SPORT_CHOICES],
|
||||
widget=forms.CheckboxSelectMultiple(),
|
||||
)
|
||||
begin = forms.DateField(required=False,
|
||||
initial=datetime.date.today(),
|
||||
label=_(u'Zeitraum - Start'),
|
||||
help_text=u'%s - %s' % (
|
||||
_(u'Format: tt.mm.jjjj'),
|
||||
@@ -58,16 +61,25 @@ class EventListExportForm(forms.Form):
|
||||
'pickerPosition': 'bottom-left',
|
||||
},
|
||||
bootstrap_version=3))
|
||||
expired = forms.BooleanField(required=False,
|
||||
label=_(u'auch ausgelaufene Veranstaltungen auflisten'))
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(EventListExportForm, self).__init__(*args, **kwargs)
|
||||
sport_choices = self.fields['sport'].widget.choices
|
||||
sport_choices.append((None, u'Alle'))
|
||||
sport_choices.sort()
|
||||
self.fields['sport'].widget.choices = sport_choices
|
||||
|
||||
deadline = forms.DateField(required=False,
|
||||
initial=datetime.date.today(),
|
||||
label=_(u'Frühester Anmeldeschluss'),
|
||||
help_text=u'%s - %s - %s' % (
|
||||
_(u'Veranstaltungen ausschließen,'
|
||||
u' deren Anmeldeschluss an dem gewählten Datum bereits abgelaufen ist'),
|
||||
_(u'Kann frei gelassen werden'),
|
||||
_(u'Format: tt.mm.jjjj'),
|
||||
),
|
||||
widget=DateWidget(attrs={'id': 'id_deadline_widget',
|
||||
'placeholder': _(u'Anmeldeschluss ignorieren'),
|
||||
},
|
||||
usel10n=True,
|
||||
options={
|
||||
# 'format': 'dd.mm.yyyy',
|
||||
# 'weekStart': 1,
|
||||
'pickerPosition': 'bottom-left',
|
||||
},
|
||||
bootstrap_version=3))
|
||||
|
||||
class EventUpdateForm(forms.ModelForm):
|
||||
class Meta:
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
import logging
|
||||
import os
|
||||
from django.apps import apps
|
||||
from django.contrib import messages
|
||||
from django.contrib.auth import login
|
||||
from django.contrib.auth.decorators import login_required
|
||||
@@ -72,8 +72,9 @@ class EventListExportView(generic.FormView):
|
||||
}
|
||||
if form.cleaned_data['sport']:
|
||||
sport = form.cleaned_data['sport']
|
||||
filter_kwargs['sport'] = sport
|
||||
filename += u'--%s' % choices.SPORT_CHOICES.get_label(sport)
|
||||
filter_kwargs['sport__in'] = sport
|
||||
sport_labels = [u'%s' % choices.SPORT_CHOICES.get_label(code) for code in sport]
|
||||
filename += u'--%s' % u'_+_'.join(sport_labels)
|
||||
if form.cleaned_data['begin']:
|
||||
date = form.cleaned_data['begin']
|
||||
filter_kwargs['first_day__gte'] = date
|
||||
@@ -83,13 +84,18 @@ class EventListExportView(generic.FormView):
|
||||
filter_kwargs['first_day__lte'] = date
|
||||
filename += u'--%s' % date.strftime('%Y-%m-%d')
|
||||
|
||||
exclude_expired = not form.cleaned_data.get('expired', False)
|
||||
if form.cleaned_data['deadline']:
|
||||
deadline = form.cleaned_data['deadline']
|
||||
else:
|
||||
deadline = None
|
||||
|
||||
txt = u''
|
||||
event_qs = models.Event.objects.filter(**filter_kwargs).order_by('sport', 'first_day')
|
||||
event_qs = models.Event.objects.filter(**filter_kwargs).order_by('first_day', 'number')
|
||||
for event in event_qs:
|
||||
if exclude_expired and event.is_flagged('expired'):
|
||||
continue
|
||||
if deadline and event.registration_required and event.deadline:
|
||||
if event.deadline < deadline:
|
||||
continue
|
||||
|
||||
txt += event.render_as_text(format='ka-alpin')
|
||||
if event.internal_note:
|
||||
txt += u'\n> Bearbeitungshinweis:\n> ' + event.internal_note.replace('\n', '\n> ') + u'\n'
|
||||
|
||||
Reference in New Issue
Block a user