Explorar o código

Date_Multi input

root hai 1 ano
pai
achega
0a1ecd9c26
Modificáronse 6 ficheiros con 48 adicións e 11 borrados
  1. 1 1
      .idea/AD.iml
  2. 15 0
      .idea/deployment.xml
  3. 1 1
      .idea/misc.xml
  4. BIN=BIN
      db.sqlite3
  5. 1 0
      main/forms.py
  6. 30 9
      main/views.py

+ 1 - 1
.idea/AD.iml

@@ -2,7 +2,7 @@
 <module type="PYTHON_MODULE" version="4">
   <component name="NewModuleRootManager">
     <content url="file://$MODULE_DIR$" />
-    <orderEntry type="inheritedJdk" />
+    <orderEntry type="jdk" jdkName="Remote Python 3.11.2 (sftp://root@192.168.1.120:22/opt/pycharm/AD/.venv/bin/python)" jdkType="Python SDK" />
     <orderEntry type="sourceFolder" forTests="false" />
   </component>
 </module>

+ 15 - 0
.idea/deployment.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="PublishConfigData" autoUpload="Always" serverName="root@192.168.1.120:22 password" remoteFilesAllowedToDisappearOnAutoupload="false">
+    <serverData>
+      <paths name="root@192.168.1.120:22 password">
+        <serverdata>
+          <mappings>
+            <mapping deploy="/tmp/pycharm_project_588" local="$PROJECT_DIR$" />
+          </mappings>
+        </serverdata>
+      </paths>
+    </serverData>
+    <option name="myAutoUpload" value="ALWAYS" />
+  </component>
+</project>

+ 1 - 1
.idea/misc.xml

@@ -3,5 +3,5 @@
   <component name="Black">
     <option name="sdkName" value="Python 3.11 (AD)" />
   </component>
-  <component name="ProjectRootManager" version="2" project-jdk-name="Python 3.11 (AD)" project-jdk-type="Python SDK" />
+  <component name="ProjectRootManager" version="2" project-jdk-name="Remote Python 3.11.2 (sftp://root@192.168.1.120:22/opt/pycharm/AD/.venv/bin/python)" project-jdk-type="Python SDK" />
 </project>

BIN=BIN
db.sqlite3


+ 1 - 0
main/forms.py

@@ -19,6 +19,7 @@ class MultipleShiftForm(forms.Form):
 
     employees = forms.ModelMultipleChoiceField(queryset=Employee.objects.all(), widget=forms.CheckboxSelectMultiple)
     date = forms.DateField(widget=forms.DateInput)
+    enddate = forms.DateField(widget=forms.DateInput, required=False)
     start = forms.TimeField(required=False, widget=forms.TimeInput(format='%H:%M'))
     end = forms.TimeField(required=False, widget=forms.TimeInput(format='%H:%M'))
     shifttype = forms.ChoiceField(choices=Shift.ShiftType.choices)

+ 30 - 9
main/views.py

@@ -18,20 +18,41 @@ def create_multiple_shifts(request):
         if form.is_valid():
             employees = form.cleaned_data['employees']
             date = form.cleaned_data['date']
+            enddate = form.cleaned_data['enddate']
             start = form.cleaned_data['start']
             end = form.cleaned_data['end']
             shifttype = form.cleaned_data['shifttype']
             info = form.cleaned_data['info']
 
-
-            for employee in employees:
-                Shift.objects.create(
-                    employee=employee,
-                    date=date,
-                    start=start,
-                    end=end,
-                    shifttype=shifttype,
-                    info=info
+            if enddate:
+
+                current_date = date
+                datelist = []
+
+                while current_date <= enddate:
+                    datelist.append(current_date)
+                    for employee in employees:
+                        Shift.objects.create(
+                            employee=employee,
+                            date=current_date,
+                            start=start,
+                            end=end,
+                            shifttype=shifttype,
+                            info=info
+                        )
+                    current_date += timedelta(days=1)
+
+                return redirect('public')  # Annahme, dass Sie eine Erfolgsmeldung anzeigen möchten
+
+            else:
+                for employee in employees:
+                     Shift.objects.create(
+                     employee=employee,
+                     date=date,
+                     start=start,
+                     end=end,
+                     shifttype=shifttype,
+                     info=info
                 )
             return redirect('public')  # Annahme, dass Sie eine Erfolgsmeldung anzeigen möchten
     else: