From dd78ef2b5584ef194f72d86f32cf44cb7885a17b Mon Sep 17 00:00:00 2001 From: Samuel Zielke Date: Tue, 9 Apr 2024 16:03:10 +0200 Subject: [PATCH] Finish showing, Editing and Create DB-Data --- ...018_alter_info_cleaning_alter_info_gast.py | 24 +++ ...date_1_alter_service_speaker_1_and_more.py | 34 ++++ main/migrations/0020_alter_group_nummer.py | 18 ++ .../0021_rename_nummer_group_name.py | 18 ++ ...ce_type_1_alter_service_type_2_and_more.py | 43 +++++ main/models.py | 17 +- main/templates/main/index.html | 156 +++++++++--------- main/views.py | 76 ++++++++- 8 files changed, 301 insertions(+), 85 deletions(-) create mode 100644 main/migrations/0018_alter_info_cleaning_alter_info_gast.py create mode 100644 main/migrations/0019_alter_service_date_1_alter_service_speaker_1_and_more.py create mode 100644 main/migrations/0020_alter_group_nummer.py create mode 100644 main/migrations/0021_rename_nummer_group_name.py create mode 100644 main/migrations/0022_alter_service_type_1_alter_service_type_2_and_more.py diff --git a/main/migrations/0018_alter_info_cleaning_alter_info_gast.py b/main/migrations/0018_alter_info_cleaning_alter_info_gast.py new file mode 100644 index 0000000..36b564a --- /dev/null +++ b/main/migrations/0018_alter_info_cleaning_alter_info_gast.py @@ -0,0 +1,24 @@ +# Generated by Django 5.0.4 on 2024-04-09 12:48 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0017_alter_week_place'), + ] + + operations = [ + migrations.AlterField( + model_name='info', + name='cleaning', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='CleanPerson', to='main.group'), + ), + migrations.AlterField( + model_name='info', + name='gast', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='gastPerson', to='main.group'), + ), + ] diff --git a/main/migrations/0019_alter_service_date_1_alter_service_speaker_1_and_more.py b/main/migrations/0019_alter_service_date_1_alter_service_speaker_1_and_more.py new file mode 100644 index 0000000..1fd404a --- /dev/null +++ b/main/migrations/0019_alter_service_date_1_alter_service_speaker_1_and_more.py @@ -0,0 +1,34 @@ +# Generated by Django 5.0.4 on 2024-04-09 12:57 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0018_alter_info_cleaning_alter_info_gast'), + ] + + operations = [ + migrations.AlterField( + model_name='service', + name='date_1', + field=models.DateField(null=True), + ), + migrations.AlterField( + model_name='service', + name='speaker_1', + field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, related_name='speaker_1', to='main.contributors'), + ), + migrations.AlterField( + model_name='service', + name='time_1', + field=models.TimeField(null=True), + ), + migrations.AlterField( + model_name='service', + name='type_1', + field=models.IntegerField(choices=[(1, 'Saal'), (2, 'Zoom')], null=True), + ), + ] diff --git a/main/migrations/0020_alter_group_nummer.py b/main/migrations/0020_alter_group_nummer.py new file mode 100644 index 0000000..88e0cd9 --- /dev/null +++ b/main/migrations/0020_alter_group_nummer.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0.4 on 2024-04-09 13:16 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0019_alter_service_date_1_alter_service_speaker_1_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='group', + name='nummer', + field=models.CharField(max_length=10), + ), + ] diff --git a/main/migrations/0021_rename_nummer_group_name.py b/main/migrations/0021_rename_nummer_group_name.py new file mode 100644 index 0000000..55e2847 --- /dev/null +++ b/main/migrations/0021_rename_nummer_group_name.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0.4 on 2024-04-09 13:16 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0020_alter_group_nummer'), + ] + + operations = [ + migrations.RenameField( + model_name='group', + old_name='nummer', + new_name='Name', + ), + ] diff --git a/main/migrations/0022_alter_service_type_1_alter_service_type_2_and_more.py b/main/migrations/0022_alter_service_type_1_alter_service_type_2_and_more.py new file mode 100644 index 0000000..9c1357e --- /dev/null +++ b/main/migrations/0022_alter_service_type_1_alter_service_type_2_and_more.py @@ -0,0 +1,43 @@ +# Generated by Django 5.0.4 on 2024-04-09 13:58 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('main', '0021_rename_nummer_group_name'), + ] + + operations = [ + migrations.AlterField( + model_name='service', + name='type_1', + field=models.IntegerField(choices=[(1, 'Saal'), (2, 'Zoom'), (3, 'Gruppe')], null=True), + ), + migrations.AlterField( + model_name='service', + name='type_2', + field=models.IntegerField(choices=[(1, 'Saal'), (2, 'Zoom'), (3, 'Gruppe')], null=True), + ), + migrations.AlterField( + model_name='service', + name='type_3', + field=models.IntegerField(choices=[(1, 'Saal'), (2, 'Zoom'), (3, 'Gruppe')], null=True), + ), + migrations.AlterField( + model_name='service', + name='type_4', + field=models.IntegerField(choices=[(1, 'Saal'), (2, 'Zoom'), (3, 'Gruppe')], null=True), + ), + migrations.AlterField( + model_name='service', + name='type_5', + field=models.IntegerField(choices=[(1, 'Saal'), (2, 'Zoom'), (3, 'Gruppe')], null=True), + ), + migrations.AlterField( + model_name='service', + name='type_6', + field=models.IntegerField(choices=[(1, 'Saal'), (2, 'Zoom'), (3, 'Gruppe')], null=True), + ), + ] diff --git a/main/models.py b/main/models.py index cbdcd52..06d7cd9 100644 --- a/main/models.py +++ b/main/models.py @@ -22,10 +22,10 @@ class contributors(models.Model): return self.first_name class group(models.Model): - nummer = models.IntegerField(auto_created=False) + Name = models.CharField(max_length=10) def __str__(self): - return str(self.nummer) + return str(self.Name) class week(models.Model): @@ -39,12 +39,13 @@ class service(models.Model): TYPES = ( (1, 'Saal'), (2, 'Zoom'), + (3, 'Gruppe'), ) week = models.ForeignKey(week, on_delete=models.CASCADE) - date_1 = models.DateField(auto_now_add=False) - time_1 = models.TimeField(auto_now_add=False) - type_1 = models.IntegerField(auto_created=False, choices=TYPES) - speaker_1 = models.ForeignKey(contributors, on_delete=models.CASCADE, related_name="speaker_1") + date_1 = models.DateField(auto_now_add=False, null=True) + time_1 = models.TimeField(auto_now_add=False, null=True) + type_1 = models.IntegerField(auto_created=False, choices=TYPES, null=True) + speaker_1 = models.ForeignKey(contributors, on_delete=models.CASCADE, related_name="speaker_1", null=True) date_2 = models.DateField(auto_now_add=False, null=True) time_2 = models.TimeField(auto_now_add=False, null=True) type_2 = models.IntegerField(auto_created=False, choices=TYPES, null=True) @@ -92,8 +93,8 @@ class regie(models.Model): class info(models.Model): week = models.ForeignKey(week, on_delete=models.CASCADE) - gast = models.ForeignKey(group, on_delete=models.CASCADE, related_name="gastPerson") - cleaning = models.ForeignKey(group, on_delete=models.CASCADE, related_name="CleanPerson") + gast = models.ForeignKey(group, on_delete=models.CASCADE, related_name="gastPerson", null=True) + cleaning = models.ForeignKey(group, on_delete=models.CASCADE, related_name="CleanPerson", null=True) def __str__(self): return str(self.week) \ No newline at end of file diff --git a/main/templates/main/index.html b/main/templates/main/index.html index a567d5a..aa813d7 100644 --- a/main/templates/main/index.html +++ b/main/templates/main/index.html @@ -58,10 +58,10 @@

