]> git.0d.be Git - django-panik-nonstop.git/blob - nonstop/forms.py
33475a6986918f87c9a3518e942b0abc319e11cd
[django-panik-nonstop.git] / nonstop / forms.py
1 from django import forms
2 from django.utils.translation import ugettext_lazy as _
3
4 from .models import Track, Jingle
5 from . import widgets
6
7
8 def get_nonstop_zones():
9     from emissions.models import Nonstop
10     return [(x.id, x.title) for x in Nonstop.objects.all()]
11
12 def get_optional_nonstop_zones():
13     return [('', '')] + get_nonstop_zones()
14
15 def get_search_nonstop_zones():
16     return [('', 'All'),
17             ('any', _('Any')),
18             ('', '--------------')] + get_nonstop_zones() + [('', '--------------'), ('none', 'None')]
19
20
21 def get_jingle_choices():
22     return [(x.id, x.label) for x in Jingle.objects.all()]
23
24
25 def get_optional_jingle_choices():
26     return [('', '')] + get_jingle_choices()
27
28
29 class UploadTracksForm(forms.Form):
30     tracks = forms.FileField(widget=forms.ClearableFileInput(
31         attrs={'multiple': True, 'accept': 'audio/*'}))
32     nonstop_zone = forms.ChoiceField(choices=get_optional_nonstop_zones)
33
34
35 class TrackMetaForm(forms.ModelForm):
36     class Meta:
37         model = Track
38         fields = ['language', 'instru', 'sabam', 'cfwb', 'nonstop_zones']
39
40
41 class TrackSearchForm(forms.Form):
42     q = forms.CharField(label=_('Text'), required=False)
43     zone = forms.ChoiceField(label=_('Nonstop Zone'),
44             choices=get_search_nonstop_zones, required=False)
45     order_by = forms.ChoiceField(label=_('Order'),
46             required=False,
47             choices=[('title', _('Alphabetically')),
48                      ('-added_to_nonstop_timestamp', _('Newest first')),
49                      ('added_to_nonstop_timestamp', _('Oldest first'))])
50
51
52 class CleanupForm(forms.Form):
53     zone = forms.ChoiceField(label=_('Nonstop Zone'), choices=get_optional_nonstop_zones)
54
55
56 class ZoneSettingsForm(forms.Form):
57     start = forms.TimeField(label=_('Start'), widget=widgets.TimeWidget)
58     end = forms.TimeField(label=_('End'), widget=widgets.TimeWidget)
59     intro_jingle = forms.ChoiceField(label=_('Intro Jingle'),
60             choices=get_optional_jingle_choices, required=False)
61     jingles = forms.MultipleChoiceField(
62             label=_('Jingles'),
63             widget=widgets.JinglesWidget,
64             choices=get_jingle_choices)