From 3ae7eb829d4e1df64d962a47779dc32f38a32d35 Mon Sep 17 00:00:00 2001 From: "holger.trampe" Date: Mon, 9 Nov 2020 21:00:27 +0100 Subject: [PATCH] BUGS --- timemanagement/views.py | 94 +++++++++++++++++++++-------------------- users/views.py | 2 +- 2 files changed, 50 insertions(+), 46 deletions(-) diff --git a/timemanagement/views.py b/timemanagement/views.py index 5b96609..514e32b 100644 --- a/timemanagement/views.py +++ b/timemanagement/views.py @@ -1046,6 +1046,7 @@ Berücksichtigt sowohl Wochenende als auch in der Agentur hinterlegte Freitage/S ''' @login_required def calculateHolidays(request, start, end, start_half, end_half, user): + restdays = 0 allfreedays = FreeDays.objects.filter(agency=request.user.profile.agency) if(end == start): @@ -1066,34 +1067,36 @@ def calculateHolidays(request, start, end, start_half, end_half, user): weekdays = [] freedaycounter = 0 for dt in daterange(start, end): + day_found = False if dt.isoweekday() not in weekdays: counter += 1 for freeday in allfreedays.all(): if(dt == freeday.day): freedaycounter += 1 + day_found = True # Prüfung, ob der Mitarbeiter an diesem Tag überhaupt arbeitet. Wenn nicht, wird der Freedaycounter einfach erhöht - if(dt.isoweekday() == 1): - if user.usertime.wd_mo == 0.0: - freedaycounter += 1 - elif(dt.isoweekday() == 2): - if user.usertime.wd_tu == 0.0:# - freedaycounter += 1 - elif(dt.isoweekday() == 3): - if user.usertime.wd_we == 0.0: - freedaycounter += 1 - elif(dt.isoweekday() == 4): - if user.usertime.wd_th == 0.0: - freedaycounter += 1 - elif(dt.isoweekday() == 5): - if user.usertime.wd_fr == 0.0: - freedaycounter += 1 - elif(dt.isoweekday() == 6): - if user.usertime.wd_sa == 0.0: - freedaycounter += 1 - elif(dt.isoweekday() == 7): - if user.usertime.wd_so == 0.0: - freedaycounter += 1 - + if day_found == False: + if(dt.isoweekday() == 1): + if user.usertime.wd_mo == 0.0: + freedaycounter += 1 + elif(dt.isoweekday() == 2): + if user.usertime.wd_tu == 0.0: + freedaycounter += 1 + elif(dt.isoweekday() == 3): + if user.usertime.wd_we == 0.0: + freedaycounter += 1 + elif(dt.isoweekday() == 4): + if user.usertime.wd_th == 0.0: + freedaycounter += 1 + elif(dt.isoweekday() == 5): + if user.usertime.wd_fr == 0.0: + freedaycounter += 1 + elif(dt.isoweekday() == 6): + if user.usertime.wd_sa == 0.0: + freedaycounter += 1 + elif(dt.isoweekday() == 7): + if user.usertime.wd_so == 0.0: + freedaycounter += 1 return restdays - counter + freedaycounter @@ -1121,7 +1124,7 @@ def calculatingHolidaysByAbsence(request, absence): weekdays = [] freedaycounter = 0 for dt in daterange(absence.start, absence.end): - + day_found = False if dt.isoweekday() not in weekdays: finalholidayinabsence += 1 # Prüfung, ob freie Tage vorhanden sind @@ -1129,30 +1132,31 @@ def calculatingHolidaysByAbsence(request, absence): # FREEDAY FOUND if(dt == freeday.day): freedaycounter += 1 - + day_found = True # Prüfung, ob der Mitarbeiter an diesem Tag überhaupt arbeitet. Wenn nicht, wird der Freedaycounter einfach erhöht stat = False - if(dt.isoweekday() == 1): - if absence.user.usertime.wd_mo == 0.0: - freedaycounter += 1 - elif(dt.isoweekday() == 2): - if absence.user.usertime.wd_tu == 0.0:# - freedaycounter += 1 - elif(dt.isoweekday() == 3): - if absence.user.usertime.wd_we == 0.0: - freedaycounter += 1 - elif(dt.isoweekday() == 4): - if absence.user.usertime.wd_th == 0.0: - freedaycounter += 1 - elif(dt.isoweekday() == 5): - if absence.user.usertime.wd_fr == 0.0: - freedaycounter += 1 - elif(dt.isoweekday() == 6): - if absence.user.usertime.wd_sa == 0.0: - freedaycounter += 1 - elif(dt.isoweekday() == 7): - if absence.user.usertime.wd_so == 0.0: - freedaycounter += 1 + if day_found == False: + if(dt.isoweekday() == 1): + if absence.user.usertime.wd_mo == 0.0: + freedaycounter += 1 + elif(dt.isoweekday() == 2): + if absence.user.usertime.wd_tu == 0.0:# + freedaycounter += 1 + elif(dt.isoweekday() == 3): + if absence.user.usertime.wd_we == 0.0: + freedaycounter += 1 + elif(dt.isoweekday() == 4): + if absence.user.usertime.wd_th == 0.0: + freedaycounter += 1 + elif(dt.isoweekday() == 5): + if absence.user.usertime.wd_fr == 0.0: + freedaycounter += 1 + elif(dt.isoweekday() == 6): + if absence.user.usertime.wd_sa == 0.0: + freedaycounter += 1 + elif(dt.isoweekday() == 7): + if absence.user.usertime.wd_so == 0.0: + freedaycounter += 1 return finalholidayinabsence - freedaycounter diff --git a/users/views.py b/users/views.py index dce90b7..680a1b4 100644 --- a/users/views.py +++ b/users/views.py @@ -513,7 +513,7 @@ def dashboard(request): filterdate = datetime.now() #news = News.objects.filter(agency__pk=request.user.profile.agency.pk).filter(go_online_on__let=filterdate).filter(go_offline_on__get=filterdate).order_by('-go_online_on')[:4] - news_all = News.objects.filter(agency__pk=request.user.profile.agency.pk).filter(go_online_on__lt=filterdate).filter(go_offline_on__gt=filterdate).order_by('-created_date') | News.objects.filter(agency__pk=request.user.profile.agency.pk).filter(go_online_on__lt=filterdate).filter(go_offline_on__isnull=True).order_by('-created_date') + news_all = News.objects.filter(agency__pk=request.user.profile.agency.pk).filter(go_online_on__lt=filterdate).filter(go_offline_on__gt=filterdate).order_by('-go_online_on') | News.objects.filter(agency__pk=request.user.profile.agency.pk).filter(go_online_on__lt=filterdate).filter(go_offline_on__isnull=True).order_by('-go_online_on') # Maximal fünf News final zur Seite schicken! news = []