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.
kompass/jdav_web/ludwigsburgalpin/models.py

129 lines
3.8 KiB
Python

from django.core.validators import MinValueValidator
from django.db import models
GRUPPE = [
("ASG", "Alpinsportgruppe"),
("OGB", "Ortsgruppe Bietigheim"),
("OGV", "Ortsgruppe Vaihingen"),
("JUG", "Jugend"),
("FAM", "Familie"),
("Ü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"