From 497a6d2b5bd78b833b00e1bbb6596c85ee5c9c52 Mon Sep 17 00:00:00 2001 From: Samuel Zielke Date: Mon, 8 Apr 2024 19:44:49 +0200 Subject: [PATCH] Fill form with ServerDatas and Functions --- main/admin.py | 2 +- ...ors_buehne_alter_regie_regie_1_and_more.py | 64 +++++++++ main/models.py | 1 + main/templates/main/index.html | 135 +++++++++++------- main/urls.py | 1 + main/views.py | 72 +++++++++- 6 files changed, 224 insertions(+), 51 deletions(-) create mode 100644 main/migrations/0004_contributors_buehne_alter_regie_regie_1_and_more.py diff --git a/main/admin.py b/main/admin.py index 220ab4c..946c0d3 100644 --- a/main/admin.py +++ b/main/admin.py @@ -3,7 +3,7 @@ from . import models @admin.register(models.contributors) class ContributorsAdmin(admin.ModelAdmin): - list_display = ["id", "first_name", "name", "ordner", "saalordner", "anlage", "zoom", "treffpunkt"] + list_display = ["first_name", "name", "ordner", "saalordner", "anlage", "zoom", "buehne", "treffpunkt"] list_filter = ["ordner", "saalordner", "anlage", "zoom", "treffpunkt"] admin.site.register(models.week) diff --git a/main/migrations/0004_contributors_buehne_alter_regie_regie_1_and_more.py b/main/migrations/0004_contributors_buehne_alter_regie_regie_1_and_more.py new file mode 100644 index 0000000..678932b --- /dev/null +++ b/main/migrations/0004_contributors_buehne_alter_regie_regie_1_and_more.py @@ -0,0 +1,64 @@ +# Generated by Django 5.0.4 on 2024-04-08 16:39 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0003_remove_steward_person_steward_foyer_1_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='contributors', + name='buehne', + field=models.BooleanField(default=False), + ), + migrations.AlterField( + model_name='regie', + name='regie_1', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='regie1', to='main.contributors'), + ), + migrations.AlterField( + model_name='regie', + name='regie_2', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='regie2', to='main.contributors'), + ), + migrations.AlterField( + model_name='regie', + name='stage', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='stage', to='main.contributors'), + ), + migrations.AlterField( + model_name='regie', + name='zoom_1', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='zoom1', to='main.contributors'), + ), + migrations.AlterField( + model_name='regie', + name='zoom_2', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='zoom2', to='main.contributors'), + ), + migrations.AlterField( + model_name='steward', + name='foyer_1', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='foyer1', to='main.contributors'), + ), + migrations.AlterField( + model_name='steward', + name='foyer_2', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='foyer2', to='main.contributors'), + ), + migrations.AlterField( + model_name='steward', + name='hall_1', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='hall1', to='main.contributors'), + ), + migrations.AlterField( + model_name='steward', + name='hall_2', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='hall2', to='main.contributors'), + ), + ] diff --git a/main/models.py b/main/models.py index 998f67f..bc67f59 100644 --- a/main/models.py +++ b/main/models.py @@ -8,6 +8,7 @@ class contributors(models.Model): ordner = models.BooleanField(default=False) saalordner = models.BooleanField(default=False) anlage = models.BooleanField(default=False) + buehne = models.BooleanField(default=False) zoom = models.BooleanField(default=False) treffpunkt = models.BooleanField(default=False) diff --git a/main/templates/main/index.html b/main/templates/main/index.html index 56841bc..2750ce7 100644 --- a/main/templates/main/index.html +++ b/main/templates/main/index.html @@ -29,9 +29,10 @@ #other { margin: 0.250rem 3.000rem; } #technik { margin: 0 3.000rem; } #header { padding-bottom: 2rem; } + select { width: 6rem;} @@ -77,19 +78,22 @@
1. Dienst
- + @@ -98,19 +102,22 @@
2. Dienst
- + @@ -119,19 +126,22 @@
3. Dienst
- + @@ -140,19 +150,22 @@
4. Dienst
- + @@ -161,19 +174,22 @@
5. Dienst
- + @@ -182,19 +198,22 @@
6. Dienst
- + @@ -227,10 +246,12 @@

