diff --git a/users/views.py b/users/views.py index 2081145..f555e9d 100644 --- a/users/views.py +++ b/users/views.py @@ -80,7 +80,7 @@ def getICSFile(request, ag): if user.profile.agency.pk == ag: request.user = user c = Calendar() - absencedays = Absence.objects.filter(agency=ag) + absencedays = Absence.objects.filter(agency=ag).exclude(confirm_status=2) for ab in absencedays: e = Event() e.name = ab.user.first_name + " " + ab.user.last_name + " abwesend" @@ -114,7 +114,7 @@ def getICSFileAll(request, ag): if user.profile.agency.pk == ag and user.has_perm('users.absencemanager'): request.user = user c = Calendar() - absencedays = Absence.objects.filter(agency=ag) + absencedays = Absence.objects.filter(agency=ag).exclude(confirm_status=2) for ab in absencedays: e = Event() e.name = ab.user.first_name + " " + ab.user.last_name + " | " + ab.reason.name @@ -139,25 +139,26 @@ def getICSFileEx(request, code, ag): if agency != None and agency.agencycal_publicstatus == 1 and code == agency.agencycalurl: c = Calendar() - absencedays = Absence.objects.filter(agency=ag) + absencedays = Absence.objects.filter(agency=ag).exclude(confirm_status=2) for ab in absencedays: - e = Event() - e.name = ab.user.first_name + " " + ab.user.last_name + " abwesend " - e.uid = "da-ab-" + str(ab.pk) - e.begin = ab.start - e.end = ab.end - e.allday = True - c.events.add(e) + if ab.start != None and ab.end != None: + e = Event() + e.name = ab.user.first_name + " " + ab.user.last_name + " abwesend " + e.uid = "da-ab-" + str(ab.pk) + e.begin = ab.start + e.end = ab.end + e.allday = True + c.events.add(e) return HttpResponse(c, content_type='text/calendar') else: realm = "" response = HttpResponse() - response.status_code = 401 + response.status_code = 400 return response except: realm = "" response = HttpResponse() - response.status_code = 401 + response.status_code = 403 return response else: realm = "" @@ -172,25 +173,26 @@ def getICSFileExAll(request, code, ag): agency = Agency.objects.get(pk=ag) if agency != None and agency.agencycal_publicstatus == 1 and code == agency.agencycalurl_all: c = Calendar() - absencedays = Absence.objects.filter(agency=ag) + absencedays = Absence.objects.filter(agency=ag).exclude(confirm_status=2) for ab in absencedays: - e = Event() - e.name = ab.user.first_name + " " + ab.user.last_name + " | " + ab.reason.name - e.uid = "da-ab-" + str(ab.pk) - e.begin = ab.start - e.end = ab.end - e.allday = True - c.events.add(e) + if ab.start != None and ab.end != None: + e = Event() + e.name = ab.user.first_name + " " + ab.user.last_name + " | " + ab.reason.name + e.uid = "da-ab-" + str(ab.pk) + e.begin = ab.start + e.end = ab.end + e.allday = True + c.events.add(e) return HttpResponse(c, content_type='text/calendar') else: realm = "" response = HttpResponse() - response.status_code = 401 + response.status_code = 400 return response except: realm = "" response = HttpResponse() - response.status_code = 401 + response.status_code = 403 return response else: realm = ""