Files
django-dav-events/dav_events/choices.py

124 lines
3.3 KiB
Python

# -*- coding: utf-8 -*-
from django.utils.translation import ugettext_lazy as _
from django_countries import Countries
CHOICE_FIELD_MAX_LENGTH = 25
class ChoiceSet(object):
def __init__(self, choices):
self._codes = list()
self._labels = dict()
for code, label in choices:
self._codes.append(code)
self._labels[code] = label
def __len__(self):
return len(self._codes)
def __getitem__(self, key):
code = self._codes[key]
return code, self._labels[code]
def __iter__(self):
for code in self._codes:
yield code, self._labels[code]
def __contains__(self, item):
code, label = item
if code in self._codes:
return True
else:
return False
def get_label(self, code):
return self._labels[code]
def sort(self):
self._codes.sort()
class CountryChoiceSet(Countries):
override = {
'XX': _(u'Länderübergreifend'),
}
first = ['DE', 'AT', 'CH', 'FR', 'IT', 'XX']
first_repeat = True
first_break = '--'
ACCOMMODATION_CHOICES = ChoiceSet([
('NONE', _(u'Keine (tägliche Anreise)')),
('biwi', _(u'Biwak')),
('camp', _(u'Zelt')),
('campsite', _(u'Campingplatz')),
('hut_shelter', _(u'Winterraum')),
('hut', _(u'Alpenvereinshütte')),
('hut_dorm', _(u'Alpenvereinshütte (Lager)')),
('hut_room', _(u'Alpenvereinshütte (Zimmer)')),
('hotel', _(u'Hotel/Pension/Hostel')),
('OTHER', _(u'Andere Unterkunft (zusätzliches Feld)')),
])
COUNTRY_CHOICES = CountryChoiceSet()
DEADLINE_CHOICES = ChoiceSet([
('month', _(u'Einen Monat vorher')),
('quarter', _(u'Drei Monate vorher')),
('OTHER', _(u'Anderes oder kein Datum (zusätzliches Feld)')),
])
LEVEL_CHOICES = ChoiceSet([
('beginner', _(u'Anfänger')),
('advanced', _(u'Fortgeschrittene')),
])
MEALS_CHOICES = ChoiceSet([
('NONE', _(u'Keine Angabe')),
('self', _(u'Selbstverpflegung')),
('hp', _(u'Halbpension')),
('vp', _(u'Vollpension')),
('OTHER', _(u'Andere Verpflegung (zusätzliches Feld)')),
])
MEETING_POINT_CHOICES = ChoiceSet([
('NONE', _(u'Keine Angabe')),
('dav', _(u'DAV Sektionszentrum')),
('hbf', _(u'Hauptbahnhof Karlsruhe, vor der Buchhandlung')),
('hbf_south', _(u'Hauptbahnhof Karlsruhe, Südausgang')),
('battert', _(u'Battertparkplatz, Ebersteinburg')),
('OTHER', _(u'Anderer Treffpunkt (zusätzliches Feld)')),
])
MODE_CHOICES = ChoiceSet([
('joint', _(u'gemeinschaftliche Tour')),
('supervised', _(u'begleitete Tour')),
('guided', _(u'geführte Tour')),
('training', _(u'Kurs')),
])
SPORT_CHOICES = ChoiceSet([
('W', _(u'Wanderung')),
('S', _(u'Ski')),
('M', _(u'Mountainbike')),
('K', _(u'Klettern')),
('B', _(u'Bergsteigen')),
])
TERRAIN_CHOICES = ChoiceSet([
('gym', _(u'Kletterhalle')),
('crag', _(u'Klettergarten')),
('flats', _(u'Flachland')),
('submountains', _(u'Mittelgebirge')),
('alpine', _(u'Alpin')),
])
TRANSPORT_CHOICES = ChoiceSet([
('NONE', _(u'Keine Angabe')),
('public', _(u'Bahn / Bus')),
('coach', _(u'Reisebus')),
('car', _(u'Fahrgemeinschaften / Stadtmobil')),
('self', _(u'Eigenverantwortlich')),
('OTHER', _(u'Anderes Verkehrsmittel (zusätzliches Feld)')),
])