From 99116da8d3e5f1283224bb9217708ae64b8a8d48 Mon Sep 17 00:00:00 2001 From: "holger.trampe" Date: Mon, 9 Nov 2020 20:26:39 +0100 Subject: [PATCH] BUGS --- chat/templates/chat/chatmanagement.html | 6 +- notificsys/models.py | 2 +- .../__pycache__/counter_tag.cpython-38.pyc | Bin 19389 -> 19372 bytes standards/templatetags/counter_tag.py | 5 +- .../timemanagement/rendered_table.html | 2 + timemanagement/views.py | 67 +++++++++--------- 6 files changed, 41 insertions(+), 41 deletions(-) diff --git a/chat/templates/chat/chatmanagement.html b/chat/templates/chat/chatmanagement.html index 858368d..35527eb 100644 --- a/chat/templates/chat/chatmanagement.html +++ b/chat/templates/chat/chatmanagement.html @@ -68,8 +68,8 @@
{% for user in usersofagency %} -
-
+
+
@@ -95,7 +95,7 @@ {% for chatroom in chatrooms %} {% if user in chatroom.chatmembers.all or user in chatroom.chatmembers_admin.all or user == chatroom.creator and chatroom.chatroomtype == 1 %}
-
+
{{chatroom.roomname}}
diff --git a/notificsys/models.py b/notificsys/models.py index 0b4290e..61af06e 100644 --- a/notificsys/models.py +++ b/notificsys/models.py @@ -24,4 +24,4 @@ class UserNotification(models.Model): # Eventuell automatisches Lösch-Datum #willdeleted = models.DateTimeField(default=timezone.now()+timedelta(days=30)) # Textcontent - notificationtext = models.CharField(max_length=5000, blank=True) \ No newline at end of file + notificationtext = models.CharField(max_length=15000, blank=True) \ No newline at end of file diff --git a/standards/templatetags/__pycache__/counter_tag.cpython-38.pyc b/standards/templatetags/__pycache__/counter_tag.cpython-38.pyc index 8605afe17ec7f5c3cb922a477a3886569420afc3..12080b964de1ed11bab35454861b4619a2361db4 100644 GIT binary patch delta 4626 zcmaJ_3viUx72f;rX0zGN?uKNO&1)0#*pTIs4M|AIix5DdK}01eMl?;bOH4?1;qJyj z8j6T7EE@Gxf%?Kn(WodG-%y1z?PzDP#p=}Ac8Xf3iniJ^)%uvRJ>UH|4+=Jue0%ra zbG~!#Ip?1L{`tjj@zic%Ut_mh4g6DZ_h@_VA$xsd>V^C*Ahv45hF(Lj=+)$MYD+Bg zWNbAJn|dw7#@?h}%LYxB2TWVFP36PdYJ)F<9!@MYw)(7eBJpA>wlq5(;M7dQDl&yb zIOtl-ZB>4ridnm5cwl3DsG~n9%XmW01ylfXCLkB1N(MjGB=tDw^C)6sFc?ij&ZkSv zUW?4*ud>=e8(ZAziQU0yXE@xq0D_tll(lrM#6`K*7U8FpjcGJwb=sFqtZTB7?y+|A z+Sk_n1n9Mr$2KIYXpb#dl+*LJna*{PR%SJakjv;ZTf3;Ii;^3hos%n8AzNr~^0f&o zc&?jV_NaRik9-zc&mS@oFcVNk4|1^kc&K}*$u%S#2gD+J#*sU#3L=*P<^Ytg4Wn6r zO987Hd?wjSUpkhGP1NYj5o@VF<#IacG}Xf9(pH~&szE530TaBw1lh_HF-u2xFx0iB zCm=7QzdLKhb@b1abg_=v*4A9X0^h@<+<<>^9@z%=%K%r>Z&FIcF7QxY$`#H3hXwmk zyF3pIFSXes*L27rolMD~7p6JHZsrU%ou3a8iX}y&9ic#n3`C}~#;oJhYL_x~ws@GC z(u_iO(R*`TbaitQy_I?aXEZbI(zK_TDPm#ZqSZ14m)UySnzof!zfD`0{v1}-F)^m_ zdNS5~=(=nV?R53C%)ebLryYe1!fh})giDi=`1%}=?Bz*W06_X>n89b18!_HQN7Cm^ zdxM9%E>{}s4$x;A9&%?ihz-=5Q8Po8LkManT@6R6&CwO^?+=Ee?Xn}<6Y7@Ds?PVh zP4q@aO8QA~DxXa*<+D|jo0)g@!fSXXW*t}V+_F>(o@wQD4DzS6160YX+JkL23ndA& zawBbbSEm1&hdRBc)0;FoL{Dc0xuE@-wNfrbQrURinb=VgLq^zna2o%GT(Qnf~7akh@f=?enair4ocNtMZr8_Vz%>774bvrSkGR z^($|sQ@M2o6RztrKViX9_8#&h0NvtBPeFR=VLK zPUBI`7zz)n2*na3!LD#95aAA~_I$IV2J8m>jJ}*cPpqQZ1^MDWZtouIDY!ay!fm;i zg?u(W$pw=})UH*Q?uEd(+vF~+a{my4SLZ>?AM>)prUj; z&Ummfp~`9jf*nf?Ztm(E2n45W@_+0nOsxQD-w(*t4^xpls|POWPk4)%IqB3sI#TpP zwu<6;_eQ&l*NF(7F3vGO$&6is7N+DIHUQpI9Yk>7=?ApMkdU0t%`s2{lyN8KWt{yrsDuzc&>%|zID$Td4 zSbLd9KBrvH^*P)Jr??!~<4ej*W6i$j#5Ps5s5B1r%g{r!Q0Z3BQFM&H=(%f&>Qr~1 zyP{{S0EEU#E=7ITMBL=!33Kul7={aH$sNW-yu&MBRW&Fvi)?~Q3gwq(7O9Qnapg;h zS^L7>-N67JBYNRJ54l_D%q)M_D+q>Os<@1HYH#uhO4j77+`3$J(d>T90gxEwO>}&A zMcS_+uGf)CSVXmu$2qNhjhyqM{RGzHnS7nQ_)f<$R*jj%vLntbm^gd&?@t zNjg#H5pVJh)I%13A*XwmzuNf$2=scf2>G_UpWfiFH2)UvzNPZ_JAZ20#}hu7lGz9D zv+s<3;h!nQ%QSs%t4&4a4^VlRw$07t**$Ytnny69LSt5;@l#SoPO1tXx+xz4r8h#= z6>G#9+Ep>be2VA0H2RY_b7eITqlPG7_Ir)PeEGjk><|Gh%fK%ITCXW!*kF`p7!8XJ z23Zy`t~LZr{Aa+`|03A{+w3&jG2bD`RXN?h6mw|sG0Q-N7FK#4HV$1pv>BRfEK->( z7CgiPr~ku0@)+a`7)C`bvA-uY5DiAY5q12)P}@20(WMhr1>yjGUX_{q1J?9e^%JZ% zsvl#JK1N0J){Atyb>6!r${vo?kg?nw8M1gIb?TS%k2WL!1~@>sROgF(RXz?^PZNz} zC#v_0Y(=YzR<+r`Li8_yhv>HXS=;W#@M8vF+LX47%A0bRdJtbv13m$K|JJbjDFD@} zyY(eTYM*vJm;b;7@*cAchRIu-n=++=VeK)xq;{ET8QWXCSlCp6k7D{Y`lxPtf_$IH zG_Af$FDUga)-RA<_37frw57gAB+#Myp(SeLf~9>)`UMdIoU$qXiHncoc;kE(A7J1 zhGyZ7@UhOLO$$AAplMAVZh!J@{f}VBV3@b?bbvojBNj4;#kl?u-Qj!cP=eX&sS|($OeM`^N`DYX6hdKc%=CaHWz^FgV#`#i&EE?bN zB3mXrhCecwo@_43`23vxX|h-s|E9Sv^*^62!E+_A_77EL&5cv-h-qz{)J6Bp9{09OOL0P6ugfCyj!uo*A}*bcZJ zumi9YunRzjZHzy~a1Y= Z4^Rles{?0|p#;##hiZ+m(XU#*`Y+cy@f837 delta 4614 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 diff --git a/standards/templatetags/counter_tag.py b/standards/templatetags/counter_tag.py index 666f478..22b2d7e 100644 --- a/standards/templatetags/counter_tag.py +++ b/standards/templatetags/counter_tag.py @@ -39,7 +39,6 @@ def has_group_byname(user, groupname): agroup = AgencyGroup.objects.filter(agency=user.profile.agency, agencygroupname=groupname)[0] for g in user.groups.all(): if g.name == agroup.group.name: - print("HIER") in_group = True return in_group @@ -523,9 +522,9 @@ def getUserIsRep(user): # Check, if a user is behind a day in agency (working startdate) @register.simple_tag def startdatecheck(usertocheck, day): - uertime = list(UserTime.objects.filter(user=usertocheck))[0] + usertime = list(UserTime.objects.filter(user=usertocheck))[0] - if uertime.startdate < day: + if usertime.startdate != None and usertime.startdate < day: return True else: return False diff --git a/timemanagement/templates/timemanagement/rendered_table.html b/timemanagement/templates/timemanagement/rendered_table.html index 2b8c551..159bac5 100644 --- a/timemanagement/templates/timemanagement/rendered_table.html +++ b/timemanagement/templates/timemanagement/rendered_table.html @@ -429,6 +429,8 @@ function recalculateChoosenDays(userid=false){ $("#id_end").data("DateTimePicker").date(date_end); localStorage.setItem("ab_userid", userid); + $("#id_userid").val(userid); + $.ajax({ type: "GET", diff --git a/timemanagement/views.py b/timemanagement/views.py index 23eeaf1..5b96609 100644 --- a/timemanagement/views.py +++ b/timemanagement/views.py @@ -141,38 +141,38 @@ def AbsenceManagmenet(request, activemonth=False, activeyear=False): formtocheck = AddAbsence(request.POST, instance=request.user) if(formtocheck.is_valid()): - try: - workinguser = UserFullName.objects.get(pk=formtocheck.cleaned_data["userid"]) - - # DIFFERENT USER AGENCY - if(workinguser.profile.agency != request.user.profile.agency): - messages.success(request, f'Das dürfen Sie nicht!') - return redirect('tma-management', formtocheck.cleaned_data['activemonth'], formtocheck.cleaned_data['activeyear']) - # ALL OK - START SAVING ABSENCE - else: - confirmstat = 0 - reason = AbsenceReason.objects.filter(name=formtocheck.cleaned_data["reason"], agency=request.user.profile.agency)[0] - - if(request.user.has_perm("users.absencemanager") == False and reason.need_confirm == True): - confirmstat = 1 - messages.success(request, f'Abwesenheit beantragt') - # SEND NOTIFICATION - elif(request.user.has_perm("users.absencemanager") == False and reason.need_confirm == False): - confirm_status = 0 - messages.success(request, f'Abwesenheit eingetragen') - else: - messages.success(request, f'Abwesenheit eingetragen') - - rep = None - if(formtocheck.cleaned_data["representator"] != None): - rep = User.objects.get(pk=formtocheck.cleaned_data["representator"].pk) - - #newab = Absence(agency=request.user.profile.agency, user=workinguser, start=formtocheck.cleaned_data["start"],end=formtocheck.cleaned_data["end"], representator=rep, confirm_status=confirmstat, info=formtocheck.cleaned_data["info"], reason=formtocheck.cleaned_data["reason"], start_ishalf=formtocheck.cleaned_data["start_ishalf"], end_ishalf=formtocheck.cleaned_data["end_ishalf"]).save() - newab = Absence(agency=request.user.profile.agency, user=workinguser, start=formtocheck.cleaned_data["start"],end=formtocheck.cleaned_data["end"], representator=rep, confirm_status=confirmstat, info=formtocheck.cleaned_data["info"], reason=formtocheck.cleaned_data["reason"], startday_info=formtocheck.cleaned_data["startday_info"], endday_info=formtocheck.cleaned_data["endday_info"]).save() - # USER NOT FOUND - except: - messages.success(request, f'Fehler bei Abwesenheitsbearbeitung! Bitte wenden Sie sich an den Support.') + #try: + workinguser = UserFullName.objects.get(pk=formtocheck.cleaned_data["userid"]) + + # DIFFERENT USER AGENCY + if(workinguser.profile.agency != request.user.profile.agency): + messages.success(request, f'Das dürfen Sie nicht!') return redirect('tma-management', formtocheck.cleaned_data['activemonth'], formtocheck.cleaned_data['activeyear']) + # ALL OK - START SAVING ABSENCE + else: + confirmstat = 0 + reason = AbsenceReason.objects.filter(name=formtocheck.cleaned_data["reason"], agency=request.user.profile.agency)[0] + + if(request.user.has_perm("users.absencemanager") == False and reason.need_confirm == True): + confirmstat = 1 + messages.success(request, f'Abwesenheit beantragt') + # SEND NOTIFICATION + elif(request.user.has_perm("users.absencemanager") == False and reason.need_confirm == False): + confirm_status = 0 + messages.success(request, f'Abwesenheit eingetragen') + else: + messages.success(request, f'Abwesenheit eingetragen') + + rep = None + if(formtocheck.cleaned_data["representator"] != None): + rep = User.objects.get(pk=formtocheck.cleaned_data["representator"].pk) + + #newab = Absence(agency=request.user.profile.agency, user=workinguser, start=formtocheck.cleaned_data["start"],end=formtocheck.cleaned_data["end"], representator=rep, confirm_status=confirmstat, info=formtocheck.cleaned_data["info"], reason=formtocheck.cleaned_data["reason"], start_ishalf=formtocheck.cleaned_data["start_ishalf"], end_ishalf=formtocheck.cleaned_data["end_ishalf"]).save() + newab = Absence(agency=request.user.profile.agency, user=workinguser, start=formtocheck.cleaned_data["start"],end=formtocheck.cleaned_data["end"], representator=rep, confirm_status=confirmstat, info=formtocheck.cleaned_data["info"], reason=formtocheck.cleaned_data["reason"], startday_info=formtocheck.cleaned_data["startday_info"], endday_info=formtocheck.cleaned_data["endday_info"]).save() + # USER NOT FOUND + #except: + # messages.success(request, f'Fehler bei Abwesenheitsbearbeitung! Bitte wenden Sie sich an den Support.') + # return redirect('tma-management', formtocheck.cleaned_data['activemonth'], formtocheck.cleaned_data['activeyear']) return redirect('tma-management', formtocheck.cleaned_data['activemonth'], formtocheck.cleaned_data['activeyear']) else: @@ -1066,13 +1066,11 @@ def calculateHolidays(request, start, end, start_half, end_half, user): weekdays = [] freedaycounter = 0 for dt in daterange(start, end): - if dt.isoweekday() not in weekdays: counter += 1 for freeday in allfreedays.all(): if(dt == freeday.day): freedaycounter += 1 - # 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: @@ -1123,7 +1121,7 @@ def calculatingHolidaysByAbsence(request, absence): weekdays = [] freedaycounter = 0 for dt in daterange(absence.start, absence.end): - + if dt.isoweekday() not in weekdays: finalholidayinabsence += 1 # Prüfung, ob freie Tage vorhanden sind @@ -1131,6 +1129,7 @@ def calculatingHolidaysByAbsence(request, absence): # FREEDAY FOUND if(dt == freeday.day): freedaycounter += 1 + # Prüfung, ob der Mitarbeiter an diesem Tag überhaupt arbeitet. Wenn nicht, wird der Freedaycounter einfach erhöht stat = False if(dt.isoweekday() == 1):