From d783f5d77fe18e21ab3bfedb963b9dfb3054b7e6 Mon Sep 17 00:00:00 2001 From: "holger.trampe" Date: Sun, 28 Mar 2021 12:53:56 +0200 Subject: [PATCH] =?UTF-8?q?Organigramm=20Nutzer=20l=C3=B6schen=20done?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../templates/users/user_confirm_delete.html | 80 +++++++++++++------ users/urls.py | 1 + users/views.py | 24 ++++++ 3 files changed, 81 insertions(+), 24 deletions(-) diff --git a/users/templates/users/user_confirm_delete.html b/users/templates/users/user_confirm_delete.html index c4304e5..396ae50 100644 --- a/users/templates/users/user_confirm_delete.html +++ b/users/templates/users/user_confirm_delete.html @@ -3,24 +3,32 @@ {% load counter_tag %} {% block content %}
-
-
- -
-
-
+

{{user.get_full_name}} wirklich löschen?

{% csrf_token %} - + {% if orgaerror == False %} +
+

Untergeordnete Mitarbeiter

+

Wählen Sie aus, welcher Mitarbeiter als übergeordneter Mitarbeiter durch {{user.get_full_name}} ersetzt werden soll. Vorher kann der Nutzer nicht gelöscht werden.

+
+ +
+ +
+ + {% for us in usersofagency %} + + {% endfor %} + +
+ +
+
+
+ {% endif %}

In folgenden Standards ist {{object.get_full_name}} involviert:

- Wählen Sie aus, wer anstelle von {{object.get_full_name}} eingesetzt werden soll. Bleibt das Feld frei, wird der Standard nicht verändert und der zu löschende Nutzer wird entfernt.
+

Wählen Sie aus, wer anstelle von {{object.get_full_name}} eingesetzt werden soll. Bleibt das Feld frei, wird der Standard nicht verändert und der zu löschende Nutzer wird entfernt.


@@ -145,29 +153,22 @@ {% endfor %}
- {% if orgaerror == True %}

Alle Chat-Nachrichten werden unwiederruflich gelöscht! Soeben wurden alle Vertragsdaten (Abwesenheit und Zeiterfassung), wenn vorhanden, als CSV heruntergeladen. Diese können Sie archivieren und entsprechend Ihrer agenturinternen Gegebenheiten bzgl. Datenspeicherung aufbewahren.

Daten erneut herunterladen
-   +   Abbrechen
- {% else %} -

Achtung! Dieser Nutzer kann nicht gelöscht werden, da im Organigramm andere Mitarbeiter diesem untergeordnet ist. Bitte prüfen Sie die Einstellungen Ihrer Mitarbeiter unter Einstellungen, Mitarbeiter im Bereich Übergeordneter Mitarbeiter.

Es können nur ein Mitarbeiter gelöscht werden, wenn diesem kein Mitarbeiter untergeordnet sind.

-
- Abbrechen -
- {% endif %}
diff --git a/users/urls.py b/users/urls.py index 939b72b..fcf564b 100644 --- a/users/urls.py +++ b/users/urls.py @@ -46,6 +46,7 @@ urlpatterns = [ path('icsall/', views.getICSFileAll, name="geticsall"), path('icspublic//', views.getICSFileEx, name="getics"), path('icspublicall//', views.getICSFileExAll, name="geticsall"), + path('updateuserorga/', views.UpdateUserOrga, name="update-user-orga") #path('recalculateabsence/', views.recalculateAbsence, name="recalculateabsence"), ] diff --git a/users/views.py b/users/views.py index 5fb1916..515e51d 100644 --- a/users/views.py +++ b/users/views.py @@ -1127,6 +1127,30 @@ class ProfileDeleteView(LoginRequiredMixin, DeleteView): messages.success(request, f'Benutzer ' +name+ ' wurde gelöscht!') return response +# Saves a new User in parent of others Users. +@login_required +def UpdateUserOrga(request): + if(request.method == "GET"): + + newuser = User.objects.get(pk=request.GET['userid']) + olduser = User.objects.get(pk=request.GET['useridold']) + + if(newuser.profile.agency == request.user.profile.agency and request.user.has_perm("users.usermanager")): + for u in User.objects.filter(profile__agency=newuser.profile.agency): + if u.profile.parent != None and u.profile.parent == olduser and newuser != u: + u.profile.parent = newuser + u.save() + # der neue User ist der gleiche wie er selbst - hier den Chef setzen! + elif u.profile.parent != None: + u.profile.parent = User.objects.filter(profile__agency=newuser.profile.agency).order_by("pk")[0] + u.save() + + success = True + else: + success = False + return JsonResponse({"success" : success}) + + @login_required def agency(request): context = {