diff --git a/db.sqlite3 b/db.sqlite3 index be7c2ee..f2574ce 100644 Binary files a/db.sqlite3 and b/db.sqlite3 differ diff --git a/mensa_app/__pycache__/__init__.cpython-314.pyc b/mensa_app/__pycache__/__init__.cpython-314.pyc index 955e89b..ac18d10 100644 Binary files a/mensa_app/__pycache__/__init__.cpython-314.pyc and b/mensa_app/__pycache__/__init__.cpython-314.pyc differ diff --git a/mensa_app/__pycache__/admin.cpython-314.pyc b/mensa_app/__pycache__/admin.cpython-314.pyc index 3a6cb6d..de80568 100644 Binary files a/mensa_app/__pycache__/admin.cpython-314.pyc and b/mensa_app/__pycache__/admin.cpython-314.pyc differ diff --git a/mensa_app/__pycache__/apps.cpython-314.pyc b/mensa_app/__pycache__/apps.cpython-314.pyc index 510fac3..7d5b56e 100644 Binary files a/mensa_app/__pycache__/apps.cpython-314.pyc and b/mensa_app/__pycache__/apps.cpython-314.pyc differ diff --git a/mensa_app/__pycache__/models.cpython-314.pyc b/mensa_app/__pycache__/models.cpython-314.pyc index 7cef00d..e0fd0fa 100644 Binary files a/mensa_app/__pycache__/models.cpython-314.pyc and b/mensa_app/__pycache__/models.cpython-314.pyc differ diff --git a/mensa_app/admin.py b/mensa_app/admin.py index b7df082..3bb21ae 100644 --- a/mensa_app/admin.py +++ b/mensa_app/admin.py @@ -5,6 +5,10 @@ from .models import Person # Ersetze dies durch deine echten Klassennamen admin.site.register(Person) +from .models import Schulwoche # Ersetze dies durch deine echten Klassennamen + +admin.site.register(Schulwoche) + from .models import SpeiseplanTag # Ersetze dies durch deine echten Klassennamen admin.site.register(SpeiseplanTag) diff --git a/mensa_app/data_diagram_v1.puml b/mensa_app/data_diagram_v1.puml new file mode 100644 index 0000000..7c4768a --- /dev/null +++ b/mensa_app/data_diagram_v1.puml @@ -0,0 +1,54 @@ +@startuml +entity Person { + +user: User + +rolle: CharField + +klasse: CharField +} + +entity User { + +username: CharField +} + +entity SpeiseplanTag { + +datum: DateField +} + +entity Kategorie { + +name: CharField +} + +entity Gericht { + +name: CharField + +ist_vegetarisch: BooleanField + +ist_allergene_frei: BooleanField + +allergene: TextField + +preis: DecimalField + +time_last_change: TimeField + +time_creation: TimeField + +ist_dauerangebot: BooleanField +} + +entity Menue { + +tag: ForeignKey(SpeiseplanTag) + +gericht: ForeignKey(Gericht) + +preis: DecimalField +} + +entity Bestellung { + +person: ForeignKey(Person) + +menue: ForeignKey(Menue) + +datum_bestellung: DateTimeField + +status: CharField + +bezahlt: BooleanField +} + +Person "1" -- "1" User : 1:1 +Person "1" -- "1" Gericht : 1:N +Kategorie "1" -- "*" Gericht : 1:N +SpeiseplanTag "1" -- "*" Gericht : 1:N +Menue "1" -- "*" SpeiseplanTag : N:1 +Menue "1" -- "*" Gericht : N:1 +Person "1" -- "*" Bestellung : N:1 +Gericht "1" -- "*" Bestellung : N:1 + +@enduml \ No newline at end of file diff --git a/mensa_app/data_diragram_v1.pdf b/mensa_app/data_diragram_v1.pdf new file mode 100644 index 0000000..6b89b10 Binary files /dev/null and b/mensa_app/data_diragram_v1.pdf differ diff --git a/mensa_app/migrations/0003_schulwoche_alter_gericht_time_creation_and_more.py b/mensa_app/migrations/0003_schulwoche_alter_gericht_time_creation_and_more.py new file mode 100644 index 0000000..54c4778 --- /dev/null +++ b/mensa_app/migrations/0003_schulwoche_alter_gericht_time_creation_and_more.py @@ -0,0 +1,43 @@ +# Generated by Django 6.0.5 on 2026-05-11 20:35 + +import datetime +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('mensa_app', '0002_alter_bestellung_options_alter_gericht_options_and_more'), + ] + + operations = [ + migrations.CreateModel( + name='Schulwoche', + fields=[ + ('id', models.CharField(default='test_1', max_length=20, primary_key=True, serialize=False, unique=True)), + ('datum', models.DateField(unique=True)), + ('ist_aktiv', models.BooleanField(default=False)), + ('ist_ferienwoche', models.BooleanField(default=False)), + ], + options={ + 'verbose_name': 'Schulwoche', + 'verbose_name_plural': 'Schulwochen', + }, + ), + migrations.AlterField( + model_name='gericht', + name='time_creation', + field=models.TimeField(default=datetime.datetime(2026, 5, 11, 20, 35, 15, 941417)), + ), + migrations.AlterField( + model_name='gericht', + name='time_last_change', + field=models.TimeField(default=datetime.datetime(2026, 5, 11, 20, 35, 15, 941417)), + ), + migrations.AddField( + model_name='speiseplantag', + name='schulwoche', + field=models.ForeignKey(default='test_1', on_delete=django.db.models.deletion.CASCADE, to='mensa_app.schulwoche'), + ), + ] diff --git a/mensa_app/migrations/0004_alter_gericht_time_creation_and_more.py b/mensa_app/migrations/0004_alter_gericht_time_creation_and_more.py new file mode 100644 index 0000000..2845261 --- /dev/null +++ b/mensa_app/migrations/0004_alter_gericht_time_creation_and_more.py @@ -0,0 +1,24 @@ +# Generated by Django 6.0.5 on 2026-05-11 20:35 + +import datetime +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('mensa_app', '0003_schulwoche_alter_gericht_time_creation_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='gericht', + name='time_creation', + field=models.TimeField(default=datetime.datetime(2026, 5, 11, 20, 35, 44, 570572)), + ), + migrations.AlterField( + model_name='gericht', + name='time_last_change', + field=models.TimeField(default=datetime.datetime(2026, 5, 11, 20, 35, 44, 570572)), + ), + ] diff --git a/mensa_app/migrations/__pycache__/0001_initial.cpython-314.pyc b/mensa_app/migrations/__pycache__/0001_initial.cpython-314.pyc index a502ef9..42952ee 100644 Binary files a/mensa_app/migrations/__pycache__/0001_initial.cpython-314.pyc and b/mensa_app/migrations/__pycache__/0001_initial.cpython-314.pyc differ diff --git a/mensa_app/migrations/__pycache__/0002_alter_bestellung_options_alter_gericht_options_and_more.cpython-314.pyc b/mensa_app/migrations/__pycache__/0002_alter_bestellung_options_alter_gericht_options_and_more.cpython-314.pyc index 962cf2e..973cd09 100644 Binary files a/mensa_app/migrations/__pycache__/0002_alter_bestellung_options_alter_gericht_options_and_more.cpython-314.pyc and b/mensa_app/migrations/__pycache__/0002_alter_bestellung_options_alter_gericht_options_and_more.cpython-314.pyc differ diff --git a/mensa_app/migrations/__pycache__/0003_schulwoche_alter_gericht_time_creation_and_more.cpython-314.pyc b/mensa_app/migrations/__pycache__/0003_schulwoche_alter_gericht_time_creation_and_more.cpython-314.pyc new file mode 100644 index 0000000..a82d32d Binary files /dev/null and b/mensa_app/migrations/__pycache__/0003_schulwoche_alter_gericht_time_creation_and_more.cpython-314.pyc differ diff --git a/mensa_app/migrations/__pycache__/0004_alter_gericht_time_creation_and_more.cpython-314.pyc b/mensa_app/migrations/__pycache__/0004_alter_gericht_time_creation_and_more.cpython-314.pyc new file mode 100644 index 0000000..f97feed Binary files /dev/null and b/mensa_app/migrations/__pycache__/0004_alter_gericht_time_creation_and_more.cpython-314.pyc differ diff --git a/mensa_app/migrations/__pycache__/__init__.cpython-314.pyc b/mensa_app/migrations/__pycache__/__init__.cpython-314.pyc index 3425931..2acbc8d 100644 Binary files a/mensa_app/migrations/__pycache__/__init__.cpython-314.pyc and b/mensa_app/migrations/__pycache__/__init__.cpython-314.pyc differ diff --git a/mensa_app/models.py b/mensa_app/models.py index ed1b428..605e782 100644 --- a/mensa_app/models.py +++ b/mensa_app/models.py @@ -15,10 +15,32 @@ class Person(models.Model): def __str__(self): return f"{self.user.username} ({self.rolle})" + +class Schulwoche(models.Model): + """Repräsentiert eine Schulwoche mit einem eindeutigen Datum.""" + + id = models.CharField(max_length=20, unique=True, primary_key=True, default="test_1") # eine eindeutige ID wie "Woche_2024_10" + datum = models.DateField(unique=True) # Datum der Schulwoche (z. B. Montag der ersten Woche) + + ist_aktiv = models.BooleanField(default=False) + ist_ferienwoche = models.BooleanField(default=False) + + class Meta: + verbose_name = "Schulwoche" + verbose_name_plural = "Schulwochen" + + class SpeiseplanTag(models.Model): """Ein bestimmter Tag im Speiseplan.""" datum = models.DateField(unique=True) + schulwoche = models.ForeignKey( + Schulwoche, + on_delete=models.CASCADE, + #related_name='tag_get_schulwoche' # Für Abfragen wie: Schulwoche.tag_get_schulwoche.all() + default = "test_1" + ) + class Meta: verbose_name = "Tag mit Speiseplan" verbose_name_plural = "Tage mit Speiseplan" diff --git a/mensa_core/__pycache__/__init__.cpython-314.pyc b/mensa_core/__pycache__/__init__.cpython-314.pyc index e4e1494..c6998ec 100644 Binary files a/mensa_core/__pycache__/__init__.cpython-314.pyc and b/mensa_core/__pycache__/__init__.cpython-314.pyc differ diff --git a/mensa_core/__pycache__/settings.cpython-314.pyc b/mensa_core/__pycache__/settings.cpython-314.pyc index 9d6e5c0..ddbc640 100644 Binary files a/mensa_core/__pycache__/settings.cpython-314.pyc and b/mensa_core/__pycache__/settings.cpython-314.pyc differ diff --git a/mensa_core/__pycache__/urls.cpython-314.pyc b/mensa_core/__pycache__/urls.cpython-314.pyc index 5cf6834..262e0fa 100644 Binary files a/mensa_core/__pycache__/urls.cpython-314.pyc and b/mensa_core/__pycache__/urls.cpython-314.pyc differ diff --git a/mensa_core/__pycache__/wsgi.cpython-314.pyc b/mensa_core/__pycache__/wsgi.cpython-314.pyc index 1df8f0a..b95635b 100644 Binary files a/mensa_core/__pycache__/wsgi.cpython-314.pyc and b/mensa_core/__pycache__/wsgi.cpython-314.pyc differ