Преглед изворни кода

20240722_2212
Work on Helpers1

Rene пре 1 година
родитељ
комит
56194977f4

+ 5 - 0
.idea/codeStyles/codeStyleConfig.xml

@@ -0,0 +1,5 @@
+<component name="ProjectCodeStyleConfiguration">
+  <state>
+    <option name="PREFERRED_PROJECT_CODE_STYLE" value="Default" />
+  </state>
+</component>

+ 1 - 1
AD/settings.py

@@ -107,7 +107,7 @@ AUTH_PASSWORD_VALIDATORS = [
 # Internationalization
 # Internationalization
 # https://docs.djangoproject.com/en/5.0/topics/i18n/
 # https://docs.djangoproject.com/en/5.0/topics/i18n/
 
 
-LANGUAGE_CODE = 'de-de'
+LANGUAGE_CODE = 'en-en'
 
 
 TIME_ZONE = 'Europe/Berlin'
 TIME_ZONE = 'Europe/Berlin'
 
 


+ 18 - 1
main/forms.py

@@ -1,5 +1,6 @@
 from django import forms
 from django import forms
-from .models import Shift, Employee, Event
+from .models import Shift, Employee, Event, Helper
+from django.utils.translation import gettext_lazy as _
 
 
 class MultipleShiftForm(forms.Form):
 class MultipleShiftForm(forms.Form):
     employees = forms.ModelMultipleChoiceField(queryset=Employee.objects.all(), widget=forms.CheckboxSelectMultiple)
     employees = forms.ModelMultipleChoiceField(queryset=Employee.objects.all(), widget=forms.CheckboxSelectMultiple)
@@ -19,3 +20,19 @@ class EventForm(forms.ModelForm):
     class Meta:
     class Meta:
         model = Event
         model = Event
         fields = ['date', 'name', 'event_type', 'location', 'cvd', 'cvt']
         fields = ['date', 'name', 'event_type', 'location', 'cvd', 'cvt']
+
+
+class HelperForm(forms.ModelForm):
+
+    class Meta:
+        model = Helper
+        fields = ['date', 'ben', 'best', 'info']
+        widgets = {
+            'date': forms.widgets.DateInput(attrs={'type': 'date'})
+        }
+        labels = {
+            'date': _('Datum'),
+            'ben': _('Benötigt'),
+            'best': _('Bestätigt'),
+            'info': _('Info')
+        }

+ 18 - 0
main/migrations/0005_alter_helper_best.py

@@ -0,0 +1,18 @@
+# Generated by Django 5.0.2 on 2024-07-22 19:54
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('main', '0004_rename_benoetigt_helper_ben_and_more'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='helper',
+            name='best',
+            field=models.PositiveSmallIntegerField(blank=True, null=True),
+        ),
+    ]

+ 1 - 1
main/models.py

@@ -6,7 +6,7 @@ from django.utils.translation import gettext_lazy as _
 class Helper(models.Model):
 class Helper(models.Model):
     date = models.DateField()
     date = models.DateField()
     ben = models.PositiveSmallIntegerField()
     ben = models.PositiveSmallIntegerField()
-    best = models.PositiveSmallIntegerField()
+    best = models.PositiveSmallIntegerField(blank=True, null=True)
     info = models.TextField(blank=True, null=True)
     info = models.TextField(blank=True, null=True)
 
 
     def __str__(self):
     def __str__(self):

+ 5 - 1
main/urls.py

@@ -1,13 +1,17 @@
 from django.urls import path
 from django.urls import path