Gastfreundschaft Gruppe: - + {% for i in gruppen_data %} - + {% endfor %}

@@ -69,10 +69,10 @@

Reinigung Gruppe: - + {% for i in gruppen_data %} - + {% endfor %}

@@ -101,21 +101,22 @@
1. Dienst
- - + + - + + - + {% for i in sm %} - + {% endfor %} @@ -125,21 +126,22 @@
2. Dienst
- - + + - + + - + {% for i in sm %} - + {% endfor %} @@ -149,21 +151,22 @@
3. Dienst
- - + + - + + - + {% for i in sm %} - + {% endfor %} @@ -173,21 +176,22 @@
4. Dienst
- - + + - + + - + {% for i in sm %} - + {% endfor %} @@ -197,21 +201,22 @@
5. Dienst
- - + + - + + - + {% for i in sm %} - + {% endfor %} @@ -221,21 +226,22 @@
6. Dienst
- - + + - + + - + {% for i in sm %} - + {% endfor %} @@ -270,10 +276,10 @@

1. - + {% for i in saal_ordner %} - + {% endfor %}

@@ -283,10 +289,10 @@

2. - + {% for i in saal_ordner %} - + {% endfor %}

@@ -304,10 +310,10 @@

1. - + {% for i in ordner %} - + {% endfor %}

