소스 검색

Teplate/ View Schichten erstellen angepasst,
Datepicker in home view

root 7 달 전
부모
커밋
ad1b576c45
5개의 변경된 파일125개의 추가작업 그리고 19개의 파일을 삭제
  1. BIN
      db.sqlite3
  2. 17 14
      main/views.py
  3. 80 5
      templates/main/create_multiple_shifts.html
  4. 23 0
      templates/main/create_multiple_shifts1.html
  5. 5 0
      templates/main/home.html

BIN
db.sqlite3


+ 17 - 14
main/views.py

@@ -80,7 +80,7 @@ def create_multiple_shifts(request):
                      shifttype=shifttype,
                      info=info
                 )
-            return redirect('public')  # Annahme, dass Sie eine Erfolgsmeldung anzeigen möchten
+            return redirect('home')  # Annahme, dass Sie eine Erfolgsmeldung anzeigen möchten
     else:
         form = MultipleShiftForm(initial=initial_data)
 
@@ -114,7 +114,7 @@ def create_event(request):
                 cvd=cvd,
                 cvt=cvt
                 )
-            return redirect('public')  # Annahme, dass Sie eine Erfolgsmeldung anzeigen möchten
+            return redirect('home')  # Annahme, dass Sie eine Erfolgsmeldung anzeigen möchten
     else:
         form = EventForm(initial=initial_data)
 
@@ -127,8 +127,11 @@ def is_admin(user):
 
 
 def home(request):
-    # Standardmäßig die aktuelle Woche anzeigen
-    today = timezone.now().date()
+    if request.method == 'POST':
+        today = datetime.strptime(request.POST['nextdate'], '%Y-%m-%d').date()
+    else:
+        # Standardmäßig die aktuelle Woche anzeigen
+        today = timezone.now().date()
 
     # Überprüfen, ob ein Startdatum in der URL angegeben ist
     start_date_str = request.GET.get('start_date')
@@ -301,7 +304,7 @@ def create_reinigung(request):
         form = ReinigungForm(request.POST)
         if form.is_valid():
             form.save()
-            return redirect('public')  # Redirect to a relevant page after saving
+            return redirect('home')  # Redirect to a relevant page after saving
     else:
         form = ReinigungForm()
     return render(request, 'main/create_reinigung.html', {'form': form})
@@ -316,7 +319,7 @@ def create_helper(request):
         form = HelperForm(request.POST)
         if form.is_valid():
             form.save()
-            return redirect('public')  # Redirect to a relevant page after saving
+            return redirect('home')  # Redirect to a relevant page after saving
     else:
         form = HelperForm()
     return render(request, 'main/create_helper.html', {'form': form})
@@ -328,7 +331,7 @@ def edit_reinigung(request, pk):
         form = ReinigungForm(request.POST, instance=reinigung)
         if form.is_valid():
             form.save()
-            return redirect('public')
+            return redirect('home')
     else:
         form = ReinigungForm(instance=reinigung)
     return render(request, 'main/edit_reinigung.html', {'form': form, 'reinigung': reinigung})
@@ -339,7 +342,7 @@ def edit_helper(request, pk):
         form = HelperForm(request.POST, instance=helper)
         if form.is_valid():
             form.save()
-            return redirect('public')
+            return redirect('home')
     else:
         form = HelperForm(instance=helper)
     return render(request, 'main/edit_helper.html', {'form': form, 'helper': helper})
@@ -351,7 +354,7 @@ def edit_shift(request, pk):
         form = ShiftForm(request.POST, instance=shift)
         if form.is_valid():
             form.save()
-            return redirect('public')
+            return redirect('home')
     else:
         form = ShiftForm(instance=shift)
     return render(request, 'main/edit_shift.html', {'form': form, 'shift': shift})
@@ -363,7 +366,7 @@ def edit_event(request, pk):
         form = EventForm(request.POST, instance=event)
         if form.is_valid():
             form.save()
-            return redirect('public')
+            return redirect('home')
     else:
         form = EventForm(instance=event)
     return render(request, 'main/edit_event.html', {'form': form, 'event': event})
@@ -373,21 +376,21 @@ def delete_shift(request, pk):
     shift = get_object_or_404(Shift, pk=pk)
     if request.method == 'POST':
         shift.delete()
-        return redirect('public')
+        return redirect('home')
     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('public')
+        return redirect('home')
     return render(request, 'main/delete_reinigung.html', {'reinigung': reinigung})
 
 def delete_helper(request, pk):
     helper = get_object_or_404(Helper, pk=pk)
     if request.method == 'POST':
         helper.delete()
-        return redirect('public')
+        return redirect('home')
     return render(request, 'main/delete_helper.html', {'helper': helper})
 
 
@@ -395,5 +398,5 @@ def delete_event(request, pk):
     event = get_object_or_404(Event, pk=pk)
     if request.method == 'POST':
         event.delete()
-        return redirect('public')
+        return redirect('home')
     return render(request, 'main/delete_event.html', {'event': event})

+ 80 - 5
templates/main/create_multiple_shifts.html

