From afc9c27a06f5546148e1fa28858b724964939586 Mon Sep 17 00:00:00 2001 From: Holger Trampe Date: Fri, 14 Aug 2020 10:46:16 +0200 Subject: [PATCH] Bugs --- areas/__pycache__/__init__.cpython-38.pyc | Bin 152 -> 153 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 163 -> 164 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 157 -> 158 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 168 -> 169 bytes dasettings/views.py | 598 +++++++++--------- .../__pycache__/__init__.cpython-38.pyc | Bin 162 -> 163 bytes .../__pycache__/settings.cpython-38.pyc | Bin 4083 -> 4084 bytes .../__pycache__/urls.cpython-38.pyc | Bin 2582 -> 2583 bytes .../__pycache__/views.cpython-38.pyc | Bin 354 -> 355 bytes message/__pycache__/__init__.cpython-38.pyc | Bin 154 -> 155 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 165 -> 166 bytes news/__pycache__/__init__.cpython-38.pyc | Bin 151 -> 152 bytes news/models.py | 10 +- news/views.py | 50 +- .../__pycache__/__init__.cpython-38.pyc | Bin 168 -> 169 bytes orga/__pycache__/__init__.cpython-38.pyc | Bin 151 -> 152 bytes orga/__pycache__/admin.cpython-38.pyc | Bin 192 -> 193 bytes orga/__pycache__/apps.cpython-38.pyc | Bin 367 -> 368 bytes orga/__pycache__/models.cpython-38.pyc | Bin 189 -> 190 bytes orga/__pycache__/urls.cpython-38.pyc | Bin 403 -> 404 bytes orga/__pycache__/views.cpython-38.pyc | Bin 3510 -> 3511 bytes organizer/__pycache__/__init__.cpython-38.pyc | Bin 156 -> 157 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 167 -> 168 bytes standards/__pycache__/__init__.cpython-38.pyc | Bin 156 -> 157 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 169 -> 170 bytes .../__pycache__/counter_tag.cpython-38.pyc | Bin 15849 -> 15937 bytes standards/templatetags/counter_tag.py | 5 +- tasks/__pycache__/__init__.cpython-38.pyc | Bin 152 -> 153 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 161 -> 162 bytes .../__pycache__/__init__.cpython-38.pyc | Bin 172 -> 173 bytes users/__pycache__/__init__.cpython-38.pyc | Bin 152 -> 153 bytes users/templates/users/base.html | 2 +- users/templates/users/searchres.html | 24 +- 33 files changed, 345 insertions(+), 344 deletions(-) diff --git a/areas/__pycache__/__init__.cpython-38.pyc b/areas/__pycache__/__init__.cpython-38.pyc index 3b12d3e60bd4b11394d0017f6e007ef01878b8a7..68d63ecd0d8b5a61e97768cce46d7263b27b69cd 100644 GIT binary patch delta 75 zcmbQiIFpe(l$V!_0SH`Kj3;v2nAka6#e^2878S>2XOcgfE#%}vcKN!54v4AD=? bOwTMy%t=j52MU!I=_eMYCKl^Ytd;`+9M~8G diff --git a/cloud/migrations/__pycache__/__init__.cpython-38.pyc b/cloud/migrations/__pycache__/__init__.cpython-38.pyc index cd4f67657a551a1d1a8d17db47a1a4e248bd8d12..751a18e54d4c1bdb2a5db5708e16a8b877af8d67 100644 GIT binary patch delta 113 zcmZ3?xP*~Al$V!_0SH`Kj3;v2#Ckeg#e^2878S>2G55=%1k^NM5Q<1_OzOXB183My}L*yQG?l;)(` LF#?VM46*|N2nZ#H delta 85 zcmZ3&xR{YUl$V!_0SMBTiB9CUvGdT+$j?pH&nPKM%q>XOcgfE#%}vcKN!54v4AD=? mOwTMy%t=j52MU!I=_lvpm!|0FW~LV2XOcgfE#%}vcKN!54v4AD=? gOwTMy%t=j52MU!I>8B(Xr2XOcgfE#%}vcKN!54v4AD=? rOwTMy%t=j52MU!I>8B(Xr 0): @@ -735,11 +735,11 @@ def SettingsAjaxRouter(request): else: success = False # UPDATE USERNAME - elif request.method == 'GET' and request.GET['action'] == "update_usernames" : + elif request.method == 'GET' and request.GET['action'] == "update_usernames" : tempuser = User.objects.get(pk=request.GET['userid']) if(request.user.profile.agency == tempuser.profile.agency and request.user.has_perm('users.usermanager')): regex = '^[a-zA-Z0-9_.-üöäÜÖÄ ]+$' - if(re.search(regex,request.GET['new_first_name']) and re.search(regex,request.GET['new_last_name'])): + if(re.search(regex,request.GET['new_first_name']) and re.search(regex,request.GET['new_last_name'])): tempuser.first_name = request.GET['new_first_name'] tempuser.last_name = request.GET['new_last_name'] tempuser.save() @@ -752,29 +752,29 @@ def SettingsAjaxRouter(request): data = {"userfullname" : tempuser.first_name + " " + tempuser.last_name} success = False # UPDATE FREEDAYS - elif request.method == 'GET' and request.GET['action'] == "initloadfreedays" : + elif request.method == 'GET' and request.GET['action'] == "initloadfreedays" : if(request.user.has_perm('users.modulesconfig')): temp_freedays = FreeDays.objects.filter(agency=request.user.profile.agency) - if(len(temp_freedays) == 0): - tempdays_thisyear = loadingFreeDays(request.user.profile.agency.plz, date.today().year) - tempdays_lastyear = loadingFreeDays(request.user.profile.agency.plz, date.today().year - 1) - tempdays_nextyear = loadingFreeDays(request.user.profile.agency.plz, date.today().year + 1) - + if(len(temp_freedays) == 0): + tempdays_thisyear = loadingFreeDays(request.user.profile.agency.plz, date.today().year) + tempdays_lastyear = loadingFreeDays(request.user.profile.agency.plz, date.today().year - 1) + tempdays_nextyear = loadingFreeDays(request.user.profile.agency.plz, date.today().year + 1) + if(tempdays_thisyear != False): - for k in tempdays_lastyear.keys(): + for k in tempdays_lastyear.keys(): tempdate = tempdays_lastyear[k]["datum"].split("-") FreeDays(agency=request.user.profile.agency, name=k, day=datetime.datetime(int(tempdate[0]),int(tempdate[1]),int(tempdate[2])), year=date.today().year-1).save() - for k in tempdays_thisyear.keys(): + for k in tempdays_thisyear.keys(): tempdate = tempdays_thisyear[k]["datum"].split("-") FreeDays(agency=request.user.profile.agency, name=k, day=datetime.datetime(int(tempdate[0]),int(tempdate[1]),int(tempdate[2])), year=date.today().year).save() - - for k in tempdays_nextyear.keys(): + + for k in tempdays_nextyear.keys(): tempdate = tempdays_nextyear[k]["datum"].split("-") FreeDays(agency=request.user.profile.agency, name=k, day=datetime.datetime(int(tempdate[0]),int(tempdate[1]),int(tempdate[2])), year=date.today().year+1).save() - messages.success(request, f'Feiertage erfolgreich gespeichert!') + messages.success(request, f'Feiertage erfolgreich gespeichert!') success = True else: success = False @@ -783,45 +783,45 @@ def SettingsAjaxRouter(request): success = False # LOAD MULTIPLE FREEDAYS - elif request.method == 'GET' and request.GET['action'] == "initloadfreedaysmulti" : + elif request.method == 'GET' and request.GET['action'] == "initloadfreedaysmulti" : if(request.user.has_perm('users.modulesconfig')): - + #tempdays_year = False if(request.GET["land"] == "true"): tempdays_year = loadingFreeDaysMulti(request.user.profile.agency.plz, request.GET["year"], True) - - + + if(tempdays_year != False): for k in tempdays_year.keys(): tempdate = tempdays_year[k].split("-") FreeDays(agency=request.user.profile.agency, name=k, day=datetime.datetime(int(tempdate[0]),int(tempdate[1]),int(tempdate[2])), year=int(request.GET["year"])).save() - - messages.success(request, f'Feiertage erfolgreich gespeichert!') + + messages.success(request, f'Feiertage erfolgreich gespeichert!') success = True else: success = False else: tempdays_year = loadingFreeDaysMulti(request.user.profile.agency.plz, request.GET["year"], False) - + if(tempdays_year != False): - for k in tempdays_year.keys(): + for k in tempdays_year.keys(): tempdate = tempdays_year[k]["datum"].split("-") FreeDays(agency=request.user.profile.agency, name=k, day=datetime.datetime(int(tempdate[0]),int(tempdate[1]),int(tempdate[2])), year=int(request.GET["year"])).save() - - messages.success(request, f'Feiertage erfolgreich gespeichert!') + + messages.success(request, f'Feiertage erfolgreich gespeichert!') success = True else: - success = False + success = False else: data = {"userfullname" : tempuser.first_name + " " + tempuser.last_name} success = False # DELETE ALL FREE DAYS - elif request.method == 'GET' and request.GET['action'] == "delallfreedays" : + elif request.method == 'GET' and request.GET['action'] == "delallfreedays" : if(request.user.has_perm('users.modulesconfig')): - FreeDays.objects.filter(agency=request.user.profile.agency).delete() - messages.success(request, f'Feiertage erfolgreich entfernt!') + FreeDays.objects.filter(agency=request.user.profile.agency).delete() + messages.success(request, f'Feiertage erfolgreich entfernt!') success = True else: data = {"userfullname" : tempuser.first_name + " " + tempuser.last_name} @@ -829,13 +829,13 @@ def SettingsAjaxRouter(request): #return render(request, 'dasettings/change_absence_yeardata.html', context) # HOLIDAYS UPDATE - elif request.method == 'GET' and request.GET['action'] == "update_holidays" : + elif request.method == 'GET' and request.GET['action'] == "update_holidays" : context = { "user_years" : UserYearAbsenceInfo.objects.filter(user=User.objects.get(pk=request.GET["userid"])), - } - return render(request, 'dasettings/change_absence_yeardata.html', context) + } + return render(request, 'dasettings/change_absence_yeardata.html', context) # UPDATE HOLIDAYS SAVE - elif request.method == 'GET' and request.GET['action'] == "update_holidays_save" : + elif request.method == 'GET' and request.GET['action'] == "update_holidays_save" : # GET ELEMENTS newHolidayData = request.GET["new_data_info"].split("___") # EVERY ELEMENT GET ID AND SAVE NEW DAY-INFO @@ -850,38 +850,38 @@ def SettingsAjaxRouter(request): temp_year.days = ele_elements[1] elif(ele_type == "rest"): temp_year.restdays = ele_elements[1] - temp_year.save() + temp_year.save() context = { "user_years" : UserYearAbsenceInfo.objects.filter(user=User.objects.get(pk=request.GET["userid"])), - } + } return render(request, 'dasettings/data_absence_yeardata.html', context) else: success = False - return JsonResponse({"success" : success, "data" : data}) + return JsonResponse({"success" : success, "data" : data}) def loadingFreeDays(plz, year): # Getting land file_path = os.path.join(settings.STATIC_ROOT, 'users/extra/plz_short.csv') - + land = False - with open(file_path, 'rt') as csvfile: - filecsv = csv.reader(csvfile, delimiter=';') + with open(file_path, 'rt') as csvfile: + filecsv = csv.reader(csvfile, delimiter=';') for row in filecsv: if str(row[1]) == str(plz): land = row[6] break; - + if(land != False): URL = "https://feiertage-api.de/api/" PARAMS = {'jahr':year,'nur_land':land} - r = requests.get(url = URL, params = PARAMS) + r = requests.get(url = URL, params = PARAMS) return r.json() else: return False @@ -890,27 +890,27 @@ def loadingFreeDays(plz, year): def loadingFreeDaysMulti(plz, year, onlyland): # Getting land file_path = os.path.join(settings.STATIC_ROOT, 'users/extra/plz_short.csv') - + if(onlyland == False): land = False - with open(file_path, 'rt') as csvfile: - filecsv = csv.reader(csvfile, delimiter=';') + with open(file_path, 'rt') as csvfile: + filecsv = csv.reader(csvfile, delimiter=';') for row in filecsv: if str(row[1]) == str(plz): land = row[6] break; - + URL = "https://feiertage-api.de/api/" PARAMS = {'jahr':year,'nur_land':land} - r = requests.get(url = URL, params = PARAMS) + r = requests.get(url = URL, params = PARAMS) return r.json() elif(onlyland == True): URL = "https://feiertage-api.de/api/" PARAMS = {'jahr':year,'nur_daten':1} - r = requests.get(url = URL, params = PARAMS) + r = requests.get(url = URL, params = PARAMS) return r.json() else: return False @@ -923,36 +923,36 @@ def loadingFreeDaysMulti(plz, year, onlyland): ''' @login_required -def UserProfileUpdate(request, pk, newuser=0): +def UserProfileUpdate(request, pk, newuser=0): usertochange = User.objects.get(pk=pk) user_fullname = usertochange.first_name + " " + usertochange.last_name - parentuser = "" + parentuser = "" if(usertochange.profile.parent != None): parentuser = usertochange.profile.parent.pk if request.method == 'POST': - if 'image' in request.FILES: - usertochange.profile.image = request.FILES['image'] + if 'image' in request.FILES: + usertochange.profile.image = request.FILES['image'] formtosave = False - + if(request.POST["form_type"] == "profileform"): - formtosave = UserProfileForm(request.POST, instance=usertochange.profile) - - if formtosave.is_valid(): + 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() + usertochange.save() except Exception as e: usertochange.profile.parent = None - usertochange.save() - + usertochange.save() + formtosave.save() messages.success(request, f'Profil gespeichert!') return redirect('dasettings') else: messages.success(request, f'Fehlerhafte Eingabe!') - context = { + context = { 'active_link' : 'dasettings', 'user_fullname' : user_fullname, 'first_name' : usertochange.first_name, @@ -972,10 +972,10 @@ def UserProfileUpdate(request, pk, newuser=0): formtosave = UserTimeForm(request.POST, instance=UserTime.objects.get(user=usertochange)) if(formtosave.is_valid()): - # CHECK IF HOLIDAYS_LOOSE IS CORRECT - if(not re.match(r"^([1-9]{1}|0[0-9]{1}|1[0-9]{1}|2[0-9]{1}|3[0-1]{1}).([1-9]{1}|0[0-9]{1}|1[0-2]{1}).$", formtosave.cleaned_data["loose_holidedate"])): + # CHECK IF HOLIDAYS_LOOSE IS CORRECT + if(not re.match(r"^([1-9]{1}|0[0-9]{1}|1[0-9]{1}|2[0-9]{1}|3[0-1]{1}).([1-9]{1}|0[0-9]{1}|1[0-2]{1}).$", formtosave.cleaned_data["loose_holidedate"])): messages.success(request, f'Fehlerhafte Eingabe! Das Verfallsdatum der Urlaubstage ist ungültig oder das Format wurde nicht beachtet (TAG.MONAT.).') - context = { + context = { 'active_link' : 'dasettings', 'user_fullname' : user_fullname, 'first_name' : usertochange.first_name, @@ -1001,7 +1001,7 @@ def UserProfileUpdate(request, pk, newuser=0): return redirect('dasettings') except: messages.success(request, f'Fehlerhafte Eingabe! Das Verfallsdatum der Urlaubstage ist ungültig!') - context = { + context = { 'active_link' : 'dasettings', 'user_fullname' : user_fullname, 'first_name' : usertochange.first_name, @@ -1019,7 +1019,7 @@ def UserProfileUpdate(request, pk, newuser=0): return render(request, 'dasettings/user_usprof.html', context) else: messages.success(request, f'Fehlerhafte Eingabe! Das Verfallsdatum muss im Format TAG.MONAT. sein und existieren!') - context = { + context = { 'active_link' : 'dasettings', 'user_fullname' : user_fullname, 'first_name' : usertochange.first_name, @@ -1035,8 +1035,8 @@ def UserProfileUpdate(request, pk, newuser=0): 'usertoparent' : User.objects.filter(profile__agency__pk=usertochange.profile.agency.pk, profile__visible=True) } return render(request, 'dasettings/user_usprof.html', context) - - else: + + else: usertime = "" try: usertime = UserTimeForm(instance=UserTime.objects.get(user=usertochange)) @@ -1046,11 +1046,11 @@ def UserProfileUpdate(request, pk, newuser=0): usertime = UserTimeForm(instance=UserTime.objects.get(user=usertochange)) - context = { + context = { 'active_link' : 'dasettings', 'user_fullname' : user_fullname, 'usertime_form' : UserTimeForm(instance=UserTime.objects.get(user=usertochange)), - 'user_years' : UserYearAbsenceInfo.objects.filter(user=usertochange), + 'user_years' : UserYearAbsenceInfo.objects.filter(user=usertochange), 'first_name' : usertochange.first_name, 'last_name' : usertochange.last_name, 'newuser' : newuser, @@ -1070,7 +1070,7 @@ def UserChangeMain(request, pk): usertochange = User.objects.get(pk=pk, profile__agency=request.user.profile.agency) user_fullname = usertochange.first_name + " " + usertochange.last_name if request.method == 'POST': - formtosave = UserNewUserForm(request.POST, instance=usertochange) + formtosave = UserNewUserForm(request.POST, instance=usertochange) if formtosave.is_valid(): formtosave.save() formtosave.save() @@ -1078,14 +1078,14 @@ def UserChangeMain(request, pk): return redirect('dasettings') else: messages.success(request, f'Fehlerhafte Eingabe! Mailadresse bereits vorhanden!') - context = { + context = { 'active_link' : 'dasettings', 'user_fullname' : user_fullname, 'userform' : UserNewUserForm(request.POST, instance=usertochange), } return render(request, 'dasettings/user_changemaindata.html', context) else: - context = { + context = { 'active_link' : 'dasettings', 'user_fullname' : user_fullname, 'userform' : UserNewUserForm(instance=usertochange), @@ -1095,52 +1095,54 @@ def UserChangeMain(request, pk): # Method for first User-Creation-Step @login_required def NewUserFirstStep(request): + context = { + 'active_link' : 'dasettings' + } + if request.method == 'POST': + newuserform = UserNewUserForm(request.POST) + if newuserform.is_valid(): + if(request.POST.get("sendmailnewuser")): + msg_html = render_to_string('users/register_mail.html', {'username': newuserform.cleaned_data.get('first_name') + " " + newuserform.cleaned_data.get('last_name')}) + send_mail(request.user.profile.agency.name + ' Account', 'Hallo ' + newuserform.cleaned_data.get('first_name') + ' ' + newuserform.cleaned_data.get('last_name') + '! Bitte setzen sie sich auf https://digitale-agentur.com/password-reset/ ein Passwort.','noreply@digitale-agentur.com',[newuserform.cleaned_data.get('email')],html_message=msg_html,fail_silently=True) + newuser = newuserform.save(commit=False) + newuser.username = newuser.email + newprofile = Profile(agency=request.user.profile.agency, parent=None) + newprofile.save() + newuser.profile = newprofile + newuser.save() - context = { - 'active_link' : 'dasettings' - } + # USERTIME + user_time = UserTime(user=newuser) + user_time.save() + # USER NOTIFICATIONS + user_notifications = UserNotifications(user=newuser) + user_notifications.save() - if request.method == 'POST': - newuserform = UserNewUserForm(request.POST) - if newuserform.is_valid(): - if(request.POST.get("sendmailnewuser")): - msg_html = render_to_string('users/register_mail.html', {'username': newuserform.cleaned_data.get('first_name') + " " + newuserform.cleaned_data.get('last_name')}) - send_mail( - request.user.profile.agency.name + ' Account', - 'Hallo ' + newuserform.cleaned_data.get('first_name') + ' ' + newuserform.cleaned_data.get('last_name') + '! Bitte setzen sie sich auf https://digitale-agentur.com/password-reset/ ein Passwort.', - 'noreply@digitale-agentur.com', - [newuserform.cleaned_data.get('email')], - html_message=msg_html, - fail_silently=True, - ) - newuser = newuserform.save(commit=False) - newuser.username = newuser.email - newprofile = Profile(agency=request.user.profile.agency, parent=None) - newprofile.save() - newuser.profile = newprofile - newuser.save() - newuser_id = newuser.id - messages.success(request, f'Benutzer angelegt!') - today = date.today() - UserYearAbsenceInfo(agency=request.user.profile.agency, user=newuser, year=today.year).save() - UserYearAbsenceInfo(agency=request.user.profile.agency, user=newuser, year=today.year+1).save() - UserYearAbsenceInfo(agency=request.user.profile.agency, user=newuser, year=today.year+2).save() + newuser.usernotifications = user_notifications + newuser.usertime = user_time - getadmingroup = AgencyGroup.objects.filter(savefordel=True, is_admin=False, agency=request.user.profile.agency) - for g in getadmingroup: - g.group.user_set.add(newuser) - return redirect('/dasettings/usprof/'+str(newuser_id)+'/1') - else: - messages.success(request, f'Daten falsch eingegeben!') - context['newuserform'] = UserNewUserForm(request.POST) - return render(request, 'dasettings/user_newuser_step1.html', context) - - # Returning the data from database for normal-loading Settings - else: - newuserform = UserNewUserForm() - context.update({'newuserform' : newuserform}) - - return render(request, 'dasettings/user_newuser_step1.html', context) + + newuser_id = newuser.id + messages.success(request, f'Benutzer angelegt!') + today = date.today() + UserYearAbsenceInfo(agency=request.user.profile.agency, user=newuser, year=today.year).save() + UserYearAbsenceInfo(agency=request.user.profile.agency, user=newuser, year=today.year+1).save() + UserYearAbsenceInfo(agency=request.user.profile.agency, user=newuser, year=today.year+2).save() + + getadmingroup = AgencyGroup.objects.filter(savefordel=True, is_admin=False, agency=request.user.profile.agency) + for g in getadmingroup: + g.group.user_set.add(newuser) + return redirect('/dasettings/usprof/'+str(newuser_id)+'/1') + else: + messages.success(request, f'Daten falsch eingegeben!') + context['newuserform'] = UserNewUserForm(request.POST) + return render(request, 'dasettings/user_newuser_step1.html', context) + + # Returning the data from database for normal-loading Settings + else: + newuserform = UserNewUserForm() + context.update({'newuserform' : newuserform}) + return render(request, 'dasettings/user_newuser_step1.html', context) # NEUER AGENTURVERBUND @@ -1152,10 +1154,10 @@ def AddAgencyNetwork(request): newagn_object = AgencyNetwork(name=newagn.cleaned_data.get("name"), publicjoin=newagn.cleaned_data.get("publicjoin"), creator=request.user, creator_agency=request.user.profile.agency, networkid=randomString(20)) newagn_object.save() newagn_object.adminagencys.add(request.user.profile.agency) - messages.success(request, f'Agenturverbund ' + newagn_object.name + ' angelegt!') + messages.success(request, f'Agenturverbund ' + newagn_object.name + ' angelegt!') return redirect('dasettings') else: - context = { + context = { 'active_link' : 'dasettings', 'form' : AgencyNetworkForm(), } @@ -1171,10 +1173,10 @@ def UpdateAgencyNetwork(request, pk): agn.publicjoin= formdata.cleaned_data.get("publicjoin") agn.save() #newagn_object.adminagencys.add(request.user.profile.agency) - messages.success(request, f'Agenturverbund ' + agn.name + ' aktualisiert!') + messages.success(request, f'Agenturverbund ' + agn.name + ' aktualisiert!') return redirect('dasettings') else: - context = { + context = { 'active_link' : 'dasettings', 'form' : AgencyNetworkForm(instance=AgencyNetwork.objects.get(pk=pk)), } @@ -1183,16 +1185,16 @@ def UpdateAgencyNetwork(request, pk): @login_required def DelAgencyNetwork(request, pk): agn = AgencyNetwork.objects.get(pk=pk) - if request.method == 'POST': + if request.method == 'POST': if request.user.profile.agency in agn.adminagencys.all(): agn.delete() - messages.success(request, f'Agenturverbund erfolgreich gelöscht!') + messages.success(request, f'Agenturverbund erfolgreich gelöscht!') return redirect('dasettings') else: - messages.success(request, f'Sie dürfen diesen Agenturverbund nicht löschen!') + messages.success(request, f'Sie dürfen diesen Agenturverbund nicht löschen!') return redirect('dasettings') else: - context = { + context = { 'active_link' : 'dasettings', 'agn' : agn } @@ -1203,10 +1205,10 @@ def AddMyAgencyToAgn(request, networkid): agn = AgencyNetwork.objects.filter(networkid=networkid) if len(agn) == 0: - messages.info(request, f'Agenturverbund nicht gefunden!') - return redirect('dasettings') + messages.info(request, f'Agenturverbund nicht gefunden!') + return redirect('dasettings') else: - context = { + context = { 'active_link' : 'dasettings', 'agn' : list(agn)[0] } @@ -1236,13 +1238,13 @@ def JoinAGN(request, pk): if IsAgencyInAgNetwork(request.user.profile.agency.pk, pk): messages.success(request, f'Ihre Agentur ist bereits in diesem Verbund!') else: - agn = AgencyNetwork.objects.get(pk=pk) + agn = AgencyNetwork.objects.get(pk=pk) if(agn.publicjoin): messages.success(request, f'Verbund erfolgreich beigetreten!') agn.members.add(request.user.profile.agency) # Benachrichtigung senden, dass eine neue Agentur dem Verbund beitreten will. DIe Info geht an alle administrativen Agenturen. - for adminagencys in agn.adminagencys.all(): + for adminagencys in agn.adminagencys.all(): usersofagency = Users.objects.filter(profile__agency=adminagencys) for u in usersofagency: @@ -1258,14 +1260,14 @@ def JoinAGN(request, pk): channel_layer = channels.layers.get_channel_layer() async_to_sync(channel_layer.group_send)("user_" + str(u.pk), {'type' : 'pushhandler', 'pushtext' : "pushnotification__Agenturverbund | Eine neue Agentur ist dem Verbund " + agn.name + " beigetreten."}) else: - - # STATUS + + # STATUS # 1 WANTED AG ASKED TO TARGET NETWORK agnp = AgencyNetworkPreperation(target_network=AgencyNetwork.objects.get(pk=pk), wanted_agency=request.user.profile.agency, status=1) agnp.save() # Benachrichtigung senden, dass eine neue Agentur dem Verbund beitreten will. DIe Info geht an alle administrativen Agenturen. - for adminagencys in agn.adminagencys.all(): + for adminagencys in agn.adminagencys.all(): usersofagency = Users.objects.filter(profile__agency=adminagencys) for u in usersofagency: @@ -1291,23 +1293,23 @@ def ManageAgInAgn(request, pk): agn = AgencyNetwork.objects.filter(pk=pk) if len(agn) == 0: - messages.info(request, f'Agenturverband nicht gefunden!') - return redirect('dasettings') + messages.info(request, f'Agenturverband nicht gefunden!') + return redirect('dasettings') else: network = list(agn)[0] - + allagofagn = [] for a in network.members.all(): allagofagn.append(a) for a in network.sharemembers.all(): allagofagn.append(a) - + for a in network.adminagencys.all(): - allagofagn.append(a) - - context = { + allagofagn.append(a) + + context = { 'active_link' : 'dasettings', 'agn' : list(agn)[0], 'outstanding': AgencyNetworkPreperation.objects.filter(target_network=list(agn)[0]) , @@ -1319,22 +1321,22 @@ def ManageAgInAgn(request, pk): def AddAgToNetwork(request, network, targetag, aginvpk): if IsAgencyInAgNetwork(Agency.objects.get(pk=targetag).pk, network): - messages.info(request, f'Sie sind bereits im Agenturverbund!') + messages.info(request, f'Sie sind bereits im Agenturverbund!') return redirect('dasettings') else: - messages.info(request, f'Einladung angenommen!') + messages.info(request, f'Einladung angenommen!') agn = AgencyNetwork.objects.get(pk=network) agn.members.add(Agency.objects.get(pk=targetag)) AgencyNetworkPreperation.objects.get(pk=aginvpk).delete() - return redirect('managagn', network) + return redirect('managagn', network) @login_required def DelAgInv(request, pk): AgencyNetworkPreperation.objects.get(pk=pk).delete() - messages.info(request, f'Einladung abgelehnt!') + messages.info(request, f'Einladung abgelehnt!') return redirect('dasettings') @login_required @@ -1355,7 +1357,7 @@ def AgencyNetworkAjaxSettings(request): agencynetwork.sharemembers.remove(agency) success = True - # Benachrichtigung senden, dass eine neue Agentur dem Verbund beitreten will. DIe Info geht an alle administrativen Agenturen. + # Benachrichtigung senden, dass eine neue Agentur dem Verbund beitreten will. DIe Info geht an alle administrativen Agenturen. usersofagency = Users.objects.filter(profile__agency=agency) for u in usersofagency: if u.has_perm('users.agencynetwork') and u.has_perm('users.agencynetwork'): @@ -1374,7 +1376,7 @@ def AgencyNetworkAjaxSettings(request): AgencyNetworkPreperation.objects.get(pk=request.GET['agn_inv']).delete() success = True elif request.method == 'GET' and request.GET['action'] == "changeagrights": - agency = Agency.objects.get(pk=request.GET['agency']) + agency = Agency.objects.get(pk=request.GET['agency']) agn = AgencyNetwork.objects.get(pk=request.GET['agnid']) if(agency != None and agn != None): agn.members.remove(agency) @@ -1406,7 +1408,7 @@ def AgencyNetworkAjaxSettings(request): return JsonResponse(data) @login_required -def ModSettingsOrga(request): +def ModSettingsOrga(request): if request.method == 'GET' and request.user.has_perm("users.modulesconfig"): if(request.GET['dynorga'] == "true"): ag = request.user.profile.agency @@ -1423,7 +1425,7 @@ def ModSettingsOrga(request): @login_required def ModSettingsTm(request): - return JsonResponse({}) + return JsonResponse({}) ''' if request.method == 'GET' and request.user.has_perm("users.modulesconfig"): if(request.GET['aze'] == "true"): diff --git a/digitaleagentur/__pycache__/__init__.cpython-38.pyc b/digitaleagentur/__pycache__/__init__.cpython-38.pyc index 3df1199407afca46d5c2b843baa30f36db3dd05f..8f5ab13c0165f17b16ee0020d90500f3154295a2 100644 GIT binary patch delta 112 zcmZ3)xR{YUl$V!_0SH`Kj3;v2#CSMc#e^2878S>2XOcgfE#%}vcKN!54v4AD=? uOwTMy%t=j52MU!IVesSQGxIV_;^XxSDsOSv)5$j?bnjd96OF3nBND=Cg~_Y8?i$xP2INz6%2Oa}^;7Gdx=zvkm$1OOObB!mC} delta 111 zcmew&|5=_dl$V!_0SMBTiN>poZRFG9;*Vm@$S*D_)?_MT2TI)9?9P?WV(YG-k)NBY wpHWhjm|Kvl?~l$V!_0SH`KjN{*I&q+^>ami0E%}vcKDUNaX b42em}OwTMy%t=j52MU!IVeluf;miU6*jyhf delta 88 zcmbO(GEIaxl$V!_0SMBTiN+t=$eYAz>#U!VpPQnlAm3go0?aWs_*U@ aqMwqPo>`KZlbVej>*W+Nl%S&$xklLP0cGQj&b)4 ZiAl*!&n!vINli=#3Y8XN@F#xB0|3QrAB_M2 delta 86 zcmaFN^oWT!l$V!_0SMBTiN=>tPx# diff --git a/message/__pycache__/__init__.cpython-38.pyc b/message/__pycache__/__init__.cpython-38.pyc index 412fdf63886955ae7efc5a9f77c10862ca3b3849..d3687b259e140fad227a303e194a2c582d3f4464 100644 GIT binary patch delta 77 zcmbQmIGd3>l$V!_0SH`Kj3;v2m^nCG#e^2878S>2XOcgfE#%}vcKN!54v4AD=? bOwTMy%t=j52MU!I>F1^v7X#V)6KmxFQ8O6k diff --git a/message/migrations/__pycache__/__init__.cpython-38.pyc b/message/migrations/__pycache__/__init__.cpython-38.pyc index daae7aa9db1bcc6185625934b06be6445f5c8550..d987d496003e69f43b2efd4f7c016d15e3532303 100644 GIT binary patch delta 88 zcmZ3=xQvlIl$V!_0SH`Kj3;v2IC?u<#e^2878S>2XOcgfE#%}vcKN!54v4AD=? mOwTMy%t=j52MU!I>F1^v7X#V)xtZxji6xo&dByq@JLCY2N*##+ diff --git a/news/__pycache__/__init__.cpython-38.pyc b/news/__pycache__/__init__.cpython-38.pyc index a38a98c1892de0590b641108674a3036f6794666..32a487fdf69404d6b50145e8f48b4c886ab9ef65 100644 GIT binary patch delta 74 zcmbQvID?Tpl$V!_0SMe!j3;v27~48q#e^2878S>2Lp%Zp}bY2o)Gn delta 73 zcmbQiIGvF@l$V!_0SMBTiB9CUF|yIm$j?pH&nPKM%q>XOcgfE#%}vcKN!54v4AD=? aOwTMy%t=j52MU!I>F1@E7wb=~k^=w)I2W$~ diff --git a/news/models.py b/news/models.py index 4bf8dd4..4db2990 100644 --- a/news/models.py +++ b/news/models.py @@ -13,22 +13,22 @@ class News(models.Model): name = models.CharField(max_length=200, blank=False, default="") #content = RichTextUploadingField(blank=True, verbose_name='Inhalt') content = models.TextField(blank=True, verbose_name='Inhalt', default="") - + created_by = models.ForeignKey(User, on_delete=models.SET_NULL, null=True) created_date = models.DateTimeField(default=timezone.now, blank=True) - + go_online_on = models.DateTimeField(default=timezone.now, blank=True) # Default date plus two weeks - go_offline_on = models.DateTimeField(default=timezone.now()+timedelta(days=14), blank=True) + go_offline_on = models.DateTimeField(default=timezone.now()+timedelta(days=14), blank=True, null=True) last_modified_by = models.ForeignKey(User, on_delete=models.SET_NULL, null=True, related_name='news_mod_by', default=None) last_modified_on = models.DateTimeField(default=timezone.now, blank=True) agnotify = models.BooleanField(default=True) - + def __str__(self): return f'{self.name}' # Hier Path für Templates des Models mit Parametern def get_absolute_url(self): - return reverse('news-update', kwargs={'pk':self.pk}) \ No newline at end of file + return reverse('news-update', kwargs={'pk':self.pk}) diff --git a/news/views.py b/news/views.py index 78365d1..40b52e0 100644 --- a/news/views.py +++ b/news/views.py @@ -16,8 +16,8 @@ class NewsManagement(LoginRequiredMixin, ListView): # Adding active_link # Loading only user same agency # Change context and return for template-data - def get_context_data(self, **kwargs): - filterdate = timezone.now() + def get_context_data(self, **kwargs): + filterdate = timezone.now() news = News.objects.filter(agency__pk=self.request.user.profile.agency.pk).filter(go_online_on__lt=filterdate).filter(go_offline_on__gt=filterdate).order_by('-created_date') news_arch = News.objects.filter(agency__pk=self.request.user.profile.agency.pk).filter(go_offline_on__lt=filterdate).order_by('-created_date') @@ -28,7 +28,7 @@ class NewsManagement(LoginRequiredMixin, ListView): return context ''' class NewsAddNews(LoginRequiredMixin, CreateView): - model = News + model = News fields = ['name', 'content','go_online_on', 'go_offline_on'] success_url = '/dashboard/news/' ''' @@ -37,18 +37,18 @@ def NewsAdd(request): if request.method == 'POST': normalForm = NewsAddNews(request.POST, instance=request.user) #editorForm = NewsAddNewsEditor(request.POST, instance=request.user) - + #if editorForm.is_valid() and normalForm.is_valid(): if normalForm.is_valid(): normalForm.agency = request.user.profile.agency normalForm.created_by = request.user normalForm.last_modified_by = request.user normalForm.save() - #editorForm.save() - new_news = News() + #editorForm.save() + new_news = News() new_news.agency = request.user.profile.agency new_news.created_by = request.user - + new_news.last_modified_by = request.user new_news.created_date = datetime.now() new_news.last_modified_on = datetime.now() @@ -57,15 +57,15 @@ def NewsAdd(request): new_news.content = normalForm.cleaned_data['content'] new_news.go_online_on = normalForm.cleaned_data['go_online_on'] new_news.go_offline_on = normalForm.cleaned_data['go_offline_on'] - + new_news.save() - messages.success(request, f'News gespeichert!') - return redirect('users-dashboard') - + messages.success(request, f'News gespeichert!') + return redirect('users-dashboard') + else: normalForm = NewsAddNews(instance=request.user) #editorForm = NewsAddNewsEditor(instance=request.user) - + context = { 'normalForm' : normalForm, @@ -80,23 +80,23 @@ def NewsUpdate(request, id): if request.method == 'POST': normalForm = NewsAddNews(request.POST, instance=news) #editorForm = NewsAddNewsEditor(request.POST, instance=news) - + if normalForm.is_valid(): - news = News.objects.get(pk=id, agency=request.user.profile.agency) + news = News.objects.get(pk=id, agency=request.user.profile.agency) news.last_modified_by = request.user news.last_modified_on = datetime.now() news.go_online_on = normalForm.cleaned_data['go_online_on'] news.go_offline_on = normalForm.cleaned_data['go_offline_on'] news.name = normalForm.cleaned_data['name'] - news.content = normalForm.cleaned_data['content'] + news.content = normalForm.cleaned_data['content'] news.save() - messages.success(request, f'News aktualisiert!') - return redirect('/news') + messages.success(request, f'News aktualisiert!') + return redirect('/news') else: normalForm = NewsAddNews(instance=news) #editorForm = NewsAddNewsEditor(instance=news) - + context = { 'normalForm' : normalForm, @@ -109,20 +109,20 @@ def NewsUpdate(request, id): class NewsDeleteView(LoginRequiredMixin, DeleteView): model = News success_url = '/news' - template_name = 'news/news_confirm_delete.html' + template_name = 'news/news_confirm_delete.html' def get_context_data(self, **kwargs): - context = super(NewsDeleteView, self).get_context_data(**kwargs) + context = super(NewsDeleteView, self).get_context_data(**kwargs) context['active_link'] = 'newsmanagement' return context - + @login_required def NewsSingle(request, pk): - news = News.objects.get(pk=pk, agency=request.user.profile.agency) + news = News.objects.get(pk=pk, agency=request.user.profile.agency) context = { 'active_link':'dashboard', 'news' : news - } - - return render(request, 'news/news_single.html', context) \ No newline at end of file + } + + return render(request, 'news/news_single.html', context) diff --git a/notificsys/migrations/__pycache__/__init__.cpython-38.pyc b/notificsys/migrations/__pycache__/__init__.cpython-38.pyc index b974de7fef4cc9fdc375d277f812e0d7aac9cc9f..794917d950e47ebf75269a8aa0647236b9668dea 100644 GIT binary patch delta 91 zcmZ3%xRQ}Ol$V!_0SMe!j3;v2xcE6+#e^2878S>2NfOES|klZz{hV{$XoixNvR^Ye;hCU(gI0R74z%>V!Z delta 90 zcmZ3XOcgfE#%}vcKN!54v4AD=? rOwTMy%t=j52MU!I>F4E_WTs^%7grYR=VqoCC6;97=N0Qu?3M!n?=T+z diff --git a/orga/__pycache__/__init__.cpython-38.pyc b/orga/__pycache__/__init__.cpython-38.pyc index fd7c630488bf06f8cdb59170a4ba5bb5be69f443..f88666b6cee9e3e52da113614f655cede8ad0d37 100644 GIT binary patch delta 74 zcmbQvID?Tpl$V!_0SMe!j3;v27~48q#e^2878S>2MN(i3AQR>}bY2fi3R delta 73 zcmbQiIGvF@l$V!_0SMBTiB9CUF|yIm$j?pH&nPKM%q>XOcgfE#%}vcKN!54v4AD=? aOwTMy%t=j52MU!I>E{=vC+bhEk^=w(;TM|# diff --git a/orga/__pycache__/admin.cpython-38.pyc b/orga/__pycache__/admin.cpython-38.pyc index 32acd7c7f2b1c20bfb4581916086708a3c0f2165..e569895789238e00783f436e049fed3bf3e8b412 100644 GIT binary patch delta 100 zcmX@Wc#x4dl$V!_0SMe!jN_dq@}~J&Ia|eq7N-^!$7JN^q^HKXCF@?JEybhe5KElw>ej>*W+Nl%S&$xklLP0cGQj&b)4 eiAl*!&n!vINli=#3Y8Yc2MN(i3AQ=QFAR07i%yvj6}9 delta 78 zcmbQjJeip1Wz^DQMea#sI diff --git a/orga/__pycache__/views.cpython-38.pyc b/orga/__pycache__/views.cpython-38.pyc index 00b61164bef06bf9d03500d4319e10f34160c0b5..ffcbdad5d420eea4f87dbe0d14b9208a1089b9b6 100644 GIT binary patch delta 80 zcmdlcy2MN(i3AgXEFP50RWI88K?jN delta 79 zcmdlky-k`gl$V!_0SMBTiN;q7Z{*WrHnP;u$j?pH&nPKM%q>XOcgfE#%}vcKN!54v g4AD=?OwTMy%t=j52MU!I>E{=vC+cs`X7=F%0HDknS^xk5 diff --git a/organizer/__pycache__/__init__.cpython-38.pyc b/organizer/__pycache__/__init__.cpython-38.pyc index 91f910073ac3c0b7db347eb2ed980bdd180d1995..b17aa84f8588417576b329e9d88a6af9388087d5 100644 GIT binary patch delta 79 zcmbQkIG2$-l$V!_0SMe!j3;v2SU5Rb#e^2878S>2MN(i8JCt5S<%Cf3OT0FBrhegFUf delta 78 zcmbQsIERrtl$V!_0SMBTiB9CUF?ZC@$j?pH&nPKM%q>XOcgfE#%}vcKN!54v4AD=? fOwTMy%t=j52MU!I>E{=vC+1~Vr55Q=td|1-hnX4N diff --git a/organizer/migrations/__pycache__/__init__.cpython-38.pyc b/organizer/migrations/__pycache__/__init__.cpython-38.pyc index 6372da3193fba57abca395d69f67126677fb29ae..3803d6911e8ffcd4bac96ebc0848dac80f1cbbaa 100644 GIT binary patch delta 90 zcmZ3^xPp;8l$V!_0SMe!j3;v2IQu$V#e^2878S>2MN(i8JCt5S<%ax>G55=%1k^NM38cFF+&+oT^( delta 89 zcmZ3%xSWwYl$V!_0SMBTiB9CUaq`j6$j?pH&nPKM%q>XOcgfE#%}vcKN!54v4AD=? qOwTMy%t=j52MU!I>E{=vC+1~Vr55SuW~LV2XOcgfE#%}vcKN!54v4AD=? fOwTMy%t=j52MU!I=@*wI=A|SSr4;K=td|1-hf*2O diff --git a/standards/templatetags/__pycache__/__init__.cpython-38.pyc b/standards/templatetags/__pycache__/__init__.cpython-38.pyc index fb4baf6514e6a5cc6dbb2e69290f6c0860578750..25883cd728bff86dafe50aabf0b29ce0d55871e0 100644 GIT binary patch delta 92 zcmZ32XzRauQ2YOA^zIVXOcgfE#%}vcKN!54v4AD=? sOwTMy%t=j52MU!I=@*wI=A|SSr4;Lzq~;dnB$lL>B&HYZPwbHc01fLON&o-= diff --git a/standards/templatetags/__pycache__/counter_tag.cpython-38.pyc b/standards/templatetags/__pycache__/counter_tag.cpython-38.pyc index 5cc09d75aa7507daa955a2196ad25b0067b692d8..e6341fbea118f769f3dbecdbc0ee73647bc78ec0 100644 GIT binary patch delta 3350 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 0): returnstat = list(absencedays)[0] + print(absencedays) + return returnstat @register.simple_tag diff --git a/tasks/__pycache__/__init__.cpython-38.pyc b/tasks/__pycache__/__init__.cpython-38.pyc index fb8105065d9a9b883e1396697737193451411c16..7b9ccb40a1aa987c27947244120dfda048806765 100644 GIT binary patch delta 75 zcmbQiIFpe(l$V!_0SMe!j3;v2nAka6#e^2878S>2XOcgfE#%}vcKN!54v4AD=? bOwTMy%t=j52MU!I>6auHXBX>Ftd;`+9hn#% diff --git a/timemanagement/__pycache__/__init__.cpython-38.pyc b/timemanagement/__pycache__/__init__.cpython-38.pyc index 1c4eb9544ede2aa5d7b74de767da0a10fe2c9dff..62070bde123dd7c9498d8f758add41adb3e8f10c 100644 GIT binary patch delta 111 zcmZ3;xQLNEl$V!_0SMe!j3;v2M7uj%#e^2878S>2XOcgfE#%}vcKN!54v4AD=? zOwTMy%t=j52MU!I>6c{YrsgK*0l6SG`tk9Zd6^~g@p=W7w>WHa^HWN5QtcRlW`71* F005XLBlrLS diff --git a/timemanagement/migrations/__pycache__/__init__.cpython-38.pyc b/timemanagement/migrations/__pycache__/__init__.cpython-38.pyc index 3f62c362bcbf0822b4352d183634ccc4992cee7a..e6a8acc4720ef8d1b92a28cd681469a0b9b924a4 100644 GIT binary patch delta 95 zcmZ3(xR#MSl$V!_0SMe!j3;v2cmz3H#e^2878S>22CKn2CLI0D~7HVgLXD delta 94 zcmZ3>xQ3BCl$V!_0SMBTiB9CUaSznb$j?pH&nPKM%q>XOcgfE#%}vcKN!54v4AD=? rOwTMy%t=j52MU!I>6c{YrsgK*0l6SG`nj3uMTsSu`FX|q6Z_==a+M&H diff --git a/users/__pycache__/__init__.cpython-38.pyc b/users/__pycache__/__init__.cpython-38.pyc index 8a2e35a6acafaea4deccf6a856bb40bf262df0d3..23656421f68fa925bc218f1bc8f57f54b455a2b6 100644 GIT binary patch delta 75 zcmbQiIFpe(l$V!_0SMe!j3;v2nAka6#e^2878S>2XOcgfE#%}vcKN!54v4AD=? bOwTMy%t=j52MU!I>6aF#78UDHtd;`+9r_q4 diff --git a/users/templates/users/base.html b/users/templates/users/base.html index 3d572d9..50c4860 100644 --- a/users/templates/users/base.html +++ b/users/templates/users/base.html @@ -239,7 +239,7 @@ - {% endfor %} - - {% for pass in res_pass %}