You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
4.8 KiB
Python
122 lines
4.8 KiB
Python
from django.db import models
|
|
from django.core.validators import MinValueValidator
|
|
|
|
GRUPPE = [
|
|
('ASG', 'Alpinsportgruppe'),
|
|
('OGB', 'Ortsgruppe Bietigheim'),
|
|
('OGV', 'Ortsgruppe Vaihingen'),
|
|
('JUG', 'Jugend'),
|
|
('FAM', 'Familen'),
|
|
('Ü30', 'Ü30'),
|
|
('MTB', 'Mountainbike'),
|
|
('RA', 'RegioAktiv'),
|
|
('SEK', 'Sektion'),
|
|
]
|
|
KATEGORIE = [
|
|
('WAN', 'Wandern'),
|
|
('BW', 'Bergwandern'),
|
|
('KST', 'Klettersteig'),
|
|
('KL', 'Klettern'),
|
|
('SKI', 'Piste, Loipe'),
|
|
('SCH', 'Schneeschuhgehen'),
|
|
('ST', 'Skitour'),
|
|
('STH', 'Skihochtour'),
|
|
('HT', 'Hochtour'),
|
|
('MTB', 'Montainbike'),
|
|
('AUS', 'Ausbildung'),
|
|
('SON', 'Sonstiges z.B. Treffen')
|
|
]
|
|
KONDITION = [
|
|
('gering', 'gering'),
|
|
('mittel', 'mittel'),
|
|
('groß', 'groß'),
|
|
('sehr groß', 'sehr groß'),
|
|
]
|
|
TECHNIK = [
|
|
('leicht', 'leicht'),
|
|
('mittel', 'mittel'),
|
|
('schwer', 'schwer'),
|
|
('sehr schwer', 'sehr schwer'),
|
|
]
|
|
SAISON = [
|
|
('ganzjährig','ganzjährig'),
|
|
('Indoor', 'Indoor'),
|
|
('Sommer', 'Sommer'),
|
|
('Winter', 'Winter'),
|
|
]
|
|
EVENTART = [
|
|
('Einzeltermin', 'Einzeltermin',),
|
|
('Mehrtagesevent', 'Mehrtagesevent',),
|
|
('Regelmäßiges Event/Training', 'Regelmäßiges Event/Training',),
|
|
('Tagesevent', 'Tagesevent',),
|
|
('Wochenendevent', 'Wochenendevent',),
|
|
]
|
|
KLASSIFIZIERUNG = [
|
|
('Gemeinschaftstour', 'Gemeinschaftstour'),
|
|
('Ausbildung', 'Ausbildung'),
|
|
]
|
|
|
|
|
|
# Create your models here.
|
|
class Termin(models.Model):
|
|
title = models.CharField('Titel', max_length=100)
|
|
subtitle = models.CharField('Untertitel', max_length=100, blank=True)
|
|
start_date = models.DateField('Von')
|
|
end_date = models.DateField('Bis')
|
|
group = models.CharField('Gruppe',
|
|
choices=GRUPPE,
|
|
max_length=100)
|
|
responsible = models.CharField('Organisator', max_length=100, blank=False)
|
|
phone = models.CharField(max_length=20, verbose_name='Telefonnumer', blank=True)
|
|
email = models.EmailField(max_length=100, verbose_name='Email', blank=False)
|
|
category = models.CharField('Kategorie', blank=False, choices=KATEGORIE, max_length=100,
|
|
default='SON')
|
|
condition = models.CharField('Kondition', blank=False, choices=KONDITION, max_length=100,
|
|
default='mittel')
|
|
technik = models.CharField('Technik', blank=False, choices=TECHNIK, max_length=100,
|
|
default='mittel')
|
|
saison = models.CharField('Saison', blank=False, choices=SAISON, max_length=100,
|
|
default='ganzjährig')
|
|
eventart = models.CharField('Eventart', blank=False, choices=EVENTART, max_length=100,
|
|
default='Einzeltermin')
|
|
klassifizierung = models.CharField('Klassifizierung', blank=False, choices=KLASSIFIZIERUNG,
|
|
max_length=100,
|
|
default='Gemeinschaftstour')
|
|
equipment = models.TextField('Ausrüstung',
|
|
blank=True)
|
|
voraussetzungen = models.TextField('Voraussetzungen',
|
|
blank=True)
|
|
description = models.TextField('Beschreibung',
|
|
blank=True)
|
|
max_participants = models.IntegerField('Max. Teilnehmerzahl',
|
|
blank=False,
|
|
validators=[
|
|
MinValueValidator(1)
|
|
],
|
|
default=10)
|
|
anforderung_hoehe = models.IntegerField('Höhenmeter in Meter',
|
|
blank=True,
|
|
validators=[
|
|
MinValueValidator(0)
|
|
],
|
|
default=0)
|
|
anforderung_strecke = models.IntegerField('Strecke in Kilometer',
|
|
blank=True,
|
|
validators=[
|
|
MinValueValidator(0)
|
|
],
|
|
default=0)
|
|
anforderung_dauer = models.IntegerField('Etappendauer in Stunden',
|
|
blank=True,
|
|
validators=[
|
|
MinValueValidator(0)
|
|
],
|
|
default=0)
|
|
|
|
def __str__(self):
|
|
return "{} {}".format(self.title, str(self.group))
|
|
|
|
class Meta:
|
|
verbose_name = 'Termin'
|
|
verbose_name_plural = 'Termine'
|