@@ -317,10 +323,10 @@

2. - + {% for i in ordner %} - + {% endfor %}

@@ -356,10 +362,10 @@

1. - + {% for i in anlage %} - + {% endfor %}

@@ -369,10 +375,10 @@

2. - + {% for i in anlage %} - + {% endfor %}

@@ -392,10 +398,10 @@

1. - + {% for i in zoom %} - + {% endfor %}

@@ -405,10 +411,10 @@

2. - + {% for i in zoom %} - + {% endfor %}

@@ -429,10 +435,10 @@

1. - {% for i in buehne %} - + {% endfor %}

@@ -442,7 +448,7 @@

!Technik_END!

- +
diff --git a/main/views.py b/main/views.py index 13d3ccd..e85700c 100644 --- a/main/views.py +++ b/main/views.py @@ -49,15 +49,87 @@ def index(request): strDate = url_date.strftime("%d.%m.%y") - # Abfrage der Datenbanken um Informationen einzublenden + # AB HIER WIRD DAS SPEICHERN BEHANDELT + # PRÜFEN OB DAS FORMULAR GESENDET WURDE UND AUCH DER BUTTON VERWENDET WURDE + if request.method == "POST": + if 'formsend' in request.POST: + + # ÜBERPRÜFEN OB DIE "WEEK" SCHON EINEN EINTRAG HAT - SONST ANLEGEN + MainModel.week.objects.create(date_of_monday=strDate) if MainModel.week.objects.filter(date_of_monday=strDate).count() < 1 else ... + + # FUNKTION ZUM VERGLEICH DER BEIDEN DATENSÄTZE + def check_is_same(a, b): + return True if a == b else False + + # Abfrage der Datenbanken um Informationen abzugleichen + gruppen_data = MainModel.group.objects.all() + persons = MainModel.contributors.objects.all() + steward_data = MainModel.steward.objects.get(week__date_of_monday=strDate) if MainModel.steward.objects.filter(week__date_of_monday=strDate).count() > 0 else None + regie_data = MainModel.regie.objects.get(week__date_of_monday=strDate) if MainModel.regie.objects.filter(week__date_of_monday=strDate).count() > 0 else None + info_data = MainModel.info.objects.get(week__date_of_monday=strDate) if MainModel.info.objects.filter(week__date_of_monday=strDate).count() > 0 else None + service_data = MainModel.service.objects.get(week__date_of_monday=strDate) if MainModel.service.objects.filter(week__date_of_monday=strDate).count() > 0 else None + + # Abfragen der POST-Daten + post_info = request.POST.getlist("info") + post_service_date = request.POST.getlist("smd") + post_service_time = request.POST.getlist("smt") + post_service_type = request.POST.getlist("smm") + post_service_speaker = request.POST.getlist("sms") + post_steward = request.POST.getlist("ods") + post_regie = request.POST.getlist("regie") + + # INFOS + if info_data == None: + info_data = MainModel.info.objects.create( + week = MainModel.week.objects.get(date_of_monday=strDate), + gast = gruppen_data.get(id=post_info[0]) if post_info[0] != "0" else None, + cleaning = gruppen_data.get(id=post_info[1]) if post_info[1] != "0" else None, + ) + else: + info_data.gast = gruppen_data.get(id=post_info[0]) if post_info[0] != "0" else None + info_data.cleaning = gruppen_data.get(id=post_info[1]) if post_info[1] != "0" else None + info_data.save() + + # PREDIGTDIENST + if service_data == None: service_data = MainModel.service.objects.create(week = MainModel.week.objects.get(date_of_monday=strDate)) + for i in range(1, 7): + # Datum + service_data.__setattr__("date_"+str(i), post_service_date[i-1]) if post_service_date[i-1] != "" else service_data.__setattr__("date_"+str(i), None) + # Uhrzeit + service_data.__setattr__("time_"+str(i), post_service_time[i-1]) if post_service_time[i-1] != "" else service_data.__setattr__("time_"+str(i), None) + # Type + service_data.__setattr__("type_"+str(i), post_service_type[i-1]) if post_service_type[i-1] != "0" else service_data.__setattr__("type_"+str(i), None) + # Leiter + service_data.__setattr__("speaker_"+str(i), persons.get(id=post_service_speaker[i-1])) if post_service_speaker[i-1] != "0" else service_data.__setattr__("speaker_"+str(i), None) + service_data.save() + # ORDNUNGSIENST + if steward_data == None: steward_data = MainModel.steward.objects.create(week = MainModel.week.objects.get(date_of_monday=strDate)) + steward_data.hall_1 = persons.get(id=post_steward[0]) if post_steward[0] != "0" else None + steward_data.hall_2 = persons.get(id=post_steward[1]) if post_steward[1] != "0" else None + steward_data.foyer_1 = persons.get(id=post_steward[2]) if post_steward[2] != "0" else None + steward_data.foyer_2 = persons.get(id=post_steward[3]) if post_steward[3] != "0" else None + steward_data.save() + + # TECHNIK + if regie_data == None: regie_data = MainModel.regie.objects.create(week = MainModel.week.objects.get(date_of_monday=strDate)) + regie_data.regie_1 = persons.get(id=post_regie[0]) if post_regie[0] != "0" else None + regie_data.regie_2 = persons.get(id=post_regie[1]) if post_regie[1] != "0" else None + regie_data.zoom_1 = persons.get(id=post_regie[2]) if post_regie[2] != "0" else None + regie_data.zoom_2 = persons.get(id=post_regie[3]) if post_regie[3] != "0" else None + regie_data.stage = persons.get(id=post_regie[4]) if post_regie[4] != "0" else None + regie_data.save() + + + + + # Abfrage der Datenbanken um Informationen einzublenden steward_data = MainModel.steward.objects.filter(week__date_of_monday=strDate)[0] if MainModel.steward.objects.filter(week__date_of_monday=strDate).count() > 0 else {} regie_data = MainModel.regie.objects.filter(week__date_of_monday=strDate)[0] if MainModel.regie.objects.filter(week__date_of_monday=strDate).count() > 0 else {} info_data = MainModel.info.objects.filter(week__date_of_monday=strDate)[0] if MainModel.info.objects.filter(week__date_of_monday=strDate).count() > 0 else {} gruppen_data = MainModel.group.objects.all() persons = MainModel.contributors.objects.all() service_data = MainModel.service.objects.filter(week__date_of_monday=strDate)[0] if MainModel.service.objects.filter(week__date_of_monday=strDate).count() > 0 else {} - return render(request, 'main/index.html', {'actual' : actual, 'error' : error, 'date': strDate,