Meta-Informationen eingefügt, Änderungs- und Erstellungsdatum von Gerichten
This commit is contained in:
4
SGTMensa.kdev4
Normal file
4
SGTMensa.kdev4
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
[Project]
|
||||||
|
CreatedFrom=
|
||||||
|
Manager=KDevCustomBuildSystem
|
||||||
|
Name=SGTMensa
|
||||||
BIN
db.sqlite3
BIN
db.sqlite3
Binary file not shown.
BIN
mensa_app/__pycache__/__init__.cpython-314.pyc
Normal file
BIN
mensa_app/__pycache__/__init__.cpython-314.pyc
Normal file
Binary file not shown.
BIN
mensa_app/__pycache__/admin.cpython-314.pyc
Normal file
BIN
mensa_app/__pycache__/admin.cpython-314.pyc
Normal file
Binary file not shown.
BIN
mensa_app/__pycache__/apps.cpython-314.pyc
Normal file
BIN
mensa_app/__pycache__/apps.cpython-314.pyc
Normal file
Binary file not shown.
BIN
mensa_app/__pycache__/models.cpython-314.pyc
Normal file
BIN
mensa_app/__pycache__/models.cpython-314.pyc
Normal file
Binary file not shown.
@@ -0,0 +1,48 @@
|
|||||||
|
# Generated by Django 6.0.5 on 2026-05-08 08:26
|
||||||
|
|
||||||
|
import datetime
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('mensa_app', '0001_initial'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterModelOptions(
|
||||||
|
name='bestellung',
|
||||||
|
options={'verbose_name': 'Bestellung', 'verbose_name_plural': 'Bestellungen'},
|
||||||
|
),
|
||||||
|
migrations.AlterModelOptions(
|
||||||
|
name='gericht',
|
||||||
|
options={'get_latest_by': 'time_last_change', 'ordering': ['kategorie', 'name', 'preis'], 'permissions': [('can_create_Gericht', 'Kann neues Gericht anlegen')], 'verbose_name': 'Gericht', 'verbose_name_plural': 'Gerichte'},
|
||||||
|
),
|
||||||
|
migrations.AlterModelOptions(
|
||||||
|
name='kategorie',
|
||||||
|
options={'verbose_name': 'Kategorie', 'verbose_name_plural': 'Kategorien'},
|
||||||
|
),
|
||||||
|
migrations.AlterModelOptions(
|
||||||
|
name='menue',
|
||||||
|
options={'verbose_name': 'Menü', 'verbose_name_plural': 'Menüs'},
|
||||||
|
),
|
||||||
|
migrations.AlterModelOptions(
|
||||||
|
name='person',
|
||||||
|
options={'verbose_name_plural': 'Personen'},
|
||||||
|
),
|
||||||
|
migrations.AlterModelOptions(
|
||||||
|
name='speiseplantag',
|
||||||
|
options={'verbose_name': 'Tag mit Speiseplan', 'verbose_name_plural': 'Tage mit Speiseplan'},
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='gericht',
|
||||||
|
name='time_creation',
|
||||||
|
field=models.TimeField(default=datetime.datetime(2026, 5, 8, 8, 26, 49, 843239)),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='gericht',
|
||||||
|
name='time_last_change',
|
||||||
|
field=models.TimeField(default=datetime.datetime(2026, 5, 8, 8, 26, 49, 843239)),
|
||||||
|
),
|
||||||
|
]
|
||||||
BIN
mensa_app/migrations/__pycache__/0001_initial.cpython-314.pyc
Normal file
BIN
mensa_app/migrations/__pycache__/0001_initial.cpython-314.pyc
Normal file
Binary file not shown.
Binary file not shown.
BIN
mensa_app/migrations/__pycache__/__init__.cpython-314.pyc
Normal file
BIN
mensa_app/migrations/__pycache__/__init__.cpython-314.pyc
Normal file
Binary file not shown.
@@ -1,6 +1,7 @@
|
|||||||
from django.db import models
|
from django.db import models
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
import datetime
|
||||||
|
|
||||||
class Person(models.Model):
|
class Person(models.Model):
|
||||||
"""Repräsentiert Schüler oder Lehrer."""
|
"""Repräsentiert Schüler oder Lehrer."""
|
||||||
@@ -8,6 +9,9 @@ class Person(models.Model):
|
|||||||
rolle = models.CharField(max_length=20, choices=[('schueler', 'Schüler'), ('lehrer', 'Lehrer'), ('mitarbeiter','Mensa-Mitarbeiter'), ('chef','Mensa-Leitung')])
|
rolle = models.CharField(max_length=20, choices=[('schueler', 'Schüler'), ('lehrer', 'Lehrer'), ('mitarbeiter','Mensa-Mitarbeiter'), ('chef','Mensa-Leitung')])
|
||||||
klasse = models.CharField(max_length=4, blank=True, null=True) # Nur für Schüler relevant
|
klasse = models.CharField(max_length=4, blank=True, null=True) # Nur für Schüler relevant
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
verbose_name_plural = "Personen"
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f"{self.user.username} ({self.rolle})"
|
return f"{self.user.username} ({self.rolle})"
|
||||||
|
|
||||||
@@ -15,6 +19,10 @@ class SpeiseplanTag(models.Model):
|
|||||||
"""Ein bestimmter Tag im Speiseplan."""
|
"""Ein bestimmter Tag im Speiseplan."""
|
||||||
datum = models.DateField(unique=True)
|
datum = models.DateField(unique=True)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
verbose_name = "Tag mit Speiseplan"
|
||||||
|
verbose_name_plural = "Tage mit Speiseplan"
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.datum.strftime('%d.%m.%Y')
|
return self.datum.strftime('%d.%m.%Y')
|
||||||
|
|
||||||
@@ -25,6 +33,7 @@ class Kategorie(models.Model):
|
|||||||
name = models.CharField(max_length=50, unique=True, default="")
|
name = models.CharField(max_length=50, unique=True, default="")
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
|
verbose_name = "Kategorie"
|
||||||
verbose_name_plural = "Kategorien"
|
verbose_name_plural = "Kategorien"
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
@@ -45,6 +54,11 @@ class Gericht(models.Model):
|
|||||||
allergene = models.TextField(blank=True, default="")
|
allergene = models.TextField(blank=True, default="")
|
||||||
preis = models.DecimalField(max_digits=5, decimal_places=2, default=0.00)
|
preis = models.DecimalField(max_digits=5, decimal_places=2, default=0.00)
|
||||||
|
|
||||||
|
now = datetime.datetime.now()
|
||||||
|
|
||||||
|
time_last_change = models.TimeField(default=now)
|
||||||
|
time_creation = models.TimeField(default=now)
|
||||||
|
|
||||||
# Das Attribut für das "Dauerangebot"
|
# Das Attribut für das "Dauerangebot"
|
||||||
ist_dauerangebot = models.BooleanField(
|
ist_dauerangebot = models.BooleanField(
|
||||||
default=False,
|
default=False,
|
||||||
@@ -54,6 +68,13 @@ class Gericht(models.Model):
|
|||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f"{self.name} ({self.kategorie.name})"
|
return f"{self.name} ({self.kategorie.name})"
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
verbose_name = "Gericht"
|
||||||
|
verbose_name_plural = "Gerichte"
|
||||||
|
permissions = [("can_create_Gericht", "Kann neues Gericht anlegen")]
|
||||||
|
ordering = ["kategorie", "name", "preis"]
|
||||||
|
get_latest_by = "time_last_change"
|
||||||
|
|
||||||
class Menue(models.Model):
|
class Menue(models.Model):
|
||||||
"""Eine Kombination von Speisen für einen Tag (z.B. Hauptgang + Dessert)."""
|
"""Eine Kombination von Speisen für einen Tag (z.B. Hauptgang + Dessert)."""
|
||||||
tag = models.ForeignKey(SpeiseplanTag, on_delete=models.CASCADE, related_name='menues')
|
tag = models.ForeignKey(SpeiseplanTag, on_delete=models.CASCADE, related_name='menues')
|
||||||
@@ -63,6 +84,10 @@ class Menue(models.Model):
|
|||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f"{self.tag.datum}: {self.gericht.name} ({self.preis}€)"
|
return f"{self.tag.datum}: {self.gericht.name} ({self.preis}€)"
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
verbose_name = "Menü"
|
||||||
|
verbose_name_plural = "Menüs"
|
||||||
|
|
||||||
class Bestellung(models.Model):
|
class Bestellung(models.Model):
|
||||||
"""Eine abgeschlossene Bestellung eines Nutzers."""
|
"""Eine abgeschlossene Bestellung eines Nutzers."""
|
||||||
STATUS_CHOICES = [
|
STATUS_CHOICES = [
|
||||||
@@ -81,3 +106,8 @@ class Bestellung(models.Model):
|
|||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f"Bestellung {self.id} von {self.person.user.username}"
|
return f"Bestellung {self.id} von {self.person.user.username}"
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
verbose_name = "Bestellung"
|
||||||
|
verbose_name_plural = "Bestellungen"
|
||||||
|
|
||||||
|
|||||||
BIN
mensa_core/__pycache__/__init__.cpython-314.pyc
Normal file
BIN
mensa_core/__pycache__/__init__.cpython-314.pyc
Normal file
Binary file not shown.
BIN
mensa_core/__pycache__/settings.cpython-314.pyc
Normal file
BIN
mensa_core/__pycache__/settings.cpython-314.pyc
Normal file
Binary file not shown.
BIN
mensa_core/__pycache__/urls.cpython-314.pyc
Normal file
BIN
mensa_core/__pycache__/urls.cpython-314.pyc
Normal file
Binary file not shown.
BIN
mensa_core/__pycache__/wsgi.cpython-314.pyc
Normal file
BIN
mensa_core/__pycache__/wsgi.cpython-314.pyc
Normal file
Binary file not shown.
Reference in New Issue
Block a user