diff --git a/mensa_app/forms.py b/mensa_app/forms.py new file mode 100644 index 0000000..d9bcac4 --- /dev/null +++ b/mensa_app/forms.py @@ -0,0 +1,33 @@ +# forms.py + +from django import forms +from .models import Gericht +# Importiere alle Modelle, die für das Formular relevant sind +from .models import Kategorie + +class GerichtForm(forms.ModelForm): + """Definiert die Struktur und Validierungsregeln für das Gericht-Modell.""" + + class Meta: + model = Gericht + fields = [ + 'name', + 'kategorie', + 'preis', + 'ist_vegetarisch', + 'ist_allergene_frei', + 'allergene', + 'beschreibung', # Neues Feld für Zutaten/Rohstoffe + 'bilder', # Das Bild-Feld + 'ist_dauerangebot' + ] + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + # Wir können hier zusätzliche Validierungen oder Widgets einbinden + # Beispiel: Erzwinge das Betreten der Kategorie-Auswahl + self.fields['kategorie'].required = True + + # Hier könntest du auch einen Fallback für den Preis hinzufügen, falls er nicht gesetzt ist + if 'initial' in kwargs: # Wird bei GET-Requests genutzt + self.initial['preis'] = 0.00 diff --git a/mensa_app/models.py b/mensa_app/models.py index fb88a67..d99ca4b 100644 --- a/mensa_app/models.py +++ b/mensa_app/models.py @@ -128,6 +128,7 @@ class Gericht(models.Model): ) ist_vegetarisch = models.BooleanField(default=False) ist_allergene_frei = models.BooleanField(default=False) + beschreibung = models.TextField(blank=True, null=True) # Zutaten/Rohstoffe Beschreibung (Textfeld für V1) allergene = models.TextField(blank=True, default="") preis = models.DecimalField(max_digits=5, decimal_places=2, default=0.00) diff --git a/mensa_app/templates/mensa_app/add_gericht.html b/mensa_app/templates/mensa_app/add_gericht.html new file mode 100644 index 0000000..f89c48e --- /dev/null +++ b/mensa_app/templates/mensa_app/add_gericht.html @@ -0,0 +1,32 @@ + + +
+ + + ++ Das Gericht {{ objekt_name }} wurde erfolgreich in das Menüsystem übernommen. +
++ Du kannst nun die Details überprüfen und weitere Gerichte hinzufügen. +
+