From 19447ce4f7e5b97cbedcf4b74945110afd47007b Mon Sep 17 00:00:00 2001 From: Holger Trampe Date: Sun, 24 May 2020 01:14:25 +0200 Subject: [PATCH] Abwesenheit OHNE Benachrichtigungen FERTIG --- .../dasettings/change_absence_yeardata.html | 4 + .../dasettings/data_absence_yeardata.html | 12 +- .../templates/dasettings/user_usprof.html | 6 +- timemanagement/SAVE.py | 63 +++++ timemanagement/models.py | 4 + .../timemanagement/rendered_confirmform.html | 4 +- .../timemanagement/rendered_table.html | 40 ++- .../timemanagement/tm_ab_management.html | 112 ++++++-- timemanagement/views.py | 101 +++++--- users/models.py | 8 +- users/signals.py | 240 +++++++++++++++++- users/views.py | 8 + 12 files changed, 516 insertions(+), 86 deletions(-) create mode 100644 timemanagement/SAVE.py diff --git a/dasettings/templates/dasettings/change_absence_yeardata.html b/dasettings/templates/dasettings/change_absence_yeardata.html index d720bf2..043656a 100644 --- a/dasettings/templates/dasettings/change_absence_yeardata.html +++ b/dasettings/templates/dasettings/change_absence_yeardata.html @@ -21,11 +21,15 @@ Resturlaub {% for ab_info in user_years.all %} + {% if forloop.counter0 > 0 %}
+ {% else %} +   + {% endif %} {% endfor %} diff --git a/dasettings/templates/dasettings/data_absence_yeardata.html b/dasettings/templates/dasettings/data_absence_yeardata.html index 49ccded..0bd2818 100644 --- a/dasettings/templates/dasettings/data_absence_yeardata.html +++ b/dasettings/templates/dasettings/data_absence_yeardata.html @@ -15,10 +15,14 @@ {% endfor %} - Resturlaub - {% for ab_info in user_years.all %} - {{ab_info.restdays}} - {% endfor %} + Resturlaub Vorjahr + {% for ab_info in user_years.all %} + {% if forloop.counter0 > 0 %} + {{ab_info.restdays}} + {% else %} +   + {% endif %} + {% endfor %} \ No newline at end of file diff --git a/dasettings/templates/dasettings/user_usprof.html b/dasettings/templates/dasettings/user_usprof.html index c84a5b1..9dffe94 100644 --- a/dasettings/templates/dasettings/user_usprof.html +++ b/dasettings/templates/dasettings/user_usprof.html @@ -210,7 +210,11 @@ Resturlaub {% for ab_info in user_years.all %} + {% if forloop.counter0 > 0 %} {{ab_info.restdays}} + {% else %} +   + {% endif %} {% endfor %} @@ -222,7 +226,7 @@ Abbrechen - +

diff --git a/timemanagement/SAVE.py b/timemanagement/SAVE.py new file mode 100644 index 0000000..106d36c --- /dev/null +++ b/timemanagement/SAVE.py @@ -0,0 +1,63 @@ +''' + elif request.GET["action"] == "getrestholidays": + user = User.objects.get(pk=request.GET["userid"]) + usertimedata = UserTime.objects.get(user=user) + today = date.today() + if(user.profile.agency == request.user.profile.agency and request.user.has_perm("users.absencemanager")): + + # Alle Abwesenheiten laden, die bestätigt oder angefragt sind UND Urlaub sind + absences = Absence.objects.filter(user=user, confirm_status=0, reason__is_holiday=True) | Absence.objects.filter(user=user, confirm_status=1, reason__is_holiday=True) + + start_day = request.GET["startdate"].split("__") + start_day_ob = datetime.date(int(start_day[0]), int(start_day[1]), int(start_day[2])) + + end_day = request.GET["enddate"].split("__") + end_day_obj = datetime.date(int(end_day[0]), int(end_day[1]), int(end_day[2])) + + start_half = True + if request.GET["start_half"] == "false": + start_half = False + + end_half = True + if request.GET["end_half"] == "false": + end_half = False + + + # USER HAS NO ABSENCE + if(len(absences) == 0): + # Hier Urlaubstage bei Einstellung mit berücksichtigen + if(start_day_ob.year == usertimedata.startdate.year): + + data = { + "restholiday" : calculateHolidays(request, usertimedata.holiday_start + usertimedata.holiday, start_day_ob, end_day_obj, start_half, end_half) + } + # Hier Einstellungstage irrelevant und da noch keine Abwesenheiten eingetragen wurden, einfach aus Profil laden + else: + data = { + "restholiday" : calculateHolidays(request, usertimedata.holiday, start_day_ob, end_day_obj, start_half, end_half) + } + # ABSENCE-Data found, calculating rest-Days + else: + finalholidays = 0 + + # Besteht noch Anspruch aus Einstellungsjahr? + if(start_day_ob.year == usertimedata.startdate.year): + finalholidays += usertimedata.holiday_start + usertimedata.holiday + # Hier Einstellungstage irrelevant und da noch keine Abwesenheiten eingetragen wurden, einfach normal + else: + finalholidays += usertimedata.holiday + + # Berechne pro Abwesenheits die verbrauchen Urlaubstage + for absence in absences: + finalholidays -= calculatingHolidaysByAbsence(request, absence) + + data = { + "restholiday" : calculateHolidays(request, finalholidays, start_day_ob, end_day_obj, start_half, end_half) + } + # REQUEST USER NO RIGHTS + else: + data = { + "success" : False + } + + ''' \ No newline at end of file diff --git a/timemanagement/models.py b/timemanagement/models.py index f490794..b91269a 100644 --- a/timemanagement/models.py +++ b/timemanagement/models.py @@ -50,6 +50,9 @@ class Absence(models.Model): confirm_status = models.IntegerField(default=0) confirm_info = models.TextField(blank=True, verbose_name='Begründung', default="") representator = models.ForeignKey(User, blank=True, default=None, null=True, on_delete=models.CASCADE, related_name="Vertreter") + holidays_normal = models.FloatField(default=0.0, max_length=9, blank=True) + holidays_rest = models.FloatField(default=0.0, max_length=9, blank=True) + class FreeDays(models.Model): agency = models.ForeignKey(Agency, on_delete=models.CASCADE) @@ -60,3 +63,4 @@ class FreeDays(models.Model): + diff --git a/timemanagement/templates/timemanagement/rendered_confirmform.html b/timemanagement/templates/timemanagement/rendered_confirmform.html index f2d83b4..4c6089c 100644 --- a/timemanagement/templates/timemanagement/rendered_confirmform.html +++ b/timemanagement/templates/timemanagement/rendered_confirmform.html @@ -13,8 +13,8 @@ Informationen: {{absence.info}}
{{confirmform|crispy}}