Kategorien für Gerichte ergänzt
This commit is contained in:
@@ -18,16 +18,42 @@ class SpeiseplanTag(models.Model):
|
||||
def __str__(self):
|
||||
return self.datum.strftime('%d.%m.%Y')
|
||||
|
||||
class Gericht(models.Model):
|
||||
"""Ein einzelnes Gericht (z.B. 'Nudeln mit Tomatensauce')."""
|
||||
name = models.CharField(max_length=100)
|
||||
ist_vegetarisch = models.BooleanField(default=False)
|
||||
allergene = models.TextField(blank=True)
|
||||
preis = models.DecimalField(max_digits=5, decimal_places=2, default=0.00)
|
||||
class Kategorie(models.Model):
|
||||
"""
|
||||
Definiert die Art der Speise (Süßspeise, Hauptgericht, etc.).
|
||||
"""
|
||||
name = models.CharField(max_length=50, unique=True, default="")
|
||||
|
||||
class Meta:
|
||||
verbose_name_plural = "Kategorien"
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
class Gericht(models.Model):
|
||||
"""Ein einzelnes Gericht (z.B. 'Nudeln mit Tomatensauce')."""
|
||||
name = models.CharField(max_length=100)
|
||||
# PROTECT verhindert, dass eine Kategorie gelöscht wird,
|
||||
# solange noch Gerichte ihr zugeordnet sind.
|
||||
kategorie = models.ForeignKey(
|
||||
Kategorie,
|
||||
on_delete=models.PROTECT,
|
||||
related_name='gerichte'
|
||||
)
|
||||
ist_vegetarisch = models.BooleanField(default=False)
|
||||
ist_allergene_frei = models.BooleanField(default=False)
|
||||
allergene = models.TextField(blank=True, default="")
|
||||
preis = models.DecimalField(max_digits=5, decimal_places=2, default=0.00)
|
||||
|
||||
# Das Attribut für das "Dauerangebot"
|
||||
ist_dauerangebot = models.BooleanField(
|
||||
default=False,
|
||||
help_text="Wenn aktiviert, ist dieses Gericht immer verfügbar und nicht an einen spezifischen Tag gebunden."
|
||||
)
|
||||
|
||||
def __str__(self):
|
||||
return f"{self.name} ({self.kategorie.name})"
|
||||
|
||||
class Menue(models.Model):
|
||||
"""Eine Kombination von Speisen für einen Tag (z.B. Hauptgang + Dessert)."""
|
||||
tag = models.ForeignKey(SpeiseplanTag, on_delete=models.CASCADE, related_name='menues')
|
||||
|
||||
Reference in New Issue
Block a user