From db58c37c827133edd6549517bf75ef10ee0119b7 Mon Sep 17 00:00:00 2001 From: "holger.trampe" Date: Sun, 3 May 2020 01:22:36 +0200 Subject: [PATCH] Zwischencommit Absence --- .../__pycache__/settings.cpython-38.pyc | Bin 3992 -> 3967 bytes digitaleagentur/settings.py | 34 +-- .../templates/standards/standards_single.html | 2 +- .../templates/standards/standards_update.html | 1 + .../__pycache__/counter_tag.cpython-38.pyc | Bin 9522 -> 10289 bytes standards/templatetags/counter_tag.py | 35 ++- timemanagement/forms.py | 19 ++ .../timemanagement/rendered_table.html | 207 ++++++++++++++++++ .../timemanagement/tm_ab_management.html | 119 +++++++--- timemanagement/urls.py | 1 + timemanagement/views.py | 135 +++++++++++- users/templates/users/base.html | 6 +- users/templates/users/publicbase.html | 14 +- users/views.py | 4 - 14 files changed, 518 insertions(+), 59 deletions(-) create mode 100644 timemanagement/forms.py create mode 100644 timemanagement/templates/timemanagement/rendered_table.html diff --git a/digitaleagentur/__pycache__/settings.cpython-38.pyc b/digitaleagentur/__pycache__/settings.cpython-38.pyc index 1709d2021d3b27e78cac2bda6447f2756cccda78..11e175b3bcd965c25ffddf51735d13789e1ab71b 100644 GIT binary patch delta 565 zcmY*W%Wl(95cRch+~(n=&m^?;MN3L4P0|8Q8(v9B%A=H5Qc4F26nZSjRe~$yAQ2XP zL*)&NF36@5NUXf!3s~?8{R%d$5DJ$FMPf#CW^|5bG@AJ^)tS_`H7y_s`-U&in}^y? z0e$F)9{~grI`Wx}0?;UkFoobF4G{`sfFc;A0SwU~hG_^RG>lP15kuVIG;;Vk{T|C$ zF~(>V7jX%fv5E}Vu#T+JPf=W<7_J%;e7J_|xPct<1~(ZBN8Df($4xqgB1(cOVxx<< zx_H}UV*VKJ&^YeWX>8Jj*lAM46zb^E>Gdzk( zl;|?^dIFEzGMz)27XC3RDuOwWZCVrqFW?C+VF!PYki=8$f=njr6y&nB@XY(lax5CH zInF^gm8x5N)q2f(?PS-|>9jkpOtXsnMwyF8U>c@Vt?N}of8{jo6K-3Ub0WFlmBmua zZ@g{PnvEoMb5oY2mR7UshHfVvyV^L=Tfr^MarBk+^6HD3R_s45*X#6tDt#(bz2E)> zV;kOVFvbG@V!o0uP!9fyvYrinLylI)B~cE;Te@6Rh-m08b!@eU7i)^n8$ Toy#Ha{s=F*ov`XoMBe=Ya44Cd delta 537 zcmX|8OHUJF6rFEo`kHozS4(SE%1ac%wpgozuTFtdKtydTc%zagXEF|;G}9@IZu|po z$ZU*ZVK*8VCMJ^@|AN24pP~tTP7L?toZOt;oZOpxGV&p#HdIv+c-b$$z4~~hZdFJ@ zh@uEn3=vW}HO@XLh$6f_TE6t9VK?Ja85@x`sN!{MalSc!n*D@jeH!CQNU8KUs-ICSE&EtG$rR zxi96kt4X6{m9Ex)<`2;M}a+>=_(=^^X z9eW4HVSbKMPN9D2tmvD2mFn|ttnD{8Ry*^ZLc`sYX1w20C>WIa$GTPbdnoSxji}61 zqDkh?#+piGNw4c=y|!HQ-p9T$HOdFS3U=||hl_4W+s%lwB(pQfB0Iw$`9xOTU)qmT DiF%Fi diff --git a/digitaleagentur/settings.py b/digitaleagentur/settings.py index c378bef..0b9a80c 100644 --- a/digitaleagentur/settings.py +++ b/digitaleagentur/settings.py @@ -15,31 +15,35 @@ import os BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) -############################################## DEV ##################################### -BASE_URL = "https://dev01.digitale-agentur.com/" +############################################## LOCAL ##################################### +BASE_URL = "http://localhost:8000/" CRONAPIKEY = "gCddsaz6NOnE9QbXZM5LasdEk122D" + # SECURITY WARNING: don't run with debug turned on in production! -DEBUG = False - -# MAIL DEV -EMAIL_HOST = 'smtp.strato.de' -EMAIL_PORT = 587 -EMAIL_USE_TLS = True -EMAIL_HOST_USER = "support@dev01.digitale-agentur.com" -EMAIL_HOST_PASSWORD = "support@dev01.digitale-agentur.com" -DEFAULT_FROM_EMAIL = "support@dev01.digitale-agentur.com" +DEBUG = True +# Database +# https://docs.djangoproject.com/en/2.2/ref/settings/#databases # DEV DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', - 'NAME' : 'digitaleagentur_dev01', - 'USER' : 'digitaleagentur_dev01', - 'PASSWORD' : 't3TvtGAOkFHYXdJlUMIu9u3U', + 'NAME' : 'digitaleagentur', + 'USER' : 'root', + 'PASSWORD' : '', 'PORT' : 3306 } } -############################################## DEV ##################################### + +# MAIL DEV +EMAIL_HOST = 'gymhum.de' +EMAIL_PORT = 587 +EMAIL_USE_TLS = True +EMAIL_HOST_USER = "holger.trampe" +EMAIL_HOST_PASSWORD = "Motte2016_!" +DEFAULT_FROM_EMAIL = "holger.trampe@gymhum.de" + +################################################### LOCAL ############################### # Nach zehn Stunden läuft der Cookie ab! diff --git a/standards/templates/standards/standards_single.html b/standards/templates/standards/standards_single.html index c6f5f4c..c7e9a41 100644 --- a/standards/templates/standards/standards_single.html +++ b/standards/templates/standards/standards_single.html @@ -117,7 +117,7 @@
Quicklinks

{% for ql in standard.addedquicklinks.all %} - {{ ql.link|truncatechars:30 }}
+ {{ ql.name|truncatechars:30 }}
{% endfor %}

diff --git a/standards/templates/standards/standards_update.html b/standards/templates/standards/standards_update.html index c699330..a3cfd60 100644 --- a/standards/templates/standards/standards_update.html +++ b/standards/templates/standards/standards_update.html @@ -832,5 +832,6 @@ $(document).ready(function() { }); }); + {% endblock content %} diff --git a/standards/templatetags/__pycache__/counter_tag.cpython-38.pyc b/standards/templatetags/__pycache__/counter_tag.cpython-38.pyc index fd286855c4458c57771c8554e06fc679f746bf9e..74b17f9953f1ec43e769cbb789b61217167a7176 100644 GIT binary patch literal 10289 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 0: + returnstat = True + return returnstat + +@register.simple_tag +def isfreedayname(user, daytocheck): + returnstat = False + fd = FreeDays.objects.filter(agency=user.profile.agency, day=daytocheck) + if len(fd) > 0: + returnstat = True + returnstat = fd[0].name + return returnstat \ No newline at end of file diff --git a/timemanagement/forms.py b/timemanagement/forms.py new file mode 100644 index 0000000..b41aadf --- /dev/null +++ b/timemanagement/forms.py @@ -0,0 +1,19 @@ +from bootstrap_datepicker_plus import DatePickerInput +from django import forms +from django.forms import ModelForm +from .models import Absence + + +class AddAbsence(forms.ModelForm): + + class Meta: + model = Absence + labels = { + "start" : "Beginn der Abwesenheit", + "end" : "Ende der Abwesenheit", + } + fields = ['start', 'end'] + widgets = { + 'start': DatePickerInput(options={"format":'DD.MM.YYYY', "locale":'de'}), + 'end': DatePickerInput(options={"format":'DD.MM.YYYY', "locale":'de'}), + } \ No newline at end of file diff --git a/timemanagement/templates/timemanagement/rendered_table.html b/timemanagement/templates/timemanagement/rendered_table.html new file mode 100644 index 0000000..e9a2388 --- /dev/null +++ b/timemanagement/templates/timemanagement/rendered_table.html @@ -0,0 +1,207 @@ +{% load counter_tag %} + +
+ + + + +
+ + + + {% endfor %} + + + {% for us in usersofagency %} + {% setdateforloopcounter forloop.counter %} + {% getactdateforloopcounter as actfcounter %} + + + {% for da in days_this_month %} + + {% isfreeday user da as isfree %} + {% isfreedayname user da as isfreename %} + {% if isfree %} + + {% endfor %} + + {% endfor %} +
+ {% for da in days_this_month %} + {{da|date:"d D"}}
+ + {{us.get_full_name}} + + + + {% elif da.weekday == 5 or da.weekday == 6 %} + + {% else %} + + {% endif %} +
+ + + + + + + + + \ No newline at end of file diff --git a/timemanagement/templates/timemanagement/tm_ab_management.html b/timemanagement/templates/timemanagement/tm_ab_management.html index 65bd365..28be539 100644 --- a/timemanagement/templates/timemanagement/tm_ab_management.html +++ b/timemanagement/templates/timemanagement/tm_ab_management.html @@ -1,13 +1,83 @@ {% extends "users/base.html" %} {% block content %} +{% load crispy_forms_tags %} {% load counter_tag %} {% if request.user.profile.agency.module_timemanagement_ze %} -
-

Abwesenheiten 

-
- {{freedays}} + + + + + + +
+

Abwesenheiten{% if request.user.profile.showtooltips %} {% endif %}

+
+
+
+ Lade Kalenderdaten... +
+ +
+ + + + diff --git a/timemanagement/urls.py b/timemanagement/urls.py index 0138381..9b1cf57 100644 --- a/timemanagement/urls.py +++ b/timemanagement/urls.py @@ -8,6 +8,7 @@ Permissions definiert in models.py bei USERS und dann hier vor die View geschrie urlpatterns = [ path('', TimeManagement, name='tm-management'), path('abs/', AbsenceManagmenet, name='tma-management'), + path('abs//', AbsenceManagmenet, name='tma-management'), path('ajax/', TimeAjax, name='tm-ajax'), #path('newsadd/', permission_required('users.modulenews')(views.NewsAdd), name='news-add'), #path('newsupdate//', permission_required('users.modulenews')(views.NewsUpdate), name='news-update'), diff --git a/timemanagement/views.py b/timemanagement/views.py index fa9a911..a72a7d6 100644 --- a/timemanagement/views.py +++ b/timemanagement/views.py @@ -1,12 +1,17 @@ from django.shortcuts import render from django.contrib.auth.decorators import login_required from django.http import JsonResponse -from .models import Workday, Breaks +from .models import Workday, Breaks, FreeDays from django.utils import timezone import requests, csv, os from django.templatetags.static import static from django.conf import settings from datetime import date +from django.contrib.auth.models import User +from calendar import monthrange +import datetime +import calendar +from .forms import AddAbsence def loadingFreeDays(plz): # Getting land @@ -34,16 +39,72 @@ def loadingFreeDays(plz): else: return False +def get_datetime_range(year, month): + nb_days = monthrange(year, month)[1] + return [datetime.date(year, month, day) for day in range(1, nb_days+1)] + + @login_required -def AbsenceManagmenet(request): - +def AbsenceManagmenet(request, activemonth=False, activeyear=False): + prevmonth = "" + nextmonth = "" + + #MONTH + if(not activemonth or activemonth > 12 or activemonth < 1): + activemonth = int(activemonth) + #Active month + activemonth=date.today().month + + if(activemonth == 1): + prevmonth = 12 + else: + prevmonth = activemonth-1 + if(activemonth == 12): + nextmonth = 1 + else: + nextmonth = activemonth + 1 + else: + + if(activemonth == 1): + prevmonth = 12 + else: + prevmonth = activemonth-1 + if(activemonth == 12): + nextmonth = 1 + else: + nextmonth = activemonth + 1 + + #YEAR + nextyear = date.today().year + prevyear = date.today().year + + if(not activeyear): + activeyear = date.today().year + else: + if(nextmonth == 1): + nextyear = activeyear + 1 + else: + nextyear = activeyear + if(prevmonth == 12): + prevyear = activeyear - 1 + else: + prevyear = activeyear + context = { "active_link" : "abscence", - "freedays" : loadingFreeDays(request.user.profile.agency.plz) - } + "usersofagency" : User.objects.filter(profile__agency=request.user.profile.agency).order_by("-last_name"), + "days_this_month" : get_datetime_range(activeyear,activemonth), + "nextmonth" : nextmonth, + "prevmonth" : prevmonth, + "nextyear" : nextyear, + "prevyear" : prevyear, + "activemonth" : activemonth, + "activeyear" : activeyear, + "abscenceform" : AddAbsence() + } return render(request, 'timemanagement/tm_ab_management.html', context) @@ -126,6 +187,70 @@ def TimeAjax(request): } else: data = { "success" : False} + # REMOVE WORKDAY + elif request.GET["action"] == "testdjango": + prevmonth = "" + nextmonth = "" + activemonth = int(request.GET["activemonth"]) + activeyear = int(request.GET["activeyear"]) + + #MONTH + if(not activemonth or activemonth > 12 or activemonth < 1): + activemonth = int(activemonth) + #Active month + activemonth=date.today().month + + if(activemonth == 1): + prevmonth = 12 + else: + prevmonth = activemonth-1 + + if(activemonth == 12): + nextmonth = 1 + else: + nextmonth = activemonth + 1 + else: + + if(activemonth == 1): + prevmonth = 12 + else: + prevmonth = activemonth-1 + + if(activemonth == 12): + nextmonth = 1 + else: + nextmonth = activemonth + 1 + + #YEAR + nextyear = date.today().year + prevyear = date.today().year + + if(not activeyear): + activeyear = date.today().year + else: + if(nextmonth == 1): + nextyear = activeyear + 1 + else: + nextyear = activeyear + if(prevmonth == 12): + prevyear = activeyear - 1 + else: + prevyear = activeyear + + context = { + "active_link" : "abscence", + "usersofagency" : User.objects.filter(profile__agency=request.user.profile.agency).order_by("-last_name"), + "days_this_month" : get_datetime_range(activeyear,activemonth), + "activemonth" : activemonth, + "activeyear" : activeyear, + "nextmonth" : nextmonth, + "prevmonth" : prevmonth, + "nextyear" : nextyear, + "prevyear" : prevyear + } + + + return render(request, "timemanagement/rendered_table.html", context) else: data = { "success" : False diff --git a/users/templates/users/base.html b/users/templates/users/base.html index 61388da..5ef0e75 100644 --- a/users/templates/users/base.html +++ b/users/templates/users/base.html @@ -606,11 +606,7 @@ function removeNotification(notifyid){ } $(document).ready(function(){ - console.log("{{root}}"); - console.log("{{url}}"); - - - + $("#notification_items").html(""); loadUnsendNotifications(); loadUnviewnNotifications(); diff --git a/users/templates/users/publicbase.html b/users/templates/users/publicbase.html index 8bfc389..7371edd 100644 --- a/users/templates/users/publicbase.html +++ b/users/templates/users/publicbase.html @@ -7,7 +7,7 @@ - + Digitale Agentur @@ -69,16 +69,26 @@ height: 100%; filter: blur(8px); } + +
+ diff --git a/users/views.py b/users/views.py index 02087ac..ce36cae 100644 --- a/users/views.py +++ b/users/views.py @@ -262,8 +262,6 @@ class AgencyCreateView(CreateView): @login_required def dashboard(request): - print("MEIDA ROOT:" + settings.MEDIA_ROOT) - print("MEDIA URL:" + settings.MEDIA_URL) # UPDATE FUNCTIONS BY NEW MODEL-CHANGES FOR COPIEN SOME DATA toUpdate(request) @@ -272,8 +270,6 @@ def dashboard(request): context = { 'active_link' : 'dashboard', - 'root' : settings.MEDIA_ROOT, - 'url' : settings.MEDIA_URL #"systemencode" : storageinfo } # Adding active_link