-from .views import create_multiple_shifts, current_week_shifts, edit_shift, delete_shift, delete_event, edit_event, create_event, public
+from .views import (create_multiple_shifts, current_week_shifts, edit_shift, delete_shift, delete_event, edit_event,
+                    create_event, public, create_helper, edit_helper, delete_helper)
 from django.contrib.auth import views as auth_views
 from django.contrib.auth import views as auth_views
 
 
 urlpatterns = [
 urlpatterns = [
     path('create-multiple-shifts/', create_multiple_shifts, name='create_multiple_shifts'),
     path('create-multiple-shifts/', create_multiple_shifts, name='create_multiple_shifts'),
     path('create-event/', create_event, name='create_event'),
     path('create-event/', create_event, name='create_event'),
+    path('create-helper/', create_helper, name='create_helper'),
     path('current-week-shifts/', current_week_shifts, name='current_week_shifts'),
     path('current-week-shifts/', current_week_shifts, name='current_week_shifts'),
     path('edit-shift/<int:pk>/', edit_shift, name='edit_shift'),
     path('edit-shift/<int:pk>/', edit_shift, name='edit_shift'),
+    path('edit-helper/<int:pk>/', edit_helper, name='edit_helper'),
     path('delete-shift/<int:pk>/', delete_shift, name='delete_shift'),
     path('delete-shift/<int:pk>/', delete_shift, name='delete_shift'),
+    path('delete-helper/<int:pk>/', delete_helper, name='delete_helper'),
     path('edit-event/<int:pk>/', edit_event, name='edit_event'),
     path('edit-event/<int:pk>/', edit_event, name='edit_event'),
     path('delete-event/<int:pk>/', delete_event, name='delete_event'),
     path('delete-event/<int:pk>/', delete_event, name='delete_event'),
     path('login/', auth_views.LoginView.as_view(template_name='registration/login.html'), name='login'),
     path('login/', auth_views.LoginView.as_view(template_name='registration/login.html'), name='login'),

+ 32 - 1
main/views.py

@@ -1,5 +1,5 @@
 from django.shortcuts import render, redirect, get_object_or_404
 from django.shortcuts import render, redirect, get_object_or_404
-from .forms import MultipleShiftForm, ShiftForm, EventForm
+from .forms import MultipleShiftForm, ShiftForm, EventForm, HelperForm
 from .models import Shift, Employee, Location, Event, Helper
 from .models import Shift, Employee, Location, Event, Helper
 from django.utils.timezone import datetime, timedelta
 from django.utils.timezone import datetime, timedelta
 from django.utils import timezone
 from django.utils import timezone
@@ -229,6 +229,29 @@ def public(request):
     return render(request, 'main/public.html', context)
     return render(request, 'main/public.html', context)
 
 
 
 
+def create_helper(request):
+    if request.method == 'POST':
+        form = HelperForm(request.POST)
+        if form.is_valid():
+            form.save()
+            return redirect('current_week_shifts')  # Redirect to a relevant page after saving
+    else:
+        form = HelperForm()
+    return render(request, 'main/create_helper.html', {'form': form})
+
+
+def edit_helper(request, pk):
+    helper = get_object_or_404(Helper, pk=pk)
+    if request.method == 'POST':
+        form = HelperForm(request.POST, instance=helper)
+        if form.is_valid():
+            form.save()
+            return redirect('current_week_shifts')
+    else:
+        form = HelperForm(instance=helper)
+    return render(request, 'main/edit_helper.html', {'form': form, 'helper': helper})
+
+
 def edit_shift(request, pk):
 def edit_shift(request, pk):
     shift = get_object_or_404(Shift, pk=pk)
     shift = get_object_or_404(Shift, pk=pk)
     if request.method == 'POST':
     if request.method == 'POST':
@@ -261,6 +284,14 @@ def delete_shift(request, pk):
     return render(request, 'main/delete_shift.html', {'shift': shift})
     return render(request, 'main/delete_shift.html', {'shift': shift})
 
 
 
 
+def delete_helper(request, pk):
+    helper = get_object_or_404(Helper, pk=pk)
+    if request.method == 'POST':
+        helper.delete()
+        return redirect('current_week_shifts')
+    return render(request, 'main/delete_helper.html', {'helper': helper})
+
+
 def delete_event(request, pk):
 def delete_event(request, pk):
     event = get_object_or_404(Event, pk=pk)
     event = get_object_or_404(Event, pk=pk)
     if request.method == 'POST':
     if request.method == 'POST':

+ 21 - 0
templates/main/create_helper.html

@@ -0,0 +1,21 @@
+{% load bootstrap5 %}
+<!DOCTYPE html>
+<html lang="de">
+<head>
+    <meta charset="UTF-8">
+    <title>Helfer einstellen</title>
+    {% bootstrap_css %}
+</head>
+<body>
+    <div class="container">
+        <h2>Helfer einstellen</h2>
+        <form method="post">
+            {% csrf_token %}
+            {% bootstrap_form form %}
+            <button type="submit" class="btn btn-primary">Helfer einstellen</button>
+            <a href="{% url 'current_week_shifts' %}" class="btn btn-secondary">Abbrechen</a>
+        </form>
+    </div>
+    {% bootstrap_javascript %}
+</body>
+</html>

+ 4 - 4
templates/main/current_week_shifts.html

@@ -107,7 +107,7 @@
                         {% for day, date in days_with_dates %}
                         {% for day, date in days_with_dates %}
                             {% with event=events|get_item:forloop.counter0 %}
                             {% with event=events|get_item:forloop.counter0 %}
                                 {% if event == None %}
                                 {% if event == None %}
-                                    <td class="shift-none" onclick="window.location.href='{% url 'create_event' %}?date={{ date }}'"></td>
+                                    <td class="shift-none" onclick="window.location.href='{% url 'create_event' %}?date={{ helper.date }}'"></td>
                                 {% else %}
                                 {% else %}
                                     <td class="shift-none" onclick="window.location.href='{% url 'edit_event' pk=event.id %}'" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-html="true" title="Name: {{ event.name }}<br> Location: {{ event.location }}<br> CVD: {{ event.cvd }}<br> CVT: {{ event.cvt }}">
                                     <td class="shift-none" onclick="window.location.href='{% url 'edit_event' pk=event.id %}'" data-bs-toggle="tooltip" data-bs-placement="top" data-bs-html="true" title="Name: {{ event.name }}<br> Location: {{ event.location }}<br> CVD: {{ event.cvd }}<br> CVT: {{ event.cvt }}">
                                             {% if event.name %}
                                             {% if event.name %}
@@ -127,15 +127,15 @@
                             {% if helpers_by_date|default_if_none:None %}
                             {% if helpers_by_date|default_if_none:None %}
                                 {% if helpers_by_date|get_item:day %}
                                 {% if helpers_by_date|get_item:day %}
                                     {% with helper=helpers_by_date|get_item:day %}
                                     {% with helper=helpers_by_date|get_item:day %}
-                                        <td align="center" class="shift-none">
+                                        <td class="shift-none" onclick="window.location.href='{% url 'edit_helper' pk=helper.id %}'">
                                             {{ helper.ben }}/{{ helper.best }}
                                             {{ helper.ben }}/{{ helper.best }}
                                         </td>
                                         </td>
                                     {% endwith %}
                                     {% endwith %}
                                 {% else %}
                                 {% else %}
-                                    <td class="shift-none">-/-</td>
+                                    <td class="shift-none" onclick="window.location.href='{% url 'create_helper' %}?date={{ date }}'">--</td>
                                 {% endif %}
                                 {% endif %}
                             {% else %}
                             {% else %}
-                                <td class="shift-none">-/-</td>
+                                <td class="shift-none" onclick="window.location.href='{% url 'create_helper' %}?date={{ date }}'">--</td>
                             {% endif %}
                             {% endif %}
                         {% endfor %}
                         {% endfor %}
                     </tr>
                     </tr>

+ 22 - 0
templates/main/delete_helper.html

@@ -0,0 +1,22 @@
+{% load bootstrap5 %}
+
+<!DOCTYPE html>
+<html lang="de">
+<head>
+    <meta charset="UTF-8">
+    <title>Helfer löschen</title>
+    {% bootstrap_css %}
+</head>
+<body>
+    <div class="container">
+        <h2>Helfer löschen</h2>
+        <p>Möchten Sie die Helferschicht wirklich löschen?</p>
+        <form method="post">
+            {% csrf_token %}
+            <button type="submit" class="btn btn-danger">Löschen</button>
+            <a href="{% url 'current_week_shifts' %}" class="btn btn-secondary">Abbrechen</a>
+        </form>
+    </div>
+    {% bootstrap_javascript %}
+</body>
+</html>

+ 25 - 0
templates/main/edit_helper.html

@@ -0,0 +1,25 @@
+{% load bootstrap5 %}
+<!DOCTYPE html>
+<html lang="de">
+<head>
+    <meta charset="UTF-8">
+    <title>Helfer bearbeiten</title>
+    {% bootstrap_css %}
+</head>
+<body>
+    <div class="container">
+        <h2>Helfer bearbeiten</h2>
+        <form method="post">
+            {% csrf_token %}
+            {% bootstrap_form form %}
+            <button type="submit" class="btn btn-primary">Speichern</button>
+            <a href="{% url 'current_week_shifts' %}" class="btn btn-secondary">Abbrechen</a>
+        </form>
+        <form method="post" action="{% url 'delete_helper' pk=helper.id %}" class="mt-3">
+            {% csrf_token %}
+            <button type="submit" class="btn btn-danger">Löschen</button>
+        </form>
+    </div>
+    {% bootstrap_javascript %}
+</body>
+</html>