@@ -5,17 +5,92 @@
 <html lang="de">
 <head>
     <meta charset="UTF-8">
-    <title>Mehrere Schichten erstellen</title>
+    <title>Schichten erstellen</title>
     {% bootstrap_css %}
 </head>
 <body>
     <div class="container">
-        <h2>Mehrere Schichten erstellen</h2>
+        <h2>Schichten erstellen</h2>
         <form method="post">
             {% csrf_token %}
-            {{ form.as_p }}  {# Renders the form #}
-            <button type="submit" class="btn btn-primary">Schichten erstellen</button>
-            <a href="{% url 'public' %}" class="btn btn-secondary">Abbrechen</a>
+            <table>
+                <tr>
+                    <td>
+                        <h5>Für Mitarbeiter:</h5>
+                        <div class="employees">
+                            {% for choice in form.employees.field.choices %}
+                                <div>
+                                <label for="id_employees_{{choice.0}}"><input type="checkbox" name="employees" value="{{choice.0}}" id="id_employees_{{choice.0}}"/>
+                                {{choice.1}}</label>
+                                </div>
+                            {% endfor %}
+                        </div>
+                    </td>
+                    <td>
+                        <table>
+                          <tr >
+                            <td></td>
+                            <td></td>
+                            <td></td>
+                            <td></td>
+
+                          </tr>
+                          <tr >
+                            <td>Vom</td>
+                            <td><input type="date" name="date" value="{{ form.initial.date|date:'Y-m-d' }}" id="id_date"></td>
+                            <td>bis</td>
+                            <td><input type="date" name="enddate" value="" id="id_enddate"></td>
+
+                          </tr>
+                          <tr >
+                            <td>Kommen</td>
+                            <td><input type="text" name="start" id="id_start"></td>
+                            <td>Gehen</td>
+                            <td><input type="text" name="end" id="id_end"></td>
+
+                          </tr>
+                          <tr>
+                              <td>Sonderschicht</td>
+                              <td><select name="shifttype" id="id_shifttype">
+                                  <option value="N">-</option>
+
+                                  <option value="U">Urlaub</option>
+
+                                  <option value="C">Catering</option>
+
+                                  <option value="K">Krank</option>
+
+                                  <option value="RB">Rufbereitschaft</option>
+
+                                  <option value="SO">Sonderdienst</option>
+
+                                  <option value="KKH">KKH</option>
+
+                                  <option value="ST">Stapler</option>
+
+                                  <option value="AH">Ausser Haus</option>
+
+                                </select>
+                              </td>
+                              <td></td>
+                              <td></td>
+                          </tr>
+                          <tr >
+                            <td>Info:</td>
+                            <td rowspan="2"><textarea name="info" cols="20" rows="5" id="id_info"></textarea></td>
+                            <td></td>
+                            <td></td>
+                          </tr>
+                          <tr >
+                            <td></td>
+                            <td></td>
+                            <td><button type="submit" class="btn btn-primary">Schichten erstellen</button></td>
+                            <td><a href="{% url 'home' %}" class="btn btn-secondary">Abbrechen</a></td>
+                          </tr>
+                        </table>
+                    </td>
+                </tr>
+            </table>
         </form>
     </div>
     {% bootstrap_javascript %}

+ 23 - 0
templates/main/create_multiple_shifts1.html

@@ -0,0 +1,23 @@
+{% load bootstrap5 %}
+{{ form.media }}  {# Adds all flatpickr JS/CSS files from CDN #}
+
+<!DOCTYPE html>
+<html lang="de">
+<head>
+    <meta charset="UTF-8">
+    <title>Mehrere Schichten erstellen</title>
+    {% bootstrap_css %}
+</head>
+<body>
+    <div class="container">
+        <h2>Mehrere Schichten erstellen</h2>
+        <form method="post">
+            {% csrf_token %}
+            {{ form.as_p }}  {# Renders the form #}
+            <button type="submit" class="btn btn-primary">Schichten erstellen</button>
+            <a href="{% url 'public' %}" class="btn btn-secondary">Abbrechen</a>
+        </form>
+    </div>
+    {% bootstrap_javascript %}
+</body>
+</html>

+ 5 - 0
templates/main/home.html

@@ -86,6 +86,11 @@
                 <td><a href="?start_date={{ previous_week }}" class="btn btn-primary text-start">Eine Woche zurück</a></td>
                 <td><a href="/" class="btn btn-primary">Aktuelle Woche</a></td>
                 <td><h4 class="custom-heading text-center">Dienstplan für KW {{ calendar_week }}</h4></td>
+                       <td><h4><form method="post" name='nextdate' action="/" style="display: inline;">
+                            {% csrf_token %}
+                            <input type="date" name="nextdate" value="" >
+                            <a href="#" onclick="document.forms[0].submit();return false;">Datum öffnen</a>
+                        </form></h4></td>
                 <td class="text-end">{% if user.is_authenticated %}
                         <form method="post" action="{% url 'logout' %}" style="display: inline;">
                             {% csrf_token %}