Browse Source

add monthly sheet

Rene 9 months ago
parent
commit
f80181c310
4 changed files with 71 additions and 1 deletions
  1. BIN
      db.sqlite3
  2. 2 1
      main/urls.py
  3. 23 0
      main/views.py
  4. 46 0
      templates/main/ma_month.html

BIN
db.sqlite3


+ 2 - 1
main/urls.py

@@ -1,7 +1,7 @@
 from django.urls import path
 from django.urls import path
 from .views import (create_multiple_shifts, edit_shift, delete_shift, delete_event, edit_event,
 from .views import (create_multiple_shifts, edit_shift, delete_shift, delete_event, edit_event,
                     create_event, public, create_helper, edit_helper, delete_helper, create_reinigung, edit_reinigung,
                     create_event, public, create_helper, edit_helper, delete_helper, create_reinigung, edit_reinigung,
-                    delete_reinigung)
+                    delete_reinigung, ma_month)
 from django.contrib.auth import views as auth_views
 from django.contrib.auth import views as auth_views
 
 
 urlpatterns = [
 urlpatterns = [
@@ -17,6 +17,7 @@ urlpatterns = [
     path('delete-reinigung/<int:pk>/', delete_reinigung, name='delete_reinigung'),
     path('delete-reinigung/<int:pk>/', delete_reinigung, name='delete_reinigung'),
     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('ma-month/<int:mitarbeiter_id>/<int:monat>/<int:jahr>/', ma_month, name='ma_month'),
     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'),
     path('logout/', auth_views.LogoutView.as_view(next_page='/'), name='logout'),
     path('logout/', auth_views.LogoutView.as_view(next_page='/'), name='logout'),
     path('', public, name='public'),
     path('', public, name='public'),

+ 23 - 0
main/views.py

@@ -1,3 +1,5 @@
+from datetime import date
+
 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, HelperForm, ReinigungForm
 from .forms import MultipleShiftForm, ShiftForm, EventForm, HelperForm, ReinigungForm
 from .models import Shift, Employee, Location, Event, Helper, Reinigung
 from .models import Shift, Employee, Location, Event, Helper, Reinigung
@@ -7,6 +9,27 @@ from django.contrib.auth.decorators import user_passes_test
 import calendar
 import calendar
 
 
 
 
+def ma_month(request, mitarbeiter_id, monat, jahr):
+    start_date = date(jahr, monat, 1)
+    end_date = date(jahr, monat, calendar.monthrange(jahr, monat)[1])
+
+    schichten = Shift.objects.filter(employee=mitarbeiter_id , date__range=(start_date, end_date)).order_by('date')
+    mitarbeiter = Employee.objects.get(id=mitarbeiter_id)
+    print (mitarbeiter)
+
+    for schicht in schichten:
+        print(schicht)
+
+    context = {
+        'schichten': schichten,
+        'monat': monat,
+        'jahr': jahr,
+        'mitarbeiter_id': mitarbeiter_id,
+        'mitarbeiter': mitarbeiter,
+    }
+
+    return render(request, 'main/ma_month.html', context)
+
 def create_multiple_shifts(request):
 def create_multiple_shifts(request):
     date_str = request.GET.get('date')
     date_str = request.GET.get('date')
     initial_data = {}
     initial_data = {}

+ 46 - 0
templates/main/ma_month.html

@@ -0,0 +1,46 @@
+{% load bootstrap5 %}
+<!DOCTYPE html>
+<html lang="de">
+<head>
+    <meta charset="UTF-8">
+    <title>Dienstplan</title>
+    {% bootstrap_css %}
+</head>
+<body>
+    <div class="container">
+        <h2>Dienstplan für {{ monat }} - {{ jahr }}
+</h2>
+        <h3>Mitarbeiter: {{ mitarbeiter.name }}
+</h3>
+        {% if schichten %}
+        <table class="table table-striped">
+            <thead>
+                <tr>
+                    <th scope="col" width="150">Tag</th>
+                    <th scope="col" width="50">Typ</th>
+                    <th scope="col" width="50">Beginn</th>
+                    <th scope="col" width="50">Ende</th>
+                    <th scope="col">Kommentar</th>
+                </tr>
+            </thead>
+            <tbody>
+                {% for schicht in schichten %}
+                <tr>
+                    <td>{{ schicht.date }}</td>
+                    <td>{{ schicht.shifttype }}</td>
+                    <td>{{ schicht.start }}</td>
+                    <td>{{ schicht.end }}</td>
+                    <td>{{ schicht.info }}</td>
+                </tr>
+                {% endfor %}
+            </tbody>
+        </table>
+        {% else %}
+        <p>Keine Schichten für diesen Zeitraum gefunden.</p>
+
+        {% endif %}
+
+    </div>
+    {% bootstrap_javascript %}
+</body>
+</html>