From 226eecb46e9b6c0f945a6b17d92dbf0351af27b9 Mon Sep 17 00:00:00 2001 From: "holger.trampe" Date: Sun, 26 Apr 2020 21:19:18 +0200 Subject: [PATCH] Modulcommit Zeiterfassung --- .gitignore | 2 + dasettings/forms.py | 25 +- .../templates/dasettings/groups_content.html | 2 +- .../templates/dasettings/moduls_content.html | 3 +- .../templates/dasettings/user_usprof.html | 61 +++- dasettings/views.py | 89 ++++-- .../__pycache__/settings.cpython-38.pyc | Bin 3921 -> 3967 bytes .../__pycache__/urls.cpython-38.pyc | Bin 2227 -> 2287 bytes digitaleagentur/settings.py | 3 +- digitaleagentur/urls.py | 3 +- media/agencymain/ag_default.jpg | Bin 0 -> 38719 bytes media/default.jpg | Bin 1938 -> 6068 bytes .../standards/standards_single_agn.html | 11 +- .../__pycache__/counter_tag.cpython-38.pyc | Bin 6262 -> 8925 bytes standards/templatetags/counter_tag.py | 98 ++++++- timemanagement/__init__.py | 0 .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 163 bytes .../__pycache__/admin.cpython-38.pyc | Bin 0 -> 204 bytes .../__pycache__/apps.cpython-38.pyc | Bin 0 -> 399 bytes .../__pycache__/models.cpython-38.pyc | Bin 0 -> 1058 bytes .../__pycache__/urls.cpython-38.pyc | Bin 0 -> 454 bytes .../__pycache__/views.cpython-38.pyc | Bin 0 -> 1912 bytes timemanagement/admin.py | 3 + timemanagement/apps.py | 5 + timemanagement/migrations/0001_initial.py | 44 +++ timemanagement/migrations/__init__.py | 0 .../__pycache__/0001_initial.cpython-38.pyc | Bin 0 -> 1423 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 0 -> 174 bytes timemanagement/models.py | 19 ++ .../timemanagement/realtime_dropdown.html | 264 ++++++++++++++++++ .../timemanagement_management.html | 42 +++ timemanagement/tests.py | 3 + timemanagement/urls.py | 19 ++ timemanagement/views.py | 78 ++++++ users/admin.py | 7 +- users/models.py | 31 +- users/signals.py | 19 ++ users/static/users/img/ag_default.jpg | Bin 0 -> 38719 bytes users/static/users/img/default.jpg | Bin 0 -> 6068 bytes .../static/users/img}/linkdefault.png | Bin users/templates/users/base.html | 49 +++- users/views.py | 18 +- 42 files changed, 823 insertions(+), 75 deletions(-) create mode 100644 media/agencymain/ag_default.jpg create mode 100644 timemanagement/__init__.py create mode 100644 timemanagement/__pycache__/__init__.cpython-38.pyc create mode 100644 timemanagement/__pycache__/admin.cpython-38.pyc create mode 100644 timemanagement/__pycache__/apps.cpython-38.pyc create mode 100644 timemanagement/__pycache__/models.cpython-38.pyc create mode 100644 timemanagement/__pycache__/urls.cpython-38.pyc create mode 100644 timemanagement/__pycache__/views.cpython-38.pyc create mode 100644 timemanagement/admin.py create mode 100644 timemanagement/apps.py create mode 100644 timemanagement/migrations/0001_initial.py create mode 100644 timemanagement/migrations/__init__.py create mode 100644 timemanagement/migrations/__pycache__/0001_initial.cpython-38.pyc create mode 100644 timemanagement/migrations/__pycache__/__init__.cpython-38.pyc create mode 100644 timemanagement/models.py create mode 100644 timemanagement/templates/timemanagement/realtime_dropdown.html create mode 100644 timemanagement/templates/timemanagement/timemanagement_management.html create mode 100644 timemanagement/tests.py create mode 100644 timemanagement/urls.py create mode 100644 timemanagement/views.py create mode 100644 users/static/users/img/ag_default.jpg create mode 100644 users/static/users/img/default.jpg rename {media/agencymain => users/static/users/img}/linkdefault.png (100%) diff --git a/.gitignore b/.gitignore index 8d54bba..9d79368 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,8 @@ media/agencymain/* media/agencydata/* !media/default.jpg !media/ag_default.jpg +!media/agencymain/default.jpg +!media/agencymain/ag_default.jpg !media/agencymain/linkdefault.png digitaleagentur/__pycache__/* diff --git a/dasettings/forms.py b/dasettings/forms.py index cfcea11..8f1d43a 100644 --- a/dasettings/forms.py +++ b/dasettings/forms.py @@ -1,8 +1,9 @@ from django import forms from django.db import models from django.contrib.auth.models import User -from users.models import AgencyGroup, Agency, Profile, AgencyJob, AgencyNetwork +from users.models import AgencyGroup, Agency, Profile, AgencyJob, AgencyNetwork, UserTime from PIL import Image +from bootstrap_datepicker_plus import DatePickerInput class AgencyOrganigrammForm(forms.ModelForm): class Meta: @@ -48,6 +49,25 @@ class UsersNotificationForm(forms.ModelForm): #fields = ['news_mail', 'news_push', 'user_standard_public_mail', 'user_standard_public_push', 'agency_new_standard_mail', 'agency_new_standard_push', 'add_new_group_mail', 'add_new_group_push', 'add_task_mail', 'add_task_push', 'user_messages_mail', 'user_messages_push'] fields = ['news_mail', 'news_push', 'agency_new_standard_mail', 'agency_new_standard_push', 'add_new_group_mail', 'add_new_group_push', 'add_task_mail', 'add_task_push', 'user_messages_mail', 'user_messages_push'] +# Usertime Form +class UserTimeForm(forms.ModelForm): + class Meta: + model = UserTime + labels = { + "holiday" : "Urlaubstage", + "loose_holidedate" : "Urlaubstage aus Vorjahr verfallen am", + "wd_mo" : "Montag", + "wd_tu" : "Dienstag", + "wd_we" : "Mittwoch", + "wd_th" : "Donnerstag", + "wd_fr" : "Freitag", + } + fields = ["holiday", "loose_holidedate", "wd_mo", "wd_tu", "wd_we", "wd_th", "wd_fr"] + widgets = { + 'loose_holidedate': DatePickerInput(options={"format":'DD.MM.YYYY', "locale":'de'}) + } + + # PERMISSION GROUPS FORM class AgencyGroupPerms(forms.Form): ''' @@ -77,8 +97,9 @@ class AgencyModulsForm(forms.ModelForm): 'module_files' : "Dateien", 'module_organigramm' : "Organigramm", 'module_messages' : "Mitteilungen", + 'module_timemanagement' : "Zeiterfassung", } - fields = ['module_news','module_organizer','module_files','module_organigramm', 'module_messages'] + fields = ['module_news','module_organizer','module_files','module_organigramm', 'module_messages', 'module_timemanagement'] # NEW USER FORM class UserNewUserForm(forms.ModelForm): diff --git a/dasettings/templates/dasettings/groups_content.html b/dasettings/templates/dasettings/groups_content.html index 81e47cd..4f6d88f 100644 --- a/dasettings/templates/dasettings/groups_content.html +++ b/dasettings/templates/dasettings/groups_content.html @@ -40,7 +40,7 @@
{% for perm in perms %} - {% if forloop.counter|divisibleby:7 %} + {% if forloop.counter|divisibleby:8 %}
diff --git a/dasettings/templates/dasettings/moduls_content.html b/dasettings/templates/dasettings/moduls_content.html index c434c2a..d9ca767 100644 --- a/dasettings/templates/dasettings/moduls_content.html +++ b/dasettings/templates/dasettings/moduls_content.html @@ -17,7 +17,7 @@ {{formfield.label_tag}} {{formfield}} - + {% if formfield.name == 'module_organigramm' %}{% endif %} {% endfor %} @@ -26,7 +26,6 @@
- {% for formfield in modulform %}
diff --git a/dasettings/views.py b/dasettings/views.py index cea9182..3213588 100644 --- a/dasettings/views.py +++ b/dasettings/views.py @@ -1,13 +1,14 @@ from django.shortcuts import render, redirect from django.contrib.auth.decorators import login_required from django.http import HttpResponseRedirect,HttpResponse, JsonResponse -from .forms import UsersSelfChangeForm, UsersNotificationForm, AgencyGroupPerms, AgencyModulsForm, UserNewUserForm, UserProfileForm, AgencyNetworkForm, AgencyOrganigrammForm +from .forms import UsersSelfChangeForm, UsersNotificationForm, AgencyGroupPerms, AgencyModulsForm, UserNewUserForm, UserProfileForm, AgencyNetworkForm, AgencyOrganigrammForm, UserTimeForm from django.contrib import messages from django.contrib.auth import update_session_auth_hash from django.contrib.auth.forms import PasswordChangeForm from users.usersforms import AgencyUpdateForm from users.models import AgencyJob, AgencyGroup, AgencyNetwork, Agency, AgencyNetworkPreperation from django.contrib.auth.models import User, Group, Permission +from users.models import UserTime import random import string from django.template.loader import render_to_string @@ -501,40 +502,70 @@ def UserProfileUpdate(request, pk, newuser=0): usertochange.profile.image = request.FILES['image'] formtosave = False - formtosave = UserProfileForm(request.POST, instance=usertochange.profile) - - if formtosave.is_valid(): - try: - usertochange.profile.parent = User.objects.get(pk=request.POST['usertoparent'], profile__agency=request.user.profile.agency) - usertochange.save() - except Exception as e: - usertochange.profile.parent = None - usertochange.save() + if(request.POST["form_type"] == "profileform"): + + formtosave = UserProfileForm(request.POST, instance=usertochange.profile) + + if formtosave.is_valid(): + try: + usertochange.profile.parent = User.objects.get(pk=request.POST['usertoparent'], profile__agency=request.user.profile.agency) + usertochange.save() + except Exception as e: + usertochange.profile.parent = None + usertochange.save() + + formtosave.save() + messages.success(request, f'Profil gespeichert!') + return redirect('dasettings') + else: + messages.success(request, f'Fehlerhafte Eingabe!') + context = { + 'active_link' : 'dasettings', + 'user_fullname' : user_fullname, + 'first_name' : usertochange.first_name, + 'last_name' : usertochange.last_name, + 'usertime_form' : UserTimeForm(instance=UserTime.objects.get(user=usertochange)), + 'newuser' : newuser, + 'vieweduser' : usertochange.pk, + 'parentuser' : parentuser, + 'mail' : usertochange.email, + 'imagelink' : usertochange.profile.get_photo_url, + 'profileform' : UserProfileForm(instance=usertochange.profile), + 'usertoparent' : User.objects.filter(profile__agency__pk=usertochange.profile.agency.pk, profile__visible=True) + } + return render(request, 'dasettings/user_usprof.html', context) + elif(request.POST["form_type"] == "contract"): + + formtosave = UserTimeForm(request.POST, instance=UserTime.objects.get(user=usertochange)) + print(formtosave) + if(formtosave.is_valid()): + messages.success(request, f'Vertragsdaten gespeichert!') + formtosave.save() + return redirect('dasettings') + else: + messages.success(request, f'Fehlerhafte Eingabe!') + context = { + 'active_link' : 'dasettings', + 'user_fullname' : user_fullname, + 'first_name' : usertochange.first_name, + 'last_name' : usertochange.last_name, + 'usertime_form' : UserTimeForm(instance=UserTime.objects.get(user=usertochange)), + 'newuser' : newuser, + 'vieweduser' : usertochange.pk, + 'parentuser' : parentuser, + 'mail' : usertochange.email, + 'imagelink' : usertochange.profile.get_photo_url, + 'profileform' : UserProfileForm(instance=usertochange.profile), + 'usertoparent' : User.objects.filter(profile__agency__pk=usertochange.profile.agency.pk, profile__visible=True) + } + return render(request, 'dasettings/user_usprof.html', context) - formtosave.save() - messages.success(request, f'Profil gespeichert!') - return redirect('dasettings') - else: - messages.success(request, f'Fehlerhafte Eingabe!') - context = { - 'active_link' : 'dasettings', - 'user_fullname' : user_fullname, - 'first_name' : usertochange.first_name, - 'last_name' : usertochange.last_name, - 'newuser' : newuser, - 'vieweduser' : usertochange.pk, - 'parentuser' : parentuser, - 'mail' : usertochange.email, - 'imagelink' : usertochange.profile.get_photo_url, - 'profileform' : UserProfileForm(instance=usertochange.profile), - 'usertoparent' : User.objects.filter(profile__agency__pk=usertochange.profile.agency.pk, profile__visible=True) - } - return render(request, 'dasettings/user_usprof.html', context) else: context = { 'active_link' : 'dasettings', 'user_fullname' : user_fullname, + 'usertime_form' : UserTimeForm(instance=UserTime.objects.get(user=usertochange)), 'first_name' : usertochange.first_name, 'last_name' : usertochange.last_name, 'newuser' : newuser, diff --git a/digitaleagentur/__pycache__/settings.cpython-38.pyc b/digitaleagentur/__pycache__/settings.cpython-38.pyc index 73fad64cf6c7a09520743f9d6a19cae8467f5f84..6c473d83fb060365cdb894991a0e81583b28151d 100644 GIT binary patch delta 339 zcmY+6IZFdk6ouzaW+VtnXQHEyOEe~qj^Mr_jP%CsYW!tbx?bxCYY*Qz8CVEGpn!R%Wpo7UoZdw delta 299 zcmYj}IWI(E7=^#@E=(jtWyZx^`!KF0u`h#R?95okSWZE6ZoXWtMyJ!u6dDmX(W<7I zzoAj-MEndsHwq^?Pu}ws@3;HvdgXY$LFlOa=kshrh>zd#KaL(b-K*O>@8w20XyzEl zIl)OzahfxnRWT$uha~5fpv^27xX2~ulod!WKUhklg)4BF=c+b&u0>prxDiNYp_Q9x z;}+VvjTCLTx*gm>CwI}s0=ij55BG4<>&r{y$&A?N+o234_mcwY$n^VZ9)t!4c!UEHlFZ!H+{C=Z^wiwcyb`_AqMYJee5it&j8U7@*w~pET_)#o*l;rnykZjP Kd&wff!3Y4sbTGXD delta 138 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�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 literal 0 HcmV?d00001 diff --git a/media/default.jpg b/media/default.jpg index c1390553f46b7e01460d43e160dd16d8a9513233..1fb7d8cfa54b3bcb9da620de7927e4bc5ddcfb98 100644 GIT binary patch literal 6068 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 P_un@k<^VnSIqm-f0_)yP literal 1938 zcmex=^(PF6}rMnOeST|r4lSw=>~TvNxu(8R<(iUwW$pkka<)WpdpCN3cY31zV>gMj@ z=@lFj8WtWA8I_!pnwFlCnN?g;T2@|BS=HRq+ScCD*)?hMl&RCE&zL!D(c&dbmn~nh za@D5ITefc7zGLUELx+zXJ$C%W$y1juU%7hi`i+~n9zJ^fI8~-!RTl=4(X4XY)LFBcve8ufs zJl5~(-|4Gud}lg)W&gVqowaSg0p;bEm9qQR&Pro=!T!|SRV2{0Y)c@BLO~(H{<3@0 zJY%%_qYmx4mNH*6f5zjNyLYZR_hg>utLj;hIMLpUY4s}cUsJ-ex4%DCrSNa-dH+J) zEAvv$?)WC#>I$_$^wvdGs{&nBQ?sHLG|Wg)INcY$=|98Q*Q}jsI!C72OsbmY1&jUN zQ7{%PL9Ce@9%%OZ$)WnH!;}AB{Ab#TFc!l{q1mUWZrN5Dz2QOCysM{-xAa}IRK4+J zvL_xb;nr*KRBrd?u-8def0bZBT2~q^1dr$Oy_WIc; zE^k_vt%qb8hRr)`L%+WY`p>YrbyWyH(@w_Ed1bEtcmK=K7f9~Ga9sZ`%iS~nGi=M! zLh=JfG(A?aURwO>_|MD8e#0=UJAdE(_wvt?;zJ}n8xc9+q#2WQdQ+wN#a^VS&_MU& z5)}qd3#OgkpW6PVx$!LB#IfoM9-k(?p6;_ycf#X>)5(`MT9qMr7Q^6mzcQj+%MnuKTOD; zjZfLC>nr!2N_{=WVx3P3vePiKT1!g87t><~T5p!GNdEH@DcUfT-qb6L46}@S63oxp zO%1}Asy1%DU3>9(!Q!db5x>J^k*tqhi^Ks1mQlpDh*{>6VG^dN?%q6|t{Kj<{KGyA z)A&_w2M^jJB@c`=q{+d);%v(66Rc}oco@DmBhm$W*oy>4R$c$o?D>92z18y-@E}|N G|0V#`S19oS diff --git a/standards/templates/standards/standards_single_agn.html b/standards/templates/standards/standards_single_agn.html index afb7b32..0d6b2ef 100644 --- a/standards/templates/standards/standards_single_agn.html +++ b/standards/templates/standards/standards_single_agn.html @@ -100,12 +100,19 @@

- + {% for comment in comments %} {% getcommentstat_user comment.pk request.user as cstat %}
- Von {{comment.comment_by.first_name}} {{comment.comment_by.last_name}} am {{comment.last_modified_on|date:"d.m.Y H:i"}}
+ + + {{comment.comment_by.first_name}} {{comment.comment_by.last_name}} am {{comment.last_modified_on|date:"d.m.Y H:i"}}
{{comment.content}}
+ + + +
+
+
+ Arbeitsbeginn: 00:00:00
+ Arbeitsende: 00:00:00
+ Pausenzeit: 00:00:00 +
+
+
+ +
+
+Gleitzeitkonto: +00:13 Stunden +
+ + diff --git a/timemanagement/templates/timemanagement/timemanagement_management.html b/timemanagement/templates/timemanagement/timemanagement_management.html new file mode 100644 index 0000000..7ad4256 --- /dev/null +++ b/timemanagement/templates/timemanagement/timemanagement_management.html @@ -0,0 +1,42 @@ +{% extends "users/base.html" %} +{% block content %} +{% if request.user.profile.agency.module_timemanagement %} +
+

Zeiterfassung 

+
+ + + +{% else %} +

Das Modul Zeiterfassung wurde in ihrer Agentur deaktiviert.

+{% endif %} +{% endblock content %} diff --git a/timemanagement/tests.py b/timemanagement/tests.py new file mode 100644 index 0000000..7ce503c --- /dev/null +++ b/timemanagement/tests.py @@ -0,0 +1,3 @@ +from django.test import TestCase + +# Create your tests here. diff --git a/timemanagement/urls.py b/timemanagement/urls.py new file mode 100644 index 0000000..61a4812 --- /dev/null +++ b/timemanagement/urls.py @@ -0,0 +1,19 @@ +from django.urls import path +from django.contrib.auth.decorators import login_required, permission_required +from .views import TimeManagement, TimeAjax +''' +Permissions definiert in models.py bei USERS und dann hier vor die View geschrieben! +''' + +urlpatterns = [ + path('', TimeManagement, name='tm-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'), + #path('news//delete', permission_required('users.modulenews')(NewsDeleteView.as_view()), name='news-delete'), + + #path('standard//changestat', views.StandardChangePublic, name="standard-status"), + #path('news//single', views.NewsSingle, name="news-single"), + #path('standard//area', views.StandardArea, name="standard-area"), + #path('standard//task', views.StandardTask, name="standard-task") +] diff --git a/timemanagement/views.py b/timemanagement/views.py new file mode 100644 index 0000000..20a139c --- /dev/null +++ b/timemanagement/views.py @@ -0,0 +1,78 @@ +from django.shortcuts import render +from django.contrib.auth.decorators import login_required +from django.http import JsonResponse +from .models import Workday, Breaks +from django.utils import timezone + +@login_required +def TimeManagement(request): + context = { + "active_link" : "timemanagement" + } + return render(request, 'timemanagement/timemanagement_management.html', context) + +@login_required +def TimeAjax(request): + data = {} + if request.method == "GET": + if request.GET["action"] == "start_day": + wd = Workday(user=request.user, agency=request.user.profile.agency, start=timezone.now()) + wd.save() + data = { + "success" : True, + "wd_starttime" : wd.start.strftime("%H:%M:%S"), + "wd_starttime_complete" : wd.start + } + elif request.GET["action"] == "end_day": + wd = list(Workday.objects.filter(user=request.user, agency=request.user.profile.agency, end=None))[0] + # END ALL BREAKS + for b in wd.breaks.all(): + if b.end == None: + b.end = timezone.now() + b.save() + wd.end = timezone.now() + wd.save() + + breaksum = 0 + for b in wd.breaks.all(): + if(b.end != None): + breaksum += (b.end - b.start).seconds + + data = { + "success" : True, + "wd_endtime" : wd.end.strftime("%H:%M:%S"), + "actualbreaktime" : breaksum*1000 + } + # START A BREAK + elif request.GET["action"] == "start_break": + wd = list(Workday.objects.filter(user=request.user, agency=request.user.profile.agency, end=None))[0] + newbreak = Breaks(workday=wd, user=request.user, agency=request.user.profile.agency, start=timezone.now()) + newbreak.save() + wd.breaks.add(newbreak) + data = { + "success" : True, + "break_starttime" : newbreak.start, + } + elif request.GET["action"] == "end_break": + wd = list(Workday.objects.filter(user=request.user, agency=request.user.profile.agency, end=None))[0] + toendbreak = list(wd.breaks.filter(end=None))[0] + toendbreak.end = timezone.now() + toendbreak.save() + + wd = list(Workday.objects.filter(user=request.user, agency=request.user.profile.agency, end=None))[0] + breaksum = 0 + for b in wd.breaks.all(): + if(b.end != None): + breaksum += (b.end - b.start).seconds + + data = { + "success" : True, + "actualbreaktime" : breaksum*1000 + } + else: + data = { + "success" : False + } + + return JsonResponse(data) + diff --git a/users/admin.py b/users/admin.py index 5108f47..e008407 100644 --- a/users/admin.py +++ b/users/admin.py @@ -1,12 +1,12 @@ from django.contrib import admin -from .models import Profile, Agency, AgencyGroup, AgencyJob, AgencyNetwork, AgencyNetworkPreperation +from .models import Profile, Agency, AgencyGroup, AgencyJob, AgencyNetwork, AgencyNetworkPreperation, UserTime from .priomodel import Prio from standards.models import StandardCommentRate, StandardComments from django.contrib.auth.models import Permission from message.models import Message from cloud.models import DataFile from organizer.models import AGContacts - +from timemanagement.models import Workday, Breaks admin.site.register(StandardComments) admin.site.register(StandardCommentRate) @@ -21,4 +21,7 @@ admin.site.register(AgencyNetwork) admin.site.register(AGContacts) admin.site.register(AgencyNetworkPreperation) admin.site.register(DataFile) +admin.site.register(UserTime) +admin.site.register(Workday) +admin.site.register(Breaks) diff --git a/users/models.py b/users/models.py index 6465175..d18d342 100644 --- a/users/models.py +++ b/users/models.py @@ -88,6 +88,8 @@ class Agency(models.Model): # MONEY balance = models.FloatField(default=0.0, max_length=9, blank=True) nextdebiting = models.DateTimeField(default=timezone.now, blank=True) + monthlyprice = models.FloatField(default=25.0, max_length=9, blank=True) + # MODULEEINSTELLUNGEN FÜR DIE AGENTUR module_news = models.BooleanField(default=True) @@ -95,6 +97,10 @@ class Agency(models.Model): module_files = models.BooleanField(default=True) module_organigramm = models.BooleanField(default=True) module_messages = models.BooleanField(default=True) + + # KOSTENPFLICHTIGE MODULE + module_timemanagement = models.BooleanField(default=False) + module_timemanagement_price = models.FloatField(default=5.0, max_length=9, blank=True) # Steckbrief dynamisch aus Standard dynamicprofile = models.BooleanField(default=True) @@ -158,7 +164,7 @@ class Profile(models.Model): func = models.ForeignKey("AgencyJob", blank=True, null=True, default=None, on_delete=models.SET_NULL) # Wenn dieses Profil gelöscht wird, wird NICHT die Agency geslöscht agency = models.ForeignKey(Agency, on_delete=models.PROTECT) - image = models.ImageField(default='default.jpg', upload_to=picturepath_user, blank=True) + image = models.ImageField(default='agencymain/default.jpg', upload_to=picturepath_user, blank=True) compfunc = models.CharField(max_length=60, blank=True) visible = models.BooleanField(default=True) persnumber = models.CharField(default="", max_length=50, blank=True) @@ -197,16 +203,6 @@ class Profile(models.Model): user_messages_mail = models.BooleanField(default=True) user_messages_push = models.BooleanField(default=True) - # TIME ELEMENTS - wd_mo = models.IntegerField(default=8) - wd_tu = models.IntegerField(default=8) - wd_we = models.IntegerField(default=8) - wd_th = models.IntegerField(default=8) - wd_fr = models.IntegerField(default=8) - holiday = models.IntegerField(default=24) - loose_holidedate = models.DateField(default=datetime.date(datetime.datetime.now().year, 4,30)) - - def __str__(self): return f'{self.user.last_name}' @@ -238,8 +234,19 @@ class Profile(models.Model): return self.image.url else: return "/media/default.jpg" + +class UserTime(models.Model): + user = models.OneToOneField(User, on_delete=models.CASCADE, blank=True, null=True, default=None) + # TIME ELEMENTS + wd_mo = models.FloatField(default=8.0) + wd_tu = models.FloatField(default=8.0) + wd_we = models.FloatField(default=8.0) + wd_th = models.FloatField(default=8.0) + wd_fr = models.FloatField(default=8.0) + holiday = models.FloatField(default=24.0) + loose_holidedate = models.DateField(default=datetime.date(datetime.datetime.now().year + 1, 4,30)) ''' @@ -270,7 +277,7 @@ class AgencyGroup(models.Model): ('filesmanager', 'Dateien bearbeiten'), ('filedirmanager', 'Ordner bearbeiten'), ('filesviewer', 'Dateien lesen'), - + ('absencemanager', 'Abwesenheiten verwalten') ] # SUBCLASS diff --git a/users/signals.py b/users/signals.py index 05e0614..961f181 100644 --- a/users/signals.py +++ b/users/signals.py @@ -13,6 +13,25 @@ import os from django.conf import settings from django.utils import timezone from standards.models import Standards +from django.contrib.auth.signals import user_logged_in +from timemanagement.models import Workday, Breaks +from datetime import date +import datetime + +# CHECK SOMETHING WHEN USER LOGGED IN +@receiver(signal=user_logged_in, sender=User) +def checkForWorkDays(sender, user, request, **kwargs): + today = date.today() + wd = Workday.objects.filter(user=user, end=None, start__day__lte=today.day) + + for d in wd: + d.end = datetime.datetime(d.start.year, d.start.month, d.start.day, 23, 59, 00) + d.save() + for b in d.breaks.all(): + if(b.end == None): + b.end = datetime.datetime(d.start.year, d.start.month, d.start.day, 23, 59, 00) + b.save() + # Deletes all Notifications added to to delete news diff --git a/users/static/users/img/ag_default.jpg b/users/static/users/img/ag_default.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c8d090439960a0b34f692d67103a2d5d4e942378 GIT binary patch literal 38719 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�^x}-$lFk>+Nb{i-6ZbK4|8ACwkv1cl<&tkdKhPmICIy>KJRL-{PVT?-*yssK2 zG}$EtqshEFIs%-gxZFf);}mt~)GDdIZ@Gs!W+R@4p=i+B<$_gJkPKgE_dMI7an<6E z%U&Kw;}=&$ma!&fqO~jubnncTB(~_Q#=exl`!P3yP{`->#pVR8*p9AmKTj7WXYw>kZ)!@o0f z8r)Q_ye4t%^>XYSvPC%8L$Hx;$r1C{nMY*T^qfUYdK3a|#nXuXxk0sYNXMEAf{wi6 z$k`_D7B((1H7$1J*C=;R%^TQh7HBN zn{IJm7Xgo>15XSGCm5i${KGX8{BytJzAdB#OLGBPRg?$lB>fHNC~j`ZmljK zOp7r0xY&?0xjzo!Qt!>&UhVV#BFx=o6_^$j7zYWgsvr*heWXP0W6~tE z$%4kay~^hD(xH$Y=99zCXSPFk4+eU%H~%`?DZ$V%g710!rOmFsHdTvG2A@p7Z3zd| zEmDxxfd-AGJ1c0OV0)~RCHIdswu9Px`Sa9*EHISKwlt~+!D};ZpU0s3yR-E+glKKq!J)Ejpx
xz1IQ^&O&>A^xA&?I-=Qw^NZ5GF?NujHIyqq=teBmxq1r0#3;cx zmUXk?5!c1tX1AKfBg5aS<9Y=57?!r5v61xK=rF(9T7Mt;Y3ncMLgyxrL#EUNwG()w zkNX|gqj9=?_o){fsPebMediP zYo(!K&K$;3LU83tE1vM)+Sr2`no$>nH~A-;%I(@x(8Gb)lEeF=+p(#jHA^yP^*+3w zPw@+FA|ZVh*v6h`gMbmy&(`@=(rv(MWp2NvOy8LXSXf1=)}s%{d(9H8`(q?Y)-AU$a7Bx^G#*%(&; zHbO!BsvNFTudX7qMRAQb;}6IY7jNFzmLZlH;E#C{iZ|r~PT5Ov6yte5_7vh-1SAa$ zI}nd087p(kJu#iRs@5E7L4!AG~K`e|7im+Pi_}}V*l`bX%Aw(XKuhawWof1bC0Q?v-Tz{)7eV^xf39#9y)sc zqviFACgi(gu|e2s$@xC(7Nsna$xo-Y^rPm3mh1;FJzo(DC??`6AJSWANzXw29->qp z7Xs34aL-G!DAyKsmSX$LSuMuOYIINNdDhvBZgT~*w)g54b?_W-}35wi*5Bm2NW*-pgrWt)2W(LdM%B#8H%!0iB5%WG}NNBq8DgiaOWM zXY4GQM&b`PbHNJwlQLj4A++`MYzNTt$mH))S6mU-2eqy|KOf~ z=f2ruAQ!V(n$2x%dYf;CJf7P5&|CsA!TeI*H)BF7t9t3A9NPu_B>{t&s57YCisy>Q(z}|3>1Ja(M5+1 zO~UyVG_|5 z`&QDyeTF0=X-{PBEK<^Y?%VvsZm2rdd1XM01eTg zd6JM)ShhRvs%Ng>zKgdn47`-})%&P-%EGhXtWDa+h%w5$lcM+E_ZB`{(yeGyYlU1@OhK~)uWZ$Sfk#a}*RCM!`m~X>l&I(iZZ!Xwbsva{) z3wl4VN79#pp$7%9;#I%s9ri^f-F-#fRb6X}VHGbG(jR#A?(W<^b8hE$n!u3s1iY;K z2gkGm_Ikh%`_I8|R|4}H?=OTnDt-5WjD8`xd`A>}1$Rxt3l0^~MOm8b8o~R95nj1% zmG?T=8eI0R`U?64%&ys3-P4S`q0`=8oWpx8eo=dnbx`(m#C!5%HsaJToZ|FB?%i_K zV@T^9Z=KH@B%+h!lHmCj;+e)0-5muo1Hq|JKRi!LIUZLiBIre3@{?)%39+tVgDJob z`m(#hN^sLs#vu;-1Z*%7ij@sY;^9IvF~I&79=* z9t=WkcqLlQ7{g&)5&9@^aA&a$F>$P3cF6l6%^$ogmzD)Pl{#i_}z5Mafh-!?>H!+ZK10)breoho# z9>I*Zt+J69h>8*&8wV9{e_U0bbTOk!Jn7hJ^|P^%&rO~sI49+%(?yAIeaJuFiac&& z2vTcD%DuEKO+E5hcWf7ypP|2lubK@i5ll$ZR5`jDb7-TP$)os|)#M6h4#dH!QOgCbB%#S|ZQa&;R9luy zzVJu4?s9bQ#R|w`g_eO$NIJkz6OCI2pOt@(kABdRdg(}iJF_y{s#x^R#@Z(*MoFRZ zSl1|)M0%pjH-$f%Yeo`_?;=Ve(b}3<1C^NM8^XQMy-%>Z!+bPUqW+`P+QD!AGx0J~ z#oQn~RY5-RHGy9tO13_fCeI(&F;e08@^y!O3#=VAUXX__glm37mzmreD;)TaDU#cN zr~b3d+c@wl^C!n|eM8fTo_QRiw=?en^eeDP&FG=U{IgDThx@yGw4Dr#4ymJQk0uxK zV9Cn_j7noo1#vjjBw3R;?8s_fz4w)S(WN8PS*Rn7HF9C zK%-&(0|k@po_u*=>K=?vj&RVNPLIn*#w>9iD`(^KJ`8lOEIdu!`O}xX|I?- z9!*Sfg*ova%bDQMqkbpR)vYxg=(-5#(%~D+`cr||YVsan?s1&t3_CPF5!f`{VIVz3 z;AWe5zv6_65*bC<+{6X#LG@90hW!!|bYoUo*u=-}OKPW|R*x)tKvbO`0r&mW+9^ve z>BG#2Z~aPmuSOXteMK+w7<3dmGf=OGER`8FGJdzbPW0tT`|^1BtWN~dC!b@pqCgdr*eEX1e}>!nv#-0_35>?tDF zZ%*!gFlDK5WXZGQ$<;Q=R(wG|w`hqUs62pEmL^1LE-DA+ldL&@xJJN9o0&8YF_sg^XnbM|s4%o5>oYL4uKM{qqCc=> z>Pr{PH7DcPXYTpOG!#4T&~bT}#46;|!72993FL%Bw(HB!Tf;LE9hZ+t@FfmfA7w&9 zs_?{}kr5=wSLqU4%);A_+fAIy%6`c{wKvmethgQT&ztdkmc?exK6LWtzQq1B?&F4p zg29d_TtSKVnVHV&VOx=ea#NIFJfdS&e}w&Rot9+vwXega+>^{*;l&ntxe4oRY;VKm z=1VIreo`+Jn+p0Xx7=No7KaTrWiHY(mpMtA<5$t*yDAP&0%CaW9g|5Xb~$%08DITxe8!7luA->E-kxtvQ4i5g#d7@-W@1G@_41 zihsoiI9y(ikBr(CrM}B7@&))^YHg{zi)vv$#`>aq{PU5`4vMJVRk+i-U>(&2K^>0t zpyd;2L$n9(d9cGXNbZ2~X4(RO?y@z{jpeZ{(mV2iX1L3;oi&%^G;eujl81qKrYqY- zYV?>U-JYIKJTg5eZh+vC7e8bfXC~2Hi_H70VyuEg*>t|2xP8On^e+*T4WHTDEZaAJ zDYK@AuVOLu5kbR2w4|_Y4$lSh)8VC&xi%xwZ*|Lt3e3;0Zd^N6lDYua2Rv?< zvqZ}{texkiICc0|*1kO@v8mB-&W(bd5V#w{&1v1Fv>^n1)cm(vqtR%+$?V{z>FXx4C#UTPK!Jmem`cA+u#1YGmCtt=c_Wla|IrR1EmaDWI zkIhQ?)C;|%>0hW7bgP{Sw8p9vAF+m@r>6odBoaqkJ?&Jj@F#!OIG;IlNmft6(i3kV z9bWxSh^YipsQJL2ZWS9Q`Lq$+shg4xx>Gw+>UGa#Gu}06Bz5%NjB@nDs6ctm%(pl9 zOcwQ2rwn1)#VxW{24gNXzkgPK_|m%>iG_f#XKd1<==ObB7&g{iV*yEAx($-4rwRl% z&O4gjkTxyc^tCFK9Q41;>oRZZwK6OE)KS{Nu$N17@`TesU3F$3<=#V`Iyi~elqZ~y zMSj{3dssU)V8A}(fb^Kv;7Y2(Ug`OQzUd{kOM0i|`tG=Ue0vb|dIy&%i{7B_h4w1& z;{t6Ckf}M2xW6PraAY<*Y*o@h+VYy|tf#73115S!NyhyQE^sJb>by(B6S5OUH_&Ef z?roZh(Yf@Eau!-t7gKuf58Nv~2oggJ_U(IqctWK}d{j{Wn_2Hd@a&n}7w%q*QO1iU z?r_eu!fa$7*uNt1m6{l-1v=q+yndh}67U_FgJQUty}*d{FAzsvkDE|Mp?(*iKqRn!z6y^QxG^rCK>=h8|xVAKk+4<&5Zkc4AcV zVBYDy=t#3RaZ&e0w@0ODi}J2#@d_fl;Bi_s+xwcqJMJRL>yR@sO~^E?sCu1jX?#nH zmA`XaRrCnoS+5h>qtVytM!28#DR|$=PR5H#dax5+>cD(5oViqc`bzx9_C@Roqc*&q72X%+P&6X_{h)Yp2>E?k&4u7xbCb1QfCBFy3Wd!G zdS<3lh1^r2(=s+xCbOE#r*+40@7}1%JGl6pFUUR<$;y=m%@Rky)d(nA<7ulMkocJJ zh`w^GiM{807FVhLJL8^tUE(j@9$UTN?sfI*hKp0j{aN!Ezv{6V*2aNTr1Cw#R}^M2 zr(NI;c;+^EwUd=I?9o7J92LD#nDTV=eZ?{(pLR75zfZRN$d>t7Q9pf=?l3`!{h8DY z+#O3l32{6l@GCe5G1Zqw@G=OZdZ^Vqa%bsEPLZpbQ55ed(V35~N&=N~G6gr{;~Tc$ zR40mR&g(y3a~OEZ`eNt+YiJyQETXT^iFhX<*|#&_sQ4;A`Qfa{s#Z{7xNO05uKY6> z)MTpT#^VNFC}gr$Mp?VAj+SQ9|K8+4Gf38AQWb{)0lAktYBf&v@E9k=e`>*Z>cJA^7piDO51mRSX`AsQZMsNnmXupvbx?joSRh0f4V*V{#vN*{(`Jo1*4uf z)0}ec%yMn39N_OQ&f!5BzJ#>?%l4K-WWlIac~-TH)AUjsB$2+``lcqiqi5D@w=(uQ zyPV9zo}Kez%#h3ZGX@%;*9$0^anEF1p!Y&m5EgTw6Krr2e$n#j# zSz`~+$il8MboNyx#-Rg=4GZfJzeyNh;VR8|YQ1=eVRpdv)vAfqIF&O39)C^Q4ORfP z;NhiyAq>W5#E*Z3-?+z|cSU9LnqoOiR3!bu47M;8i-|C224MJxMMw#_~p zLih15w|@^%=ClFo#egx3L%z<{TU?SqJS-J=Er^VT9}k1R^v(!BlBn;!I-8X|gEL@# zj3~|mRufWaBO2GjHOhCSbLK_~zcBBmp2Uy~C*knQVBl+ZGf2_mlPVrG0SYuTxVG3rZKh&dp6Fn%wvl2-4f;oMclH-! zI-GWJ&x`pYybt7pKsRkS1J;mo9XO*a{m;IpF71ju(ONcan)$}&h4-#!ZQ!|i=-1jK zB(?^>wVsBE8Cj!mC+jCL;Vn4Yp2L)c@m^3#FZk9;LAN)Srg3lQ?b=tc;mB=&u74)E zS(mxt@!h_O#>njQu&~IQ2BCRg~<2%7x(q&U;%~~%n zr$BO*UFF{Mf$f=RY+sxW<(0j;8akXM&;zdmbK#IiENv;U2kf??aSs*C2(Xw~Ds)TA z8Y{GV-zA23;Lrbt`N*a#SF*2H=jE&3*9t20P_y&nbr)-g6Ikh}L9F?JGwZA0)z<{B zso5R?8+Ej+s*bB24@^yCd44xXxp-*!@1=VA zo~jY*oDotL>@ovILe}Zgh}o@PKi{&X>cu#o0p+i?lVkO)nL8h2$|q@-1w+|kWazcy zE#9K0#J7uwSzhnGHS`z~Ifs%j>`iEt#Ozu=q}$THGw0Oj`Qb}PKpt(lR0#I#ame-? zM4-?pXJjbYsgL;f%|=qBi4!BgZd9t-cT16jGL;yu#`uN8&&p}NOumT4D)Vnd?WAVoz>)%GI(d0y=6KSnb(!SZpYNo(=o-MWCTm=*3OKf z#m3K_-lwQzR@4_eHRn zm|D7au9aUl5q(8}Y4hZo#mMK6K96#)26wY3D74x;lZj-2wQTXCH8im6qHomJJQPDrZF{WjbO(*vi^{wp&+o?js zo#m%wN{uxYqhE|Aj=3;Sm$8^(dgKo?UnFv}(Eg}vfTr#YN~%ZlIZP9lg0Av4@g;Hc2DqP;C3Um%_Z2SVtr0&l$Hs?@W{9aKb0Q>H3A~ID?h*R z%-iCqN=M#4+kS=HKO$3j_D=K3;9yWwC*3ei%GP;E&@A+cRr80#y%L z6j(px0U$N)LX$d;;^)6OCjx$4W zmu2m(pJQ5kSHvy>&5vxTjG0P>L7XN9MMGhiUmSa(J@gxr0YlCX8?+xYJ2gtm znDq1^L<5O(;7$99ACOwS^!3Luy#k`03k} z(^BZH(Vc9ebX=U;3)b z3Qt9z%IJC3{4!graQNAKSGD6~Ww3S1<(EEw`XR`5NdA`DGsRgK`T-IULIj)Oacw8w zpEoYxo~BrS9h7}?V%Q`JhtO9wW=Q`iWL=_A+h}<5=#!mn_~5j!f=E?+!Am`zg+nAm z(Nfm10cw4VwD}X!^5fMbkOTI|6AWL$htcT=%wNYh%HjhJsR^0%9qj3(Q|?V+f2Z9Z zdRf-KA#{H#)N03q3d(3)6y#Qt2{{~zX8xv@c+;m9yd~M^jL_{GH$n!7I%rND}D8+{oR!XjVv1j@A=s z7`(Q;Qi9}}Vf!&?!Cbg2sMc$v7-{*lyY(Vg zY~hR$nijb8TIjLWn|UZKnvsGJai-+b3*wn@vV3eiG~=l#TQZm;)j(vOHl#j!@JKm zY18|*i|)g$1|Joj0F-Db0_-v~bKB7%hsorq`TpDlDx%G_F_TaY z`~Dl@e~%{EzZfQa0!VZ3!8p0fP#db8-p=+T(a_2jXNyXnkqLMMt-0x+hhT}OJ2`mk z-&vC`>xawr0U*QR-&PE{fd(V?G{prP>oBYQpZbQ+%GXSW8ArTu1P*q)mI!) zR!_ynyeT~Wko0%(-->fJB6MTVE|_6SzS9SH{{u~(iwp#-VWd{6=m~8OO~~ZDd-S`% z4)(V=@;!Bf9u7+Q3#qrzoHRN_oTOoi{x=MmDB2Nfz6Z*x;kDP+eBx8TUR00qEVtfF z1Sz~rVjV+=%puPZ71trUk+YHtpt7WJCr!<;CP^aMS7r|eBaiKa|NcG6~c8c zuKXy+?42kwYgc4?SU*7E_upvUW-!Uk5qQKpwFG1z0pAh09WLWJXb5@OX6m%JvxZA@ z7rpye)}z%2&NS8(H~88$!E2g#%;hR3ArN zp+%#~-Y@*K&v*-UidpcuM*KVSU=2d-b*g7}0cbq67^TfwI&3)2=vId1^ut?)%^&MD z!sTSE?rH|-wexyVg1<+v0ZltJ%}-x}Os+(|dkQu5Zq9p(R3@qF$m4}?K@v*NLqbwx zL|{>`4M_ZgkB8rx`3F=T0b7V}qqmF)@>CVT&QKCDXlkJX?qG?*|p-ZP_4)BvK zaNz==xG-%*6$niLLHF13i8j-QYw16b2XE+c+ac%JOLvz5p%K5-)wd^ihyL;x(i?E( zADW=f!UMs(%K$Q$8zJFFgi|4TPgYM%K=6r@4m4aZ=47Hs&TU`-)74Hg9|urtcwRlbF-{SI5TvQljd;r>zLW z$K&72of&3#?8WY_@kmR+*XqVM7~21G~$IsV1xySWN*R(&}6!6-MQ?G zTO+Z@*0f5acl2jDvO^oK)X+WY)tlI*W;Kk(mAy1xMc}NFEPyz(lm@=IYTq;UTB+Wd zwWXT+*-5%s`sAnin9Crh_T7kS&|fg9^#jky4*#k7fEUU5tLhKf=qR#k(K%cQ6P!En z7Y9*cPSp_3ec|n`ekZQ_B0MOCU}DS_jTU~dL+m)Q%V`biO!ukuMs zE*2(8XcdAmgT~tUWUzyfs7)of_;Uk%5b|_3_8(Xsu$KKS;F&xB*hmiB7DTJ0UOxRR z+rjRHZUMcWGe6BWuC5@k!C3fB@bqJO0I?$=^M%+GwWglT^r%il@+NbqF{S(+XMY zx0LFr1~Arui%&SWG`g?#6L{!5j^HS$?p!RvF>qp+Ua_n14L{BBlliRMW4lm2vw1a{q=FY7v*-5V~OAlWu*K*d#{sV-mi{^$^PiWZO$-}O7)-$rT z?F+NjlU%QUBk}noZv`L1OWqMQ;;SM2pZx#1D1=|YFP||`gzI1w?^E63U*0d9Ipv@) zQ{r><%3z|~!3E8>9b{O50-*@+HK1%Ky@?mBx@^}>ZGvVF z<)y5hY}DbdYa4C75HNjqSOx++Xa-f|;{hy?ANng>cvjptOu16!kMrcbM{oy(F*J!v z?P>hN(%j+#2nNFs%dv1`-#tC0 z+(Q&$*45f|@a?ja7$!&j@GUPwA1#)ckL-6@yra)1=>Iwqls}~MMaF(|MtI3ZUa=%A zIv12jLoVDzgJ1$i;MvlueNoo$Z=*(?+N{%paofH*uO8Ysyd@vO90Y=?PMa1k;MKx~ zuR`{PH0M1&_dEmWErYd<0@|lPC3`rLv8sYO6%0-7)K{90!z<0hL0Suf&QitLBC`HmzvrwNbUR@$0!{5T1r|Gy0bnL<$xU{;;>GFKXG$)XZo^i4Yqr+G89w0MM@ z|D4Db&iViRQWbC8)_@AC{dY@kR_`pt@re+b+)%I3#|8NR`#do_&eRef`<9bJ$9v)4 zpm-JeU73iy`}(c>xV`ZI+xe@FDKvEK`TSOHRTtQ7E>~w1TCVuK^-GER|NoUoc$Wss zP5WG_h|KZOq~H(XLiZb`i>H@2vKk(IFmX{D}kxf85R#Idb= zZiW9qL?Q+r@yKDRZzpoCyyFdVt$Vn7}JstZ*wvifQtWlPz(RA5P&3FuoHg18G z*(wkaCz_T5xm%G&DA1^?jrbz% z{qN_Vq6q)z`v3cQ>4~^@F4arc=dVV`s?Kb_S@B+XpM$ijq~o$e9pHpEgEojn&_?SSA0Ti2_=vEmwc=l&}^b z@(CiwQR5#AZIb%MoU&B;wbHtsG&UczB1PmPSO2pkexz#HEHzk&%6ueqG`27QSsotk zv*|GA7GP3Ok^WRuKLQx5tr)!X=n6@hCIA{&PnQL2<%c&Mtjl_$^#AD@>MiDnLBG+D z+iSX84(Yk8fE}O0Be9pR1poVbAh)SFmkIj%Lr2w>KZUVQ2Abbn0KcEJQ`W=_-n?5HQZN4&Iw8E<8Shh2RvaKi6odwx zLEL#*ja`%`F(f4F2VU!)z~vhCCVhM=m(qm03CqPNJ;~R~ev7B|t8G`kiC7}+BG?aM zfBN4j2tSD4XQ1wLp&*#j$nEM3d{Y0g{^NvX+jek3IW=eQaK3C*Eo>I|2(QZv8_9n0 zVgT8oc%2<&?*@Df@RdrueZa2Jk7EK5xosJw7GQ<22p=-vuu3g z21I+E5XTg{B{;YETnyaw%p_nVu0n9N3quxH++$By5I#h(GmBBbN;Ibz23T_00Mz9%1yq!esXXbC;h zoV!tGa+T4+f_j9U45AxP!7L<2Gh{w{rzmAV=S8?)t*EeS4XznXRv5Smh~1_D%x=6% zTLqo>z;$)J9FkTYj5^Pp%f75R0RwH`lByw=hNC#aoKj)Ro@(UF)<+^bQeIMv zb+xlGi)>(!c113@5FzP3Uw{G-Ne*hRfMXYY2~gd=|NEQl-K|eWB08Jh2ne6HXshY* zQCJQ*N(=<0U>r)hEB@CE#2H>OiH%q~QUag@7gBAlp>tWk&p)Lsjuoldp)vE+(Jqx} z$^t{`g;>t(Al<~U2DI+TH{Sz;cRTU#zl_gb9kE3#mb}oEyIxB3Yht`^7am}3rJX}! z|6#OV#jhXau~TIF0QRz3nd@;tbhkpzHcSXt@8=q>?1}QES$hKcMtXjCRXNV$uU7v$ z&mUQ`6$= zH|-?~g7O&9mZ()P0D1hP*m(EhgM30t)rYy=dF)@QQrXQ0_-td(gmbUx@&7Ia{n3p!QI}JOK#Y zC!|rtL$ra;uh8M~GKy=dnarP`9c5;It>dPzCZe*I82K?YB+cZum1G}cC-CGC!-}-m z&=q6{2m8K25s=0LlzkZz4|EI$CCBCbgpvESdzZ1=9~Al5-ePHT=9HRiTpEAJC1 z!rjijH$e7TfLi|oz9nvsPrd`1uJtoh!z}qoeIe^}r`69YUd-><)z;#axUFbboO?{j z0J6Fk9OPpCuhV2bE#WnV61ci@4*>j+eqxtBZyDg;Y$M(B!}!w zQG}E0l;I(jkwi85w@lMB;LArtcEY)9ux?}UwxKq>Q2QiCKqHT5O>8hkw0jYT-be~( zoW`eQeiXwPp?54l38Rh7|1~O0gV6l~tuejqw9^X6D)rR!iIUbEWv}Uv$W7&WfMgyT`i8@_{L&GPXeTua%ImI zby1B~BWflM2Fqm6ac0%;NUuE>chX)&zcgK)v=xJQ)SYTpG10cZ6H^$9Hj>%D5*q$i z4qpQ*cIqzVzzSV{@8X560+dbkFj-#2M{{BH7r6kP%`%P?3Fdcg@h=(mz1y9P%QD}# z-uXei+b$UEa7Bvq06BBlhX5@6>@{yGmjL=0$A9bO@`?E1wMk(b0bCajD)yqxS-l3! zq8GUT^(vnL4v7zOBl&>=3u~fuwAAx)`ji6`!RIx;%tNCxVg-)#+l+9niF-U_ZWNe< z@T(+ficCM8A&I~z3$V4b@0Xn2Vwe4Cp-1y8hKCE_-0k}q6JP1EzzetqayeJViqZ?2=_PMK2Q z!1q6YvmF*sLP2)MMwS-{dqqRA2+C1>&yvy%jjEn!GpS1DH53Z)Kz_4a#EEri`#;YL zN%maMnHgT*$zJ};GT5FGbN}inI$lsNbGT-10C_?xv|=K)q^pec{IW)3({Amb(`XbW zWA`5_B$7@#LB-sjDR&Q7UG+E5<(NByQ~$F3fdyO5L~~jHv_Lk)HlqisMVSojbSqLm z1=u7QUytkQWr8NbkGKBb*`KsJ75e{b0RTx~5l~FY@%IQWxF-(Bi<*Lk!QC+=L9${T zwK!4tHqm+Hfgy2ybi&=9(DYO`)p{N)J$5ES?eC}{IpJieQ|8~^t2_M@A5f`g!Z`wT zZGicuTywXgu?_^)X`5H6pf?}w@*CDH9ZV~WR`ZK$QRlDk?|yPJ`fjg&e{K+Qrnbp$ zpA$%PGd%uBKac^S2z=6k_Vuu>BYS)QV$$f>9>Z#gxVgr9;&9IJ1B~a8F3S1+g=K%Y z49&_$T3Q7!&2ty}>!3M;xe@G#KhV24eo*c`eq7tJ7xWovbjYKd|~YhCwH0uHhINXQfyWXlj5dD7f4D#ghkWUz-n`(yFweR$gMGU?Qa7az|4>*_c&$nNaRj?;8mZU{g1kkYeZu~FV z`xHP!Owoj(*fUSVUH$u8+Lt0ccohL*e7Uc>gjV0ria^X_#;>DmX<-o>UQbVH1bq)* z{}s>X?UBBcdTLx`L403Q^mK!+>w~V}h@RH@)*s)L%SwP1YFPnlga!MpDuS)4RKqc5iYRO`*? zwV{kVaXnqbWm-dPe6{=XF}1m!U7=gTUkMy#y})=wd9e>JaCpWO2nUrl+~_H@AIsVE zYEZPE#4JfCiOR{YvLyXJr{E)R>FIk+>>XorqmiD#^5C<_LIiNt|2=>b6ge7PDKr<> zfV|I)e6p1^i%EloRr|J@t}6&u1^x0GyGLkx(Y`@ z9Uc7Sm_5+@0$vfi)~5H?vo4$z725ZrG6yKAe>C~Z!l{0w?;zbrbfCuTi(LQ@0^XVZ zX5t*-U_{*UKY0}|Kxs-xuy_QFdLVAVO5Uqa?EE@()tIo+Kr(&mbmF&Mt8f~8^AWmE z?@;@z7#1@dR#w9>`jg3-S zdeg&f3GZ?S$~(O34m#nc591rvmodHcP?Z2LdU3T9 zNj|`H7V78pqZBlT^M1)8Z%z+*{kYQp4*C2rJ=@_hBRWFNXN?nV-9o@Yj?uX!wIl!{ zUS1`zQER|{-p+NS?n1D-)h(M8cb78Zb}04}aeXuSkC)rZ5WY8FpC}$0y;-OA#{GuM zIoPlZK9-D5=6VK_HXM1)vWK7fuKf!@%pf zou5aaC?{wb8^uN#5T~QmwZb1p)~0*DbXVT2cGA-S+{{wxl#|Ih@DGgZ!r}~2iN|5J z{#+oV^|=fi4J3i`RH$$U*a4|`S_Lnn-eKYUF}Ms_QK%nM4=aaKrnOmm%y5g@zw0lm zbW!Qa7X7MO3XtS9u`!SRUB>%Rp~{p0sl@%qxod64lCaMRO;S$Qp*X3 z2kWpg6`~RnqL_v1U;Z{dRV$7xMq4nAf;|$a%p4AMEv#rOaWeR?{m2KsVm6#$0kY9C zQw7lgv0bHCYS;w3teKGJO0e+(VaL8+{xdpf!k%EtZJhEHJ^a&0KfW77(=0Kt&$|bE zL~2nT=ap1#hOiq8N78CsM!5XeNs^1hWaRfG!ZWnMMtXSc!LS319n-U`qI_}lSUCA_m{z2J6X>)a*5rp3EEFjJq8qpz)k6mN1&F_!o&6gbk9`={_6KNp{uBF1-nk;JbWIV=`hHdXN;q%W8`4H;;=SO2sZ<{|$_*ZJl zwWgS(4Dc5U&9~@?)Q78?iBvg2jo;M-YmXqxLlQl|xWS&&-P2|RTnMp)4&Hq9L$u|f zHc#DHB@Yi`<;~fA5B6C09!tlyES4YF@k0!^rcdV7w6++9@0rc6ghp zR~je){YTwRnG1f#KEPjegWxO!;6Kn(cxpnana}&f;TeF++;Zu;R<9mW{PpQY-(Z8) zUxPJoJs_&pA+-ef9-6Nb7p&Wetaz2zX+BF+XR4HDVhWns^0to13>`>_t7x( z*ns?^_jTJuZX~0=(nz!IaY4TM{UDjxU5cAk zE-P9DeL(6_rHx7CwRy1SwW;fAT@IIRHQf4_#vsmw9b}TM(w`em&lV6{H)BB zkA~LfIhCT6NKR(h?oEU57rPZ>5eY!!$@tsBn_*#lg%9d_WLy&U2 zyK~9DEU6go7zST~Q8AQs8Vp-S@#d<>CGWtHeu?CB1hvN^X-$jsuC*8~#@m!%*bmV8 zGFKN)J@_zG2>7Kck6XP7&k}*x8@`BeoY~)9f_u}s0+0VaZ4j5Ba#tg8vzykl%}hn@ z`5$*|zpLV3vuzgF%W>x&s(d<3Tr7=>W0{3N|44Lhn0vKmcmfcXw*sntX#GK^D#-k8 ze1Y@JbCwDBC-xG(!VOWO&|D3*`ON3q+7UvO3Lc8Z0LAMk%HP=ax@!~l$v+3@(_vmm zbq}{n61jpRfdTOQCOO!F2@VLRm2)oh2zc$TZ@MG!q7G^NyHV=qJI+s^m{7Ylq0hH< zE$-&fyp#C%phxs8YOV5NqtQ&0ge2Z7rBpJfKlX&Bq$%Aob(W>% zy$PBfU&5zm3m#gluHLF8A7}kuB3Jt5=L1QG`wO0X6B%*srvJI2#rcJqBRJq%7yZ4( zf)dOxaPx=WI-mz3OusY5+~QxDq3KOi*qd%tTqBJ6nvXwtnd@HdVOaY!(C6aKT~I`I znV_V4I229~KMT~IfIqua?FEVgz0z*P&y|wvB$Q8?EQvZ1G?a81I?Hh;nS<%Uv!M{= z=h>}}ugn{Y#)db@V`wyGFVN{r6KKH4#j)~x%BW-DUFVbyv2-*4`Y~g;A!M1x!=p$F ztrVn*O+n(oo{!aY3h!|T+f)I!SO2a&rHw%lP2ne$vTAV<-08N&9>Jm^kd>a9?gVdM z8mf%qpaq6-NYHG#$ZAD(a;HJ*Is=94@g6;-)Mnc4hov--^7*4XS9CmUHP zIa|Z`GAI1qTwn_A!>+NvET1Y+gA@9(c8Y{x@BTYm|8leFomCk@12Fx{X{dP*?s0rH zdqA+L3_x1oP+zZx_dgw9r4wyh>US57r0ml#rc@X}$1s2#Is$J1>`02w;+B!^PV*(0 z*+SHJhDseYO3uW$#kwAIAd5b@T>iJ5L>m}H8Ky0>ebWpB^z8wE|Dj#-hp878fh;Ki zV}|p?gu-V9O%M)*CmrI1<@KH|p`-)lIhbzwZO6;08ah|NJhpV zm$TaDu?$`ApB$3~6Q^ofa-z-2H;=`330dAgiA`zK)vIuJSNkwr-Jd1Bh!NRH&$RKr zv_Q8u+3ryC!|TtaUr1&XX@dI?1cAGc!!6G`5iZIAaCqYszGTrJlR&3gmnCxE2I)H4 z)*Wli)%sAlz0|?({7^5YLw$>t)IsYDH)SQ26URa1w-T?;?0^zcJtU#`&8jDj!!S=d zIN2~CD&*#SL0?;z0OBfK+HtFk$IzDDmjygO-tVY1CF`AIh_rp59Bm6aUoXJ_$OnDf zl{3eit;#ep&AYI@r~k+6qyxUo49wk{_R58qB8dd|c4qE`Yz+uLw0Z)>Jty5+v1{=yPgn z`!$O0*PjUr!;J6yy?3J@Mn3C1I_=&5`|s>E8vXKhSR*ODwoI=P_|~iupmG*3&C&}0 z=Mn~E05|k6*{#5Yf+Q9x~vT@pdRp zPmH>Zc~{k78gJ>PqV>@!ruN0j51n_@ob4##ZCu_fd^mo(UpeV2fe17F5wqO>xh%2N#mmRsb z2`r-Y^lD7EL$^kq2BkQ9xMk6Xl$(;-o;hD$Gh0^@DvuAo?R_BF$5N@^QL76b-#-*T zK5JuSoDmGSYSfZ$(&yJra>scDFj{GeXv-{v=M}BhARh2<57-~N=#V5me+#Yw?h0!) z-aW%A%>F2BnUt!aqTVR*o+9m5EaPl){)MwL(P{%O$(*8KeGl&2+v+(yiTG2#fZM+- zhb)S(g1m@FxMqzjWr+VF?c1lcO*1E_)S{_pv_WZ(`_$x8sIaJcbq~MCnN)X>eJ|dIuHb8aXRU}>LEATmCFiN( z219z?(! z=yxZ0|8glvF;~b&y_=u}-N~B|kk1;~gqN|F)jXwx`@=uQ7A*@Uuiww=h-9u&{|XWqP*6`nXBMvy8uyJ4Qh zU)es}cVO@PZ-w}T=4~%vMq&Lps zQ2gP)3AiuIzk8Q(>`7P$%JgmLDKQ>-Dq8Jk`E*@|cirW%@8BPbvJ6O8U)(D9_ThGF8UJB7T}wOWk{+haFga zgFn?sCUtz6aP>Vl#0`Yo!b1o3XzOO7tjX__BC>v>A6^X6N2^!$E z%UOPycKl8>{V*JUI1PV^H^spZ59ikgk^Osm7rceT=k_k~5e>GxO!uT1x*i?a&?ctZ zBy|b!jPA-!<-VCIC7sQ(c}|x8ZTZ);&$(hMEgA(Qd6cZToheYa^XTdjvucPbPWxJf zzow5LzCH>LLw*~yQ6RoOWK|5l{;(0g4|*S2lL}M(@k#IDp>504XN5pFU_8fSQfB2_ zGq-=PRizBGlz!ADZd`mI7WQo;d~w~vBC)M(tsRfnec zDGimR{~{n=IY=`FE{^&OD4I#yBa^LyGrl4o(#lh=I0-uh~tnn_j*m>$&4C7f`9RK;P<*@&Q zi=wcXp#M5(Zhv@i0`z8CH=7oIlNzO%kPw7Xn>;xFJY34&(6sN(tMNqgg zRJxxWX;TV&L6yn;+kE0OZ}_4QG6{2S=7QxD$35|r{i*=<)V0&lgWSpSLBVm{X&B9h z7rH7T!#>)^hcfg}A?&T~pZkvy5Iq`!@pt5xe{g*xYf8=7)x{_T-G8Qzoc3EH-|`mh z4n39qvfmJ5?IUDXaDUl{bQU<>IzVp$hox%<(~j-B?=c}PU0ETfLyLSO>>OU`y)7-v z;75*VRJSpa4q7zMla0u2gpx6>JC$jss_D+uKI<6jv3VKYJgzIY2@`Z@qC#|Dx|z*y zVJ~@WxSB7qRLvML;TfjWmJuj4vSsxKO?}5I`DNtg!5F~p2++e9K?IQaF5`){i~6VB z$iuT~m=NcXC*p0RM8V_lk4JTo{e>st#^ zv^TPftIxGRDpOV@a*Cq+07BZot>fOTS2)|Bi3N2ANfgE3lR*KTm8y<8Zx0f(KR|z2 z%`}I-n&AkLd8`-T*+$$QxLq}vpbPm$^C=Cb6Byw59s*swnXvtO%|Tr`-&azZAGh35 zoGorurcu8u>tIsFSRLQl>O#oEtWIdNWCdb1X`jLa@u%K4n>e`7$(rm;l8 zTl(}2emr{^i3ge&U|Eeds-acWAx00N8Jj)^X@1@4lh4%#29>C)TSf}8jJj@>xjHG& zo>Ke!34hpxZ6L};=EnRmvHp7DJHE&8MU4dW=ku$#9Y_sa>T)U-rAHAu zf?D7(_D<1)&$|p~ahn2VxfP?3ZL0ox$Tl)#9N_-%uwqswt!yK|YDJ7Ge}Wb4!7tEm z-+{2wQ+G`1uZT%_=gYLwTT>Y}RlWtMp($@yEj$bOKg%TLzK)t$CW*?J`JNa3#i4St z$tU_PuM;!Ly@-PAP*H~#X=EC!;*5d)(4u3*A~`Z;n!q{uzi4emL_+?Bly>PkY6=hB z0|E2OzEK`}Uiz}6@aC9V>`aYWh}j1><#M)8Yp05mfUF6EVi=Qs?trAv@M<6Z%12?N ziF_JcSzhc?s?6M0$M(0IC*KuA=ArKz(-J@XIm|BfH{o200{?(Uvluj`NG{c2=Twcz z6*52n+yL~?pTST2c7So)8spUY{tW$1{Ob{%_hp;mytVlGU65S(k6TcS!P{Zr=%fii zI#UTJmpNG?Mt>P^p<2y%@`{(t;?a8g1Yu&24($ysw*?_1|J>-Jk7q(2pT`D9>y5vZ z2*$Y}FC)#J4dN;Ta+*=t0Ut;xNBp2L_4bRmMpRSjh(-cR>Hl0d+-78D3_#%8Fdvk|T7M2{soFJNedazO&E!JfB!xvpe z7&daPLP3)+U!o!>^rClGwc`f89KyJ76=?anZ4V5}OHS#Oug#OxhE_DCJT0R?v@b#V z?+*OdunP-OH%$C>dcylTh^@5K;SqqU{O^QT-g?n_2FW7i`MT(s*stLIN}hB$(*U~y zo%k{4nk~uR_xmAK!>0hIJo zl7N8jiIV&)Z9!Ygi7DLt`DMIjXKspHjd)8_TT?5}6?YVW^UW2};77M%p$31Z6@y0v z4mwqhMK9tj(GcR+7Y2ORwT!wqpELdm-ZIcwn80bpM|G)7MmI?43wt6LNBoxxRqJjg zYj0&%kp9m2s~a7Cdtd%h;gZ|DQv03fiIE|HhV>5jqZ4v`&1w9u<_n2V z(u=wNQZxW(?;C3mvTc-BQl2j;uF_BAMJpGi{ekv*)*DaoYM2voM~>mfLNUIM7;|{~ z7W?SJ6BlcSVrNRKQ7_DgK5an{VdqwN$_NAH&_f(eT9%k?lu5pif9RQ(tiAR-R(|W- z;a_#=3p&q&%p%S>TZ;pGxY7R}fkYm>_FjU0*|aBV#HSh5YZC9=Z{w~;v#rp!S>nIB zJpDHHPv&>4ay(O`mS*@9Xf-B#|DbYjADB~2zV}wipTcfh%nnPY3izqRH_eo?3Vq_f zoKL0o2@2eE{_Ho9G?4BZE{PI`9{I!QhW>MAL#&2#V91uf0z8Fig?YUse zMe-hL%M^fqc(?_ZgyRq1b9lAAF!h?elUw*ij!L;Y!pKx&C!ym-h1{K@k6qrmbqFp= zgoub{7S+~up$><=Ql0W!y0ek>oh@AjdF4VfI<5hZs)UB;CPAJ$8gUW=o4|w=6S5sP zdSL&Bjy9&2$kF00>l*LYBqpTAH}_ylOp!AnJOGgpJTxUdCn^yBzo~y;Ms?^q2|pIC zMW~Lewc;v8*5e==XnLoBG^GzEo=Niu-y1_^lEfLk;n;Co9J$uQG10rU2GZ!^J_ zNVVxTjlcMv!qxxra_W_wPSm*lhW2{Y{rHDpPX*u* zHKv9m{N$Ynr3#kGzXG>Ap`2bTRxgc&kL_tmGH(8R#OeS7u|_72S)~SGZzIt0-z5(Q zSGE3Ps-n}-5p8Nm#mHndtId{F8aUNGp=__T<)?*pL%RDrmoTEph2oND8stnmoATb)-0C9@qy;F8Beof-M*wo zy6!)a78G_LPMPU+1FC~azA+b0423*iwf`lxez0Q~hS+a}ec6*9gKvf8+q=(|8b-g} za@(|S%X)K}o_kctE&jq}`(}WPlSST&eQ4u_Asoy^EvYX(_50Ww9VdMGlPxlr0{q`zA7^p z2^p4hnU|brOAllEs$fm4v2Y>_K*Yes>>lHvJtKQssJ} zMl9c7iz}SQH==+pP1NSA#dkhh#E&ZQUb0Qz+e!hA4wiL=_C&&3!tyg}On}$%aq6EY zgTirS#nxS&G_TlKFsw?7^saIZ;|LR*`=%DkFjDqy5ZO&5fa(A`V%A#vLy8b2^ztBMZnOdanDUNS^PP zBhZKFZp0l_0R9Gb#-#HsjyDRvoV78V{aA8mKZ@cQDx#~I;YuG5ZifYaFoUZhYeSgrdUpeEs>rE2Yw-$p_v z#QTjLWfxU;wlqVVQ^Hcpj_bcdN%nr1M26L*n^>lfm#xP#i&zSB(_~i(JaVX`c;695 z+NnCqv!~!t8sKV+B#yucL!e zOVZF*v*IlV+deNkgZ-$4I~B_)fHm+_%`5K3|HwMC$ho)gUbevyTSg)x_nXQc(=7LrAJdOf3^Ocd10Vwbr+VNrIfwW;q0Vz>g-#a1|2!bm2yuPLwR zf$K59d}rOoCz33<)$ZNPu9C%iDM_cuV7yYlZF*Q+iuMPax4eiDe=?q8@zwK@e250N zx7x^QXv&;l=5jCBPx?*ZZHl+2KfDcu=XizYYNIKSUKAR7OY2>>xWTxx4XDMiH@M82 zm>k9BHj&-|#PyfY%<0E`J+@yw^=hho+W<`U6)8(M7o0PSqgmW`3dugnhR3~r&9Nf&#bzF7(Dy2^>Tg9h7QF+6S&g14? z{50P3+t7ck`uqWY+eEv>&3X*Z^}vO=C@!?Oe$|unb?EI{T-cW0F^mnj;MzFiIxMw6 z#_Ioq*??EO_;V)eG)>^AC){mb+7dO=V)`z%S6HnRJ3b#7?_7Cpc^p)c=UfD!-O3|%E@w~i~ z3X3k@C+elZ#PG8oFCveIMU_-YE?e2BJf2#<%X52&E;+Acx4e7i$CgAi?Dh0E7xfMB zW1O@fg+tTeC;3ODJ9BiXgE{ZXDZ2cme=$ksMRwk`VI=jFYPydi$pS)6vz?U=>5$sw zOEgTxZn_AM0)mmnhcHsQ-W3xAu3Y7cl-MB`IBX8eN>@dq)ldS$MuNE-Q0$Alxw4&reU`4S?BNY{`~pn z{k-qz^FHtUJa1>F<7XF}afd3UIz~Xb7>LZJ{e-<~aV#7w?9+0$xM6Hu<|^R0ynpHyima%BzofN#K7Du9m$$`H6~-o)_rqv_!)`u zx6`#qEr$l;aOH#@*U-k( z1=rsAFnmBi63=8QvUd%2TV&zD;1e~abjNDn{12FgO*&@YVqU(F1XiDWfVpS_cYZL~ zQ)?nRNmywuNl7b=zK`1#lByK+%yPOQaD8T;`4rYq0PkZY7kHAvOP56#XN5D5O_ER| zSBc2_x?EgPI!iu6VeQp$S0zPuKw$ryEj?XB21SkII_g)+;T16mrYQsU9n$tWopxU2 zH3CcV(qy8_DtCG&CUAo5+wmOD@~x6b;VFN4;4Ov`q@- z;SE)29>Ul5bn}V)%%a8Dke=_;VE!N&@B#@IhDC>37PP?MjDTM!nbBwjdQGECG2b%R zG#u)e*2kdex;U+p-seF}#@mv6t@6E+d%9A?h^B}_!6B*^RXMvE0#O-TjMY4+fF1i( zY9M?WfIjB0r(wTy)PpeRkL2o1ka0v$i_6ZECgr9CDvzLj&(=D;+o50Sm`xsKv9LC~ zARg5=bto&3ooMJm-}TGgDaa}<+c=1uAUq&ZqTEDP$$*wUGtW#m!D2a%-rB$A_%LC2&8#7dDO9I*}uz2?YnZ^E}mSP(+ggc)739N^YLSl37@{GMUC6BTp>rg zlP~qB*dr!D?=7Aukj4P_4wiSctNN+E%`5LBp<`1I2HX^PthB&Kw$dWWBK@r4ilP;% z7jC>GCe?r?&Ts90e+1tcHaBI=T`RfWJWXzlgcHqFi+hYd@hX5|A`i@^3Tts7KXL~{{FMNYx{`t1yBR=Dk z)1N9;`RSoR48~->`-;k9x!|=qs-m-A6h@qh0Ewk~}>p&6@YH6{r9aX1mh__D+-F8r)%p@K;9a;to%f*zN{z zdrf^-)DMqJZKmg9LZL&WQN7C`0DPfb2IYWzvCoKSWqlOnr;KP>Dg|IZ7FO!#kN2GKNYqRucPyZknP#80a@5uIa*d;@s9luW&%Jg literal 0 HcmV?d00001 diff --git a/users/static/users/img/default.jpg b/users/static/users/img/default.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1fb7d8cfa54b3bcb9da620de7927e4bc5ddcfb98 GIT binary patch literal 6068 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 P_un@k<^VnSIqm-f0_)yP literal 0 HcmV?d00001 diff --git a/media/agencymain/linkdefault.png b/users/static/users/img/linkdefault.png similarity index 100% rename from media/agencymain/linkdefault.png rename to users/static/users/img/linkdefault.png diff --git a/users/templates/users/base.html b/users/templates/users/base.html index 4ad28ca..7e1eb8c 100644 --- a/users/templates/users/base.html +++ b/users/templates/users/base.html @@ -150,8 +150,6 @@ {%endif%} {% getmesscounter request.user as gs %} - - Mitteilungen @@ -163,8 +161,18 @@ {% endif %} - - + {% if request.user.profile.agency.module_timemanagement %} + {% if active_link == 'timemanagement' %} + + {% endif %} -