- Bruder 1: + 1.

@@ -238,16 +259,18 @@

- Bruder 2: + 2.

- +
Foyer
@@ -257,10 +280,12 @@

- Bruder 1: + 1.

@@ -268,10 +293,12 @@

- Bruder 2: + 2.

@@ -305,10 +332,12 @@

- Bruder 1: + 1.

@@ -316,10 +345,12 @@

- Bruder 2: + 2.

@@ -327,20 +358,22 @@ - + -
Anlage
+
Zoom

- Bruder 1: + 1.

@@ -348,10 +381,12 @@

- Bruder 2: + 2.

@@ -370,10 +405,12 @@

- Bruder 1: + 1.

diff --git a/main/urls.py b/main/urls.py index a9d7f56..cc5cc29 100644 --- a/main/urls.py +++ b/main/urls.py @@ -3,5 +3,6 @@ from django.urls import path from . import views urlpatterns = [ + # path("", views.index, name="index"), path("", views.index, name="index"), ] \ No newline at end of file diff --git a/main/views.py b/main/views.py index a43a7a8..458c12d 100644 --- a/main/views.py +++ b/main/views.py @@ -1,7 +1,77 @@ from django.shortcuts import render, redirect from django.contrib.auth.decorators import login_required +import datetime +from . import models as MainModel + +def actualMonday(): + today = datetime.date.today() + last_monday = today - datetime.timedelta(days=today.weekday()) + return last_monday + +def FutureyDate(date, FutureWeeks): + date = date + datetime.timedelta(weeks=FutureWeeks) + return date + +def PastDate(date, FutureWeeks): + date = date - datetime.timedelta(weeks=FutureWeeks) + return date + +def separate_string(input_string): + separated_string = "" + index = 1 + for i in input_string: + if index == 2: + separated_string += i + "." + index = 0 + else: + separated_string += i + index += 1 + + return separated_string[:8] @login_required def index(request): - return render(request, 'main/index.html') + error = False + if request.GET.get("date"): + actual = False + actualdate = actualMonday() + get_Date = separate_string(request.GET.get("date")) + url_date = datetime.datetime.strptime(get_Date, "%d.%m.%y") + if url_date.date() <= actualdate or url_date.weekday() != 0: + url_date = actualdate + actual = True + error = True + elif url_date.date() == actualdate: + actual = True + else: + url_date = actualMonday() + actual = True + + strDate = url_date.strftime("%d.%m.%y") + + # Abfrage der Datenbanken um Informationen einzublenden + + steward_data = MainModel.steward.objects.filter(week__date_of_monday=strDate)[0] + regie_data = MainModel.regie.objects.filter(week__date_of_monday=strDate)[0] + + persons = MainModel.contributors.objects.all() + + return render(request, 'main/index.html', {'actual' : actual, + 'error' : error, + 'date': strDate, + 'next_date': FutureyDate(url_date, 1).strftime("%d%m%y"), + 'past_date': PastDate(url_date, 1).strftime("%d%m%y"), + 'saal_ordner' : persons.filter(saalordner=True), + 'ordner' : persons.filter(ordner=True), + 'anlage' : persons.filter(anlage=True), + 'zoom' : persons.filter(zoom=True), + 'buehne' : persons.filter(buehne=True), + 'sm' : persons.filter(treffpunkt=True), + 'date_area' : { + 'min' : str(url_date), + 'value' : str(url_date), + 'max' : str(FutureyDate(url_date - datetime.timedelta(days=1), 1))}, + 'steward_data' : steward_data, + 'regie_data' : regie_data, + })