558 lines
22 KiB
Python
558 lines
22 KiB
Python
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
|
|
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
|
|
from django.contrib.auth.models import User, Group, Permission
|
|
import random
|
|
import string
|
|
from users.usersforms import UsersPermForm
|
|
from django.contrib.auth.mixins import LoginRequiredMixin
|
|
from django.views.generic import CreateView
|
|
from users.models import Profile
|
|
from areas.models import Areas
|
|
from tasks.models import Tasks
|
|
import webcolors
|
|
from datetime import datetime
|
|
from standards.models import Standards
|
|
|
|
def randomString(stringLength=10):
|
|
"""Generate a random string of fixed length """
|
|
letters = string.ascii_lowercase
|
|
return ''.join(random.choice(letters) for i in range(stringLength))
|
|
|
|
@login_required
|
|
def checkForGroupName(request, newgroupname):
|
|
stat = True
|
|
groupsagency = AgencyGroup.objects.filter(agency__pk=request.user.profile.agency.pk)
|
|
for group in groupsagency:
|
|
if group.agencygroupname.upper() == newgroupname.upper():
|
|
stat = False
|
|
return stat
|
|
|
|
@login_required
|
|
def getAllForms(request, context):
|
|
# USERFORMS
|
|
userform = UsersSelfChangeForm(instance=request.user)
|
|
passwordform = PasswordChangeForm(request.user)
|
|
context.update({'userform' : userform})
|
|
context.update({'passwordform' : passwordform})
|
|
|
|
# NOTIFICTAION FORMS
|
|
notificationform = UsersNotificationForm(instance=request.user.profile)
|
|
context.update({'notificationform' : notificationform})
|
|
|
|
# AGENCY UPDATE FORMS
|
|
agencyform = AgencyUpdateForm(instance=request.user.profile.agency)
|
|
context.update({'agencyform' : agencyform})
|
|
|
|
#PERMS
|
|
perms = AgencyGroupPerms()
|
|
context.update({'perms' : perms})
|
|
|
|
#MODULFORMS
|
|
modulform = AgencyModulsForm(instance=request.user.profile.agency)
|
|
context.update({'modulform' : modulform})
|
|
|
|
# USER FOR USERTABLE
|
|
users = User.objects.filter(profile__agency__pk=request.user.profile.agency.pk)
|
|
return context
|
|
|
|
|
|
'''
|
|
Lädt die Formulare für die einzelnen Einstellungen vollständig
|
|
'''
|
|
@login_required
|
|
def DASettings(request):
|
|
context = {
|
|
'active_link' : 'dasettings'
|
|
}
|
|
context = getAllForms(request, context)
|
|
|
|
# USERS FOR MEMBERS AND GROUPCOUNTERS
|
|
usersofagency = User.objects.filter(profile__agency__pk=request.user.profile.agency.pk).order_by("last_name")
|
|
context.update({"usersofagency" : usersofagency})
|
|
|
|
# LOAD AGENCYJOBS
|
|
context.update({"agencyjobs" : AgencyJob.objects.filter(agency__pk=request.user.profile.agency.pk).order_by("name")})
|
|
|
|
# LOAD GROUPS
|
|
agencygroups = AgencyGroup.objects.filter(agency__pk=request.user.profile.agency.pk).order_by("agencygroupname")
|
|
context.update({"agencygroups" : agencygroups})
|
|
|
|
# LOAD AREAS
|
|
agencyareas = Areas.objects.filter(agency__pk=request.user.profile.agency.pk).order_by('areaorder')
|
|
context.update({"agencyareas" : agencyareas})
|
|
|
|
# LOAD TASKS
|
|
alltasks = Tasks.objects.filter(agency__pk=request.user.profile.agency.pk).order_by('name')
|
|
context.update({"alltasks" : alltasks})
|
|
|
|
if request.method == 'POST' and request.POST.get("settings_area") == "profil":
|
|
return SettingsProfilManagement(request, context)
|
|
elif request.method == 'POST' and request.POST.get("settings_area") == "agency":
|
|
return SettingsAgency(request, context)
|
|
elif request.method == 'POST' and request.POST.get("settings_area") == "moduls":
|
|
return SettingsAgencyModuls(request, context)
|
|
|
|
|
|
|
|
# Returning the data from database for normal-loading Settings
|
|
else:
|
|
# DEFAULT DATA FORM-INFOS
|
|
# Hier müssen alle Standard-Formulare rein, damit die Seite Settings
|
|
# generell geladen werden kann.
|
|
# PROFILE FORMS
|
|
userform = UsersSelfChangeForm(instance=request.user)
|
|
passwordform = PasswordChangeForm(request.user)
|
|
context.update({'userform' : userform})
|
|
context.update({'passwordform' : passwordform})
|
|
|
|
# NOTIFICTAION FORMS
|
|
notificationform = UsersNotificationForm(instance=request.user.profile)
|
|
context.update({'notificationform' : notificationform})
|
|
|
|
# AGENCY UPDATE FORMS
|
|
agencyform = AgencyUpdateForm(instance=request.user.profile.agency)
|
|
context.update({'agencyform' : agencyform})
|
|
|
|
return render(request, 'dasettings/settings.html', context)
|
|
|
|
'''
|
|
|
|
AGENCY
|
|
|
|
Hier werden die Agenturinfos ink. Agenturcropper für das Agenturbild angepasst.
|
|
|
|
'''
|
|
@login_required
|
|
def SettingsAgency(request, context):
|
|
if request.POST.get("form_type") == "agencyform":
|
|
agencyform = AgencyUpdateForm(request.POST, instance=request.user.profile.agency)
|
|
if agencyform.is_valid():
|
|
if 'agencypic' in request.FILES:
|
|
request.user.profile.agency.agencypic = request.FILES['agencypic']
|
|
agencyform.save()
|
|
context['agencyform'] = AgencyUpdateForm(instance=request.user.profile.agency)
|
|
messages.success(request, f'Agenturdaten aktualisiert!')
|
|
return render(request, 'dasettings/settings.html', context)
|
|
else:
|
|
messages.success(request, f'Daten falsch eingegeben!')
|
|
context['agencyform'] = AgencyUpdateForm(instance=request.user.profile.agency)
|
|
return render(request, 'dasettings/settings.html', context)
|
|
|
|
@login_required
|
|
def SettingsAgencyModuls(request, context):
|
|
if request.POST.get("form_type") == "agencymodform":
|
|
agencymoduleform = AgencyModulsForm(request.POST, instance=request.user.profile.agency)
|
|
if agencymoduleform.is_valid():
|
|
agencymoduleform.save()
|
|
context['modulform'] = AgencyModulsForm(instance=request.user.profile.agency)
|
|
messages.success(request, f'Moduleinstellungen aktualisiert!')
|
|
return render(request, 'dasettings/settings.html', context)
|
|
else:
|
|
context['modulform'] = AgencyModulsForm(instance=request.user.profile.agency)
|
|
messages.success(request, f'Fehler beim aktualisieren! Bitte wenden Sie sich an den Support.')
|
|
return render(request, 'dasettings/settings.html', context)
|
|
|
|
'''
|
|
|
|
Hier werden die Profilinfos des User zurückgesetzt; Parameter kommen von Settings()
|
|
|
|
- Email
|
|
- Passwort aktualisieren
|
|
|
|
'''
|
|
@login_required
|
|
def SettingsProfilManagement(request, context):
|
|
# Check, which form
|
|
# USERFORM
|
|
if request.POST.get("form_type") == "userform":
|
|
userform = UsersSelfChangeForm(request.POST, instance=request.user)
|
|
if userform.is_valid():
|
|
userform.save()
|
|
messages.success(request, f'E-Mailadresse aktualisiert!')
|
|
passwordform = PasswordChangeForm(request.user)
|
|
context['userform'] = userform
|
|
context['passwordform'] = passwordform
|
|
return render(request, 'dasettings/settings.html', context)
|
|
else:
|
|
messages.success(request, f'Keine E-Mailadresse eingegeben oder E-Mail bereits vorhanden!')
|
|
passwordform = PasswordChangeForm(request.user)
|
|
userform = UsersSelfChangeForm(instance=request.user)
|
|
context['userform'] = userform
|
|
context['passwordform'] = passwordform
|
|
return render(request, 'dasettings/settings.html', context)
|
|
# PASSWORDFORM
|
|
elif request.POST.get("form_type") == "passwordform":
|
|
passwordform = PasswordChangeForm(request.user, request.POST)
|
|
if passwordform.is_valid():
|
|
passwordform.save()
|
|
update_session_auth_hash(request, request.user)
|
|
userform = UsersSelfChangeForm(instance=request.user)
|
|
context['userform'] = userform
|
|
context['passwordform'] = passwordform
|
|
messages.success(request, f'Passwort aktualisiert!')
|
|
return render(request, 'dasettings/settings.html', context)
|
|
else:
|
|
messages.success(request, f'Passwort falsch eingegeben!')
|
|
passwordform = PasswordChangeForm(request.user)
|
|
userform = UsersSelfChangeForm(instance=request.user)
|
|
context['userform'] = userform
|
|
context['passwordform'] = passwordform
|
|
return render(request, 'dasettings/settings.html', context)
|
|
|
|
@login_required
|
|
def SettingsAjaxRouter(request):
|
|
success = False
|
|
data = {}
|
|
# UPDATE NOTIFICATIONS BY FIELDNAME AND NEW VALUE
|
|
if request.method == 'GET' and request.GET['action'] == "update_notifications" :
|
|
success = False
|
|
new_stat = request.GET['new_stat']
|
|
field_to_change = getattr(request.user.profile, request.GET['fieldname'])
|
|
if(field_to_change or not field_to_change):
|
|
if(new_stat == "1"):
|
|
setattr(request.user.profile, request.GET['fieldname'], True)
|
|
else:
|
|
setattr(request.user.profile, request.GET['fieldname'], False)
|
|
request.user.profile.save()
|
|
success = True
|
|
# UPDATE TOOLTUP
|
|
elif request.method == 'GET' and request.GET['action'] == "change_showtooltips" :
|
|
newtooltipvalue = False
|
|
user = User.objects.get(pk=request.user.pk, profile__agency=request.user.profile.agency)
|
|
if user.profile.showtooltips:
|
|
user.profile.showtooltips = False
|
|
else:
|
|
user.profile.showtooltips = True
|
|
newtooltipvalue = True
|
|
user.save()
|
|
success = True
|
|
data = {'newttvalue' : newtooltipvalue}
|
|
# UPDATE AGENCYJOB
|
|
elif request.method == 'GET' and request.GET['action'] == "update_agencyfunc" :
|
|
job_id = request.GET['id']
|
|
job_value = request.GET['newvalue']
|
|
tempjob = AgencyJob.objects.get(pk=job_id, agency=request.user.profile.agency)
|
|
tempjob.name = job_value
|
|
tempjob.save()
|
|
success = True
|
|
# DELETE AGENVY JOB FUNC - RETURN ONLY NAME FOR CONFIRM
|
|
elif request.method == 'GET' and request.GET['action'] == "get_agencyfunc" :
|
|
job_id = request.GET['id']
|
|
tempjob = AgencyJob.objects.get(pk=job_id, agency=request.user.profile.agency)
|
|
data = {"funcname" : tempjob.name}
|
|
success = True
|
|
# DELETE FINAL AGECY JOB
|
|
elif request.method == 'GET' and request.GET['action'] == "delete_agencyfunc" :
|
|
job_id = request.GET['id']
|
|
tempjob = AgencyJob.objects.get(pk=job_id, agency=request.user.profile.agency)
|
|
tempjob.delete()
|
|
success = True
|
|
elif request.method == 'GET' and request.GET['action'] == "add_agencyfunc" :
|
|
tempjob = AgencyJob(name="", agency=request.user.profile.agency)
|
|
tempjob.save()
|
|
data = {"new_id" : tempjob.pk}
|
|
success = True
|
|
# GRUPPENAMEN AKTUALISIEREN
|
|
elif request.method == 'GET' and request.GET['action'] == "update_groupname" :
|
|
group = AgencyGroup.objects.get(pk=request.GET['id'], agency=request.user.profile.agency)
|
|
if(checkForGroupName(request, request.GET['newvalue'])):
|
|
group.agencygroupname = request.GET['newvalue']
|
|
group.save()
|
|
data = {"newvalue" : group.agencygroupname}
|
|
success = True
|
|
else:
|
|
success = False
|
|
# GRUPPENNAMEN HOLEN
|
|
elif request.method == 'GET' and request.GET['action'] == "get_groupname" :
|
|
group = AgencyGroup.objects.get(pk=request.GET['id'], agency=request.user.profile.agency)
|
|
data = {"groupname" : group.agencygroupname}
|
|
success = True
|
|
elif request.method == 'GET' and request.GET['action'] == "add_group" :
|
|
if(checkForGroupName(request, request.GET['newvalue'])):
|
|
tempgroup = Group(name=str(request.user.profile.agency.pk) + "_" + randomString(8))
|
|
tempgroup.save()
|
|
tempgroup_ag = AgencyGroup(savefordel=False, group=tempgroup, agency=request.user.profile.agency, agencygroupname=request.GET['newvalue'])
|
|
tempgroup_ag.save()
|
|
success = True
|
|
data = {"group_id" : tempgroup_ag.pk, "group_name" : tempgroup_ag.agencygroupname}
|
|
else:
|
|
success = False
|
|
elif request.method == 'GET' and request.GET['action'] == "delete_group" :
|
|
groupag = AgencyGroup.objects.get(pk=request.GET['id'], agency=request.user.profile.agency)
|
|
group_to_del = groupag.group
|
|
group_to_del.delete()
|
|
success = True
|
|
# PERMISSIONS ON GROUP!
|
|
elif request.method == 'GET' and request.GET['action'] == "change_perm_group" :
|
|
success = True
|
|
group_id = request.GET['id']
|
|
perm_name = request.GET['perm']
|
|
val = request.GET['val']
|
|
aggroup = AgencyGroup.objects.get(pk=group_id, agency=request.user.profile.agency)
|
|
# CHECK IF REQUESTED USER IS IN THIS AGENCY
|
|
if(request.user.profile.agency.pk == aggroup.agency.pk):
|
|
if(val == "true"):
|
|
tempperm = Permission.objects.get(codename=perm_name)
|
|
aggroup.group.permissions.add(tempperm)
|
|
else:
|
|
tempperm = Permission.objects.get(codename=perm_name)
|
|
aggroup.group.permissions.remove(tempperm)
|
|
else:
|
|
success = False
|
|
# REMOVE USER FROM GROUP
|
|
elif request.method == 'GET' and request.GET['action'] == "remove_user_from_group" :
|
|
success = True
|
|
groupid = request.GET['groupid']
|
|
userid = request.GET['userid']
|
|
aggroup = AgencyGroup.objects.get(pk=groupid, agency=request.user.profile.agency)
|
|
usertoremove = User.objects.get(pk=userid, profile__agency=request.user.profile.agency)
|
|
# CHECK IF REQUESTED USER IS IN THIS AGENCY
|
|
if(request.user.profile.agency.pk == aggroup.agency.pk):
|
|
if aggroup.group in usertoremove.groups.all():
|
|
aggroup.group.user_set.remove(usertoremove)
|
|
|
|
data = {"userid" : usertoremove.pk, "groupid" : aggroup.pk, "user_fname" : usertoremove.first_name, "user_lname" : usertoremove.last_name}
|
|
else:
|
|
success = False
|
|
# ADD USER TO GROUP
|
|
elif request.method == 'GET' and request.GET['action'] == "add_user_to_group" :
|
|
success = True
|
|
groupid = request.GET['groupid']
|
|
userid = request.GET['userid']
|
|
aggroup = AgencyGroup.objects.get(pk=groupid, agency=request.user.profile.agency)
|
|
usertoadd = User.objects.get(pk=userid, profile__agency=request.user.profile.agency)
|
|
# CHECK IF REQUESTED USER IS IN THIS AGENCY
|
|
if(request.user.profile.agency.pk == aggroup.agency.pk):
|
|
aggroup.group.user_set.add(usertoadd)
|
|
data = {"userid" : usertoadd.pk, "groupid" : aggroup.pk, "user_fname" : usertoadd.first_name, "user_lname" : usertoadd.last_name}
|
|
else:
|
|
success = False
|
|
# AREA
|
|
# AREANAMEN HOLEN
|
|
elif request.method == 'GET' and request.GET['action'] == "get_areaname" :
|
|
area = Areas.objects.get(pk=request.GET['id'], agency=request.user.profile.agency)
|
|
data = {"areaname" : area.name, "areacolor" : area.color}
|
|
success = True
|
|
# ARENAMEN UPDATE
|
|
elif request.method == 'GET' and request.GET['action'] == "update_areaname" :
|
|
area = Areas.objects.get(pk=request.GET['id'], agency=request.user.profile.agency)
|
|
area.name = request.GET['newvalue']
|
|
area.color = request.GET['color']
|
|
area.save()
|
|
data = {"newvalue" : area.name, "color" : area.color}
|
|
success = True
|
|
# ADD AREA
|
|
elif request.method == 'GET' and request.GET['action'] == "add_area" :
|
|
area = Areas(created_area_by=request.user, agency=request.user.profile.agency, name=request.GET["newvalue"], color=request.GET['color'])
|
|
area.save()
|
|
success = True
|
|
# REMOVE AREA
|
|
elif request.method == 'GET' and request.GET['action'] == "remove_area" :
|
|
Areas(pk=request.GET['id']).delete()
|
|
success = True
|
|
# ADD TASK
|
|
elif request.method == 'GET' and request.GET['action'] == "add_task" :
|
|
task = Tasks(created_area_by=request.user, area=Areas.objects.get(pk=request.GET['areaid']), agency=request.user.profile.agency, name=request.GET["newvalue"])
|
|
task.save()
|
|
taskcreator_fullname = task.created_area_by.first_name + " " + task.created_area_by.last_name
|
|
data = {"name" : task.name, "newtaskid" : task.pk, "areaname" : task.area.name, "taskcreator_fullname" : taskcreator_fullname, "createdate" : task.created_area_date.strftime("%d. %B %Y")}
|
|
success = True
|
|
# TASKNAME VISIBLE UND USERS HOLEN
|
|
elif request.method == 'GET' and request.GET['action'] == "get_taskname" :
|
|
task = Tasks.objects.get(pk=request.GET['id'], agency=request.user.profile.agency)
|
|
# User still in Area
|
|
# Get all Users from same Agency which are NOT in context_added_users
|
|
added_users = task.usersfield.all()
|
|
addus = {}
|
|
posus = {}
|
|
i = 0
|
|
# GET ADDED USERS
|
|
for us in added_users:
|
|
addus.update({ i : {"fullname" : us.first_name + " " + us.last_name, "userid" : us.pk}})
|
|
i += 1
|
|
|
|
# GET POSSIBLE TO ADD USERS
|
|
k = 0
|
|
possible_users = User.objects.filter(profile__agency__pk=request.user.profile.agency.pk).exclude(pk__in=added_users)
|
|
print(possible_users)
|
|
for us in possible_users:
|
|
posus.update({ k : {"fullname" : us.first_name + " " + us.last_name, "userid" : us.pk}})
|
|
k += 1
|
|
print(posus)
|
|
data = {"taskname" : task.name, "visible" : task.visible, "added_users" : addus, "addedl" : i, "possl" : k, "possible_users" : posus, "taskarea" : task.area.pk}
|
|
success = True
|
|
# REMOVE Task
|
|
elif request.method == 'GET' and request.GET['action'] == "remove_task" :
|
|
Tasks.objects.get(pk=request.GET['id'], agency=request.user.profile.agency).delete()
|
|
success = True
|
|
# UPDATE TASK VISIBLE
|
|
elif request.method == 'GET' and request.GET['action'] == "update_visible_taskname" :
|
|
task = Tasks.objects.get(pk=request.GET['id'], agency=request.user.profile.agency)
|
|
if(task.visible):
|
|
task.visible = False;
|
|
else:
|
|
task.visible = True;
|
|
task.save()
|
|
success = True
|
|
# UPDATE TASKNAME
|
|
elif request.method == 'GET' and request.GET['action'] == "change_taskname" :
|
|
task = Tasks.objects.get(pk=request.GET['id'])
|
|
task.name = request.GET["newvalue"]
|
|
data = {"newvalue" : task.name}
|
|
newareaid = request.GET["newareaid"]
|
|
standardsmoved = False
|
|
if int(task.area.pk) != int(newareaid):
|
|
standardsmoved = True
|
|
newareaobj = Areas.objects.get(pk=newareaid, agency=request.user.profile.agency)
|
|
Standards.objects.filter(agency=request.user.profile.agency, area=task.area).update(area=newareaobj)
|
|
task.area = newareaobj
|
|
task.save()
|
|
data = {"newvalue" : task.name, "smoved" : standardsmoved}
|
|
success = True
|
|
else:
|
|
success = False
|
|
return JsonResponse({"success" : success, "data" : data})
|
|
|
|
|
|
'''
|
|
UserProfileUpdate
|
|
|
|
unterscheidet zwischen newuser=0 --> PROFIL AKTUALISIEREN
|
|
und newuser=1 --> PROFIL Neu speichern
|
|
|
|
'''
|
|
@login_required
|
|
def UserProfileUpdate(request, pk, newuser=0):
|
|
usertochange = User.objects.get(pk=pk)
|
|
user_fullname = usertochange.first_name + " " + usertochange.last_name
|
|
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']
|
|
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()
|
|
|
|
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,
|
|
'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,
|
|
'newuser' : newuser,
|
|
'mail' : usertochange.email,
|
|
'vieweduser' : usertochange.pk,
|
|
'imagelink' : usertochange.profile.get_photo_url,
|
|
'profileform' : UserProfileForm(instance=usertochange.profile),
|
|
'parentuser' : parentuser,
|
|
'usertoparent' : User.objects.filter(profile__agency__pk=usertochange.profile.agency.pk, profile__visible=True),
|
|
'agencygroups' : AgencyGroup.objects.filter(agency__pk=usertochange.profile.agency.pk).order_by("agencygroupname")
|
|
}
|
|
return render(request, 'dasettings/user_usprof.html', context)
|
|
|
|
# View zur Veränderung der Stammdaten des Benutzers
|
|
@login_required
|
|
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)
|
|
if formtosave.is_valid():
|
|
formtosave.save()
|
|
formtosave.save()
|
|
messages.success(request, f'Stammdaten aktualisiert!')
|
|
return redirect('dasettings')
|
|
else:
|
|
messages.success(request, f'Fehlerhafte Eingabe! Mailadresse bereits vorhanden!')
|
|
context = {
|
|
'active_link' : 'dasettings',
|
|
'user_fullname' : user_fullname,
|
|
'userform' : UserNewUserForm(request.POST, instance=usertochange),
|
|
}
|
|
return render(request, 'dasettings/user_changemaindata.html', context)
|
|
else:
|
|
context = {
|
|
'active_link' : 'dasettings',
|
|
'user_fullname' : user_fullname,
|
|
'userform' : UserNewUserForm(instance=usertochange),
|
|
}
|
|
return render(request, 'dasettings/user_changemaindata.html', context)
|
|
|
|
# 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")):
|
|
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.',
|
|
'support@digitale-agentur.com',
|
|
[newuserform.cleaned_data.get('email')],
|
|
html_message=msg_html,
|
|
fail_silently=False,
|
|
)
|
|
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!')
|
|
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)
|