# -*- 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 @property def codes(self): return self._codes 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')), ('family', _(u'Familien')), ]) 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)')), ])