浏览代码

add monthly sheet

Rene 9 月之前
父节点
当前提交
f80181c310
共有 4 个文件被更改,包括 71 次插入1 次删除
  1. 二进制
      db.sqlite3
  2. 2 1
      main/urls.py
  3. 23 0
      main/views.py
  4. 46 0
      templates/main/ma_month.html

二进制
db.sqlite3


+ 2 - 1
main/urls.py

@@ -1,7 +1,7 @@
 from django.urls import path
 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,
-                    delete_reinigung)
+                    delete_reinigung, ma_month)
 from django.contrib.auth import views as auth_views
 
 urlpatterns = [
@@ -17,6 +17,7 @@ urlpatterns = [
     path('delete-reinigung/<int:pk>/', delete_reinigung, name='delete_reinigung'),
     path('edit-event/<int:pk>/', edit_event, name='edit_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('logout/', auth_views.LogoutView.as_view(next_page='/'), name='logout'),
     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 .forms import MultipleShiftForm, ShiftForm, EventForm, HelperForm, ReinigungForm
 from .models import Shift, Employee, Location, Event, Helper, Reinigung
@@ -7,6 +9,27 @@ from django.contrib.auth.decorators import user_passes_test
 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):
     date_str = request.GET.get('date')
     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>