|
|
@@ -1,6 +1,6 @@
|
|
|
from django.shortcuts import render, redirect, get_object_or_404
|
|
|
-from .forms import MultipleShiftForm, ShiftForm, EventForm, HelperForm
|
|
|
-from .models import Shift, Employee, Location, Event, Helper
|
|
|
+from .forms import MultipleShiftForm, ShiftForm, EventForm, HelperForm, ReinigungForm
|
|
|
+from .models import Shift, Employee, Location, Event, Helper, Reinigung
|
|
|
from django.utils.timezone import datetime, timedelta
|
|
|
from django.utils import timezone
|
|
|
from django.contrib.auth.decorators import user_passes_test
|
|
|
@@ -100,9 +100,12 @@ def current_week_shifts(request):
|
|
|
shifts_by_employee = {}
|
|
|
events_by_location = {}
|
|
|
helpers_by_date = {}
|
|
|
+ reinigungs_by_date = {}
|
|
|
employees = Employee.objects.all()
|
|
|
locations = Location.objects.all()
|
|
|
helpers = Helper.objects.all()
|
|
|
+ reinigungs = Reinigung.objects.all()
|
|
|
+
|
|
|
|
|
|
for employee in employees:
|
|
|
shifts_by_employee[employee] = {day: None for day in range(7)}
|
|
|
@@ -113,6 +116,9 @@ def current_week_shifts(request):
|
|
|
for helper in helpers:
|
|
|
helpers_by_date = {day: None for day in range(7)}
|
|
|
|
|
|
+ for reinigung in reinigungs:
|
|
|
+ reinigungs_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])
|
|
|
|
|
|
@@ -120,6 +126,8 @@ def current_week_shifts(request):
|
|
|
|
|
|
helpers = Helper.objects.filter(date__range=[start_of_week, end_of_week])
|
|
|
|
|
|
+ reinigungs = Reinigung.objects.filter(date__range=[start_of_week, end_of_week])
|
|
|
+
|
|
|
# Fülle das Dictionary mit den Schichtdaten
|
|
|
for shift in shifts:
|
|
|
employee = shift.employee
|
|
|
@@ -135,6 +143,11 @@ def current_week_shifts(request):
|
|
|
day_of_week = (helper.date - start_of_week).days
|
|
|
helpers_by_date[day_of_week] = helper
|
|
|
|
|
|
+ for reinigung in reinigungs:
|
|
|
+ day_of_week = (reinigung.date - start_of_week).days
|
|
|
+ reinigungs_by_date[day_of_week] = reinigung
|
|
|
+
|
|
|
+
|
|
|
# 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']
|
|
|
@@ -144,6 +157,7 @@ def current_week_shifts(request):
|
|
|
'shifts_by_employee': shifts_by_employee,
|
|
|
'events_by_location': events_by_location,
|
|
|
'helpers_by_date': helpers_by_date,
|
|
|
+ 'reinigungs_by_date': reinigungs_by_date,
|
|
|
'start_of_week': start_of_week,
|
|
|
'end_of_week': end_of_week,
|
|
|
'days_with_dates': days_with_dates,
|
|
|
@@ -155,6 +169,7 @@ def current_week_shifts(request):
|
|
|
#print(shifts_by_employee)
|
|
|
print(events_by_location)
|
|
|
print(helpers_by_date)
|
|
|
+ print(reinigungs_by_date)
|
|
|
return render(request, 'main/current_week_shifts.html', context)
|
|
|
|
|
|
|
|
|
@@ -228,8 +243,27 @@ def public(request):
|
|
|
}
|
|
|
return render(request, 'main/public.html', context)
|
|
|
|
|
|
+def create_reinigung(request):
|
|
|
+ date_str = request.GET.get('date')
|
|
|
+ initial_data = {}
|
|
|
+ if date_str:
|
|
|
+ initial_data['date'] = date_str
|
|
|
+
|
|
|
+ if request.method == 'POST':
|
|
|
+ form = ReinigungForm(request.POST)
|
|
|
+ if form.is_valid():
|
|
|
+ form.save()
|
|
|
+ return redirect('current_week_shifts') # Redirect to a relevant page after saving
|
|
|
+ else:
|
|
|
+ form = ReinigungForm()
|
|
|
+ return render(request, 'main/create_reinigung.html', {'form': form})
|
|
|
|
|
|
def create_helper(request):
|
|
|
+ date_str = request.GET.get('date')
|
|
|
+ initial_data = {}
|
|
|
+ if date_str:
|
|
|
+ initial_data['date'] = date_str
|
|
|
+
|
|
|
if request.method == 'POST':
|
|
|
form = HelperForm(request.POST)
|
|
|
if form.is_valid():
|
|
|
@@ -240,6 +274,17 @@ def create_helper(request):
|
|
|
return render(request, 'main/create_helper.html', {'form': form})
|
|
|
|
|
|
|
|
|
+def edit_reinigung(request, pk):
|
|
|
+ reinigung = get_object_or_404(Reinigung, pk=pk)
|
|
|
+ if request.method == 'POST':
|
|
|
+ form = ReinigungForm(request.POST, instance=reinigung)
|
|
|
+ if form.is_valid():
|
|
|
+ form.save()
|
|
|
+ return redirect('current_week_shifts')
|
|
|
+ else:
|
|
|
+ form = ReinigungForm(instance=reinigung)
|
|
|
+ return render(request, 'main/edit_reinigung.html', {'form': form, 'reinigung': reinigung})
|
|
|
+
|
|
|
def edit_helper(request, pk):
|
|
|
helper = get_object_or_404(Helper, pk=pk)
|
|
|
if request.method == 'POST':
|
|
|
@@ -283,6 +328,12 @@ def delete_shift(request, pk):
|
|
|
return redirect('current_week_shifts')
|
|
|
return render(request, 'main/delete_shift.html', {'shift': shift})
|
|
|
|
|
|
+def delete_reinigung(request, pk):
|
|
|
+ reinigung = get_object_or_404(Reinigung, pk=pk)
|
|
|
+ if request.method == 'POST':
|
|
|
+ reinigung.delete()
|
|
|
+ return redirect('current_week_shifts')
|
|
|
+ return render(request, 'main/delete_reinigung.html', {'reinigung': reinigung})
|
|
|
|
|
|
def delete_helper(request, pk):
|
|
|
helper = get_object_or_404(Helper, pk=pk)
|