1 from django import forms
2 from django.utils.translation import ugettext_lazy as _
4 from .models import Track, Jingle
8 def get_nonstop_zones():
9 from emissions.models import Nonstop
10 return [(x.id, x.title) for x in Nonstop.objects.all()]
12 def get_optional_nonstop_zones():
13 return [('', '')] + get_nonstop_zones()
15 def get_search_nonstop_zones():
18 ('', '--------------')] + get_nonstop_zones() + [('', '--------------'), ('none', 'None')]
21 def get_jingle_choices():
22 return [(x.id, x.label) for x in Jingle.objects.all()]
25 def get_optional_jingle_choices():
26 return [('', '')] + get_jingle_choices()
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)
35 class TrackMetaForm(forms.ModelForm):
38 fields = ['language', 'instru', 'sabam', 'cfwb', 'nonstop_zones']
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'),
47 choices=[('title', _('Alphabetically')),
48 ('-added_to_nonstop_timestamp', _('Newest first')),
49 ('added_to_nonstop_timestamp', _('Oldest first'))])
52 class CleanupForm(forms.Form):
53 zone = forms.ChoiceField(label=_('Nonstop Zone'), choices=get_optional_nonstop_zones)
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(
63 widget=widgets.JinglesWidget,
64 choices=get_jingle_choices)