Parcourir la source

20240722_1046
Work on Helpers

Rene il y a 1 an
Parent
commit
f4178b93e3

BIN
db.sqlite3


+ 7 - 1
main/admin.py

@@ -1,5 +1,10 @@
 from django.contrib import admin
-from .models import Employee, Shift, Location, Event
+from .models import Employee, Shift, Location, Event, Helper
+
+
+class HelperAdmin(admin.ModelAdmin):
+    list_display = ('date', 'ben', 'best', 'info')
+    search_fields = ('date', 'info')
 
 
 class EmployeeAdmin(admin.ModelAdmin):
@@ -23,3 +28,4 @@ admin.site.register(Employee, EmployeeAdmin)
 admin.site.register(Shift, ShiftAdmin)
 admin.site.register(Event, EventAdmin)
 admin.site.register(Location)
+admin.site.register(Helper, HelperAdmin)

+ 23 - 0
main/migrations/0003_helper.py

@@ -0,0 +1,23 @@
+# Generated by Django 5.0.2 on 2024-07-22 07:22
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('main', '0002_location_event'),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name='Helper',
+            fields=[
+                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                ('date', models.DateField()),
+                ('benoetigt', models.PositiveSmallIntegerField()),
+                ('bestaetigt', models.PositiveSmallIntegerField()),
+                ('info', models.TextField(blank=True, null=True)),
+            ],
+        ),
+    ]

+ 23 - 0
main/migrations/0004_rename_benoetigt_helper_ben_and_more.py

@@ -0,0 +1,23 @@
+# Generated by Django 5.0.2 on 2024-07-22 07:29
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('main', '0003_helper'),
+    ]
+
+    operations = [
+        migrations.RenameField(
+            model_name='helper',
+            old_name='benoetigt',
+            new_name='ben',
+        ),
+        migrations.RenameField(
+            model_name='helper',
+            old_name='bestaetigt',
+            new_name='best',
+        ),
+    ]

+ 9 - 0
main/models.py

@@ -3,6 +3,15 @@ from django.utils.translation import gettext_lazy as _
 # Create your models here.
 
 
+class Helper(models.Model):
+    date = models.DateField()
+    ben = models.PositiveSmallIntegerField()
+    best = models.PositiveSmallIntegerField()
+    info = models.TextField(blank=True, null=True)
+
+    def __str__(self):
+        return f"{self.date} - {self.ben} - {self.best}"
+
 class Employee(models.Model):
     name = models.CharField(max_length=100)
     daily_workhours = models.PositiveIntegerField()

+ 16 - 4
main/views.py

@@ -1,6 +1,6 @@
 from django.shortcuts import render, redirect, get_object_or_404
 from .forms import MultipleShiftForm, ShiftForm, EventForm
-from .models import Shift, Employee, Location, Event
+from .models import Shift, Employee, Location, Event, Helper
 from django.utils.timezone import datetime, timedelta
 from django.utils import timezone
 from django.contrib.auth.decorators import user_passes_test
@@ -99,8 +99,10 @@ def current_week_shifts(request):
     # Initialisiere ein Dictionary für die Schichten der Mitarbeiter
     shifts_by_employee = {}
     events_by_location = {}
+    helpers_by_date = {}
     employees = Employee.objects.all()
     locations = Location.objects.all()
+    helpers = Helper.objects.all()
 
     for employee in employees:
         shifts_by_employee[employee] = {day: None for day in range(7)}
@@ -108,12 +110,16 @@ def current_week_shifts(request):
     for location in locations:
         events_by_location[location] = {day: None for day in range(7)}
 
+    for helper in helpers:
+        helpers_by_date = {day: None for day in range(7)}
+
         # Hole alle Schichten für die aktuelle Woche
     shifts = Shift.objects.filter(date__range=[start_of_week, end_of_week])
 
     events = Event.objects.filter(date__range=[start_of_week, end_of_week])
 
-    print(events)
+    helpers = Helper.objects.filter(date__range=[start_of_week, end_of_week])
+
     # Fülle das Dictionary mit den Schichtdaten
     for shift in shifts:
         employee = shift.employee
@@ -125,6 +131,10 @@ def current_week_shifts(request):
         day_of_week = (event.date - start_of_week).days
         events_by_location[location][day_of_week] = event
 
+    for helper in helpers:
+        day_of_week = (helper.date - start_of_week).days
+        helpers_by_date[day_of_week] = helper
+
     # Bereite die Daten der Woche für das Template vor
     week_dates = [(start_of_week + timedelta(days=i)).strftime("%d.%m.%Y") for i in range(7)]
     days_of_week = ['Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa', 'So']
@@ -133,6 +143,7 @@ def current_week_shifts(request):
     context = {
         'shifts_by_employee': shifts_by_employee,
         'events_by_location': events_by_location,
+        'helpers_by_date': helpers_by_date,
         'start_of_week': start_of_week,
         'end_of_week': end_of_week,
         'days_with_dates': days_with_dates,
@@ -141,8 +152,9 @@ def current_week_shifts(request):
         'next_week': next_week.strftime('%Y-%m-%d'),
         'calendar_week': calendar_week,
     }
-    print(shifts_by_employee)
-    print(events_by_location)
+    #print(shifts_by_employee)
+    #print(events_by_location)
+    #print(helpers_by_date)
     return render(request, 'main/current_week_shifts.html', context)
 
 

+ 22 - 0
templates/main/current_week_shifts.html

@@ -121,6 +121,28 @@
                         {% endfor %}
                     </tr>
                     {% endfor %}
+                    <tr>
+                        <td class="employee-name">Helfer</td>
+                        {% for helper in helpers_by_date %}
+                                {% if helper == None %}
+                                    <td class="shift-none"> -/-</td>
+                                {% else %}
+                                    <td class="shift-none">
+                                            {% if helper.ben %}
+
+                                                {{ helper.ben }} / {{ helper.best }}
+                                            {% else %}
+                                                -/-
+                                            {% endif %}
+                                    </td>
+                                {% endif %}
+
+
+                        {% endfor %}
+                    </tr>
+
+
+
                 </tbody>
                 <tbody>
                     <tr class="table-dark">