From eee39eca7569cb33856a08eabc4ecbd9267532d9 Mon Sep 17 00:00:00 2001 From: Holger Trampe Date: Mon, 6 Sep 2021 22:27:42 +0200 Subject: [PATCH] Anbindung TM NC --- api/urls.py | 2 + api/views.py | 101 +++++++++++++++++- .../__pycache__/counter_tag.cpython-38.pyc | Bin 26509 -> 26509 bytes .../realtime_dropdown_nc_iframe.html | 3 +- timemanagement/urls.py | 2 +- timemanagement/views.py | 10 +- 6 files changed, 111 insertions(+), 7 deletions(-) diff --git a/api/urls.py b/api/urls.py index f3f50e9..e05e92e 100644 --- a/api/urls.py +++ b/api/urls.py @@ -27,4 +27,6 @@ urlpatterns = [ path('logout/', views.apilogout, name="api-logout"), path('uschanged//', views.userChangedInNc, name="api-userchanged"), path('deletefile//', views.deleteNCFile, name="api-deletencfile"), + path('tm/startday//', views.startWorkDay, name="api-startday"), + path('tm/gettime//', views.getTime, name="api-gettime"), ] \ No newline at end of file diff --git a/api/views.py b/api/views.py index cb4a38b..33b8b42 100644 --- a/api/views.py +++ b/api/views.py @@ -18,7 +18,10 @@ from django.contrib.sessions.models import Session from timemanagement.models import Absence from django.conf import settings from digitaleagentur.utils import * +from timemanagement.models import Workday, FreeDays, Absence from standards.models import Standards, NCFile +from users.models import AgencyGroup, Agency, AgencyNetwork, AgencyNetworkPreperation, UserTime, UserYearAbsenceInfo, AgencyBills +from standards.templatetags import * class GetUserId(APIView): #permission_classes = (IsAuthenticated,) # <-- And here @@ -44,7 +47,6 @@ def getSingleStandard(request, pk): @api_view(['POST', ]) #@permission_classes((IsAuthenticated,)) def logoutByToken(request): - print(request) request.user.auth_token.delete() return Response(status=status.HTTP_200_OK) @@ -255,6 +257,15 @@ def NCAddUser(request): return JsonResponse({"status" : "NO AUTH"}) +@api_view(['GET'],) +def getTMInfos(request, uid, secretkey): + if request.method == "GET": + print("HI! asdsadassad") + + return JsonResponse({"status" : "DATA " + uid + " " + secretkey}) + + return JsonResponse({"status" : "NO AUTH"}) + from requests.auth import HTTPBasicAuth ''' Anlegen des Gruppenordners der Agentur in NC @@ -454,4 +465,90 @@ def deleteNCFile(request, fid, secretkey): else: return JsonResponse({"status" : "NO AUTH"}) else: - return JsonResponse({"status" : "NO AUTH"}) \ No newline at end of file + return JsonResponse({"status" : "NO AUTH"}) + +# APIs for TIMEMANAGEMENT +@api_view(['GET'], ) +def startWorkDay(request, uid, secretkey): + print("kasjdkajhsdkjhasdjksha") + if request.method == "GET" and secretkey == '87zuhjk87GHJ546tzgvhas76aaskbdhr45edfVHAKia87s6gbAVGFGSR3451627gBHAKJBN': + print("START A DAY!") + return HttpResponse(1) + else: + return JsonResponse({"status" : "FALSE"}) + +# APIs for TIMEMANAGEMENT +import os +from django.conf import settings +from django.utils import timezone +from datetime import date +import datetime +# Ladet das aktuelle Gleitzeitkonto +''' + + Es werden nur Tage berücksichtigt, die in der Vergangenheit liegen! + +''' +def format_timedelta(td): + hours, remainder = divmod(td.total_seconds(), 3600) + minutes, seconds = divmod(remainder, 60) + hours, minutes, seconds = int(hours), int(minutes), int(seconds) + if hours < 10: + hours = '0%s' % int(hours) + if minutes < 10: + minutes = '0%s' % minutes + if seconds < 10: + seconds = '0%s' % seconds + return '%s:%s:%s' % (hours, minutes, seconds) + +def loadaccounttime(user): + status = 0 + today = date.today() + workdays = Workday.objects.filter(user=user, start__lt=today, delflag = False).exclude(end=None) + + finalaccounttimesum = datetime.timedelta(minutes=0) + datetime.timedelta(hours=UserTime.objects.get(user=user).startcount) + + + for workday in workdays: + # Zeit, die der Mitarbeiter gearbeitet haben MUSS + + sum_break = 0 + + if(len(workday.breaks.all()) > 0): + + for ele in workday.breaks.all(): + if ele.end != None and ele.start != None: + sum_break += (ele.end - ele.start).seconds + + finalsum = ((workday.end - workday.start).seconds - sum_break) + hastowork = datetime.timedelta(hours=workday.target) + final_info = (int(finalsum) - int(hastowork.total_seconds()))/60 + + if(final_info >= 0.0): + finalaccounttimesum += datetime.timedelta(minutes=final_info) + else: + final_info = final_info * -1 + finalaccounttimesum -= datetime.timedelta(minutes=final_info) + + # Gesamtgleitzeit einmal schick darstellen mit rot und grün + # Wenn GLeitzeit NEGATIV ist + if(finalaccounttimesum.total_seconds() < 0): + status = 1 + final_info_data = format_timedelta(datetime.timedelta(seconds=finalaccounttimesum.total_seconds()*(-1))) + else: + status = 0 + final_info_data = format_timedelta(datetime.timedelta(seconds=finalaccounttimesum.total_seconds())) + + final_info_data_neu = final_info_data.split(":")[0] + ":" + final_info_data.split(":")[1] + + #final_info = str(final_info_data[0]) + ":" + str(final_info_data[1]) + return [final_info_data_neu, status] + + + +@api_view(['GET'], ) +def getTime(request, uid, secretkey): + if request.method == "GET" and secretkey == '87zuhjk87GHJ546tzgvhas76aaskbdhr45edfVHAKia87s6gbAVGFGSR3451627gBHAKJBN': + return HttpResponse(loadaccounttime(User.objects.filter(username=uid).first())[0]) + else: + return JsonResponse({"status" : "FALSE"}) \ 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 eb5d89b4967977b7122da1f2902aa2d9e1ac239e..3861a204a972e7805609d2d9be267d65766c31d8 100644 GIT binary patch delta 827 zcmYk(T}V@57zgk@GZi;Sgod$ZSr>^@nu1PeOsC|WI=6*R=b7cs{D{TU@v3NkprStXR!UZjE zy^Hv@!NLnIW~yQGp5Rw4`T9D9)>KfIRZluy5hdl8vwkxNy{qKm{Xi}cnzJ~)^$q!X z+Mmz+twCyLyYF0%7yW6%CQqguxjr^LB78jLE2p+p-#eej)+{^354kR6p%XtrK$cex zpB^QghTpZ~zdhu1mH#4j$muK8&R_gzGJKd1a$3MeorgzJ0}f*o7BDMX`Ej6{LUQ#v zDcZ^P(-R^#I3lVK77Gs-NBKf`H_gjuHg)`U zRK>{dqPhqAF_>}CbRWSc7(mklR1ZnVPoqxS(Y{4{^{1`KDu5Hz0vD(Q^?a@067!(+ zgEr6sIzb31UIms@cijWg^5d~3qU3e1&7U5+dH$gYiRqua>bm07W-sj^z?>T3Fljb+c6fGf~kc**8oPH!0lhu9YsiQ&he!di}p_Xjlo1oY3l^x={tP2_F#19aZ;YH)e z2k8dmFQ@o#4>|1!ouP=FzCh>rbLf!4kNH;43A-q|dlWTXXY!zcS>fY{;ZxKmt4}DV zEwuP^$jYB0jbziz(YHi{+LyKpq5(FVC${xi5FSls}JvGq+v^45tGiPe<-J>nL!y~wIy5zFigFruT# z-9~f=^kLAj({vAs`=B39%ZOHh1xpD(i&xXS_BGz4FRMhM8q|XZ&-cC|UjH@v3v-~^ AH~;_u diff --git a/timemanagement/templates/timemanagement/realtime_dropdown_nc_iframe.html b/timemanagement/templates/timemanagement/realtime_dropdown_nc_iframe.html index 50d0150..69ed6ac 100644 --- a/timemanagement/templates/timemanagement/realtime_dropdown_nc_iframe.html +++ b/timemanagement/templates/timemanagement/realtime_dropdown_nc_iframe.html @@ -86,7 +86,8 @@ Gleitzeitkonto: