Organigramm Nutzer löschen done
This commit is contained in:
parent
756937f7b0
commit
d783f5d77f
|
|
@ -3,24 +3,32 @@
|
|||
{% load counter_tag %}
|
||||
{% block content %}
|
||||
<div class="content-section">
|
||||
<div class="media">
|
||||
<div class="media-body">
|
||||
<h2 class="account-heading">
|
||||
{% if orgaerror == True %}
|
||||
Benutzer {{ user.first_name }} {{ user.last_name }} löschen?
|
||||
{% else %}
|
||||
Benutzer {{ user.first_name }} {{ user.last_name }} kann nicht gelöscht werden - Organigrammfehler
|
||||
{% endif %}
|
||||
</h2>
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
<h3>{{user.get_full_name}} wirklich löschen?</h3>
|
||||
<!-- Für das Speichern der Bilder enctype -->
|
||||
<form method="POST">
|
||||
{% csrf_token %}
|
||||
|
||||
{% if orgaerror == False %}
|
||||
<hr>
|
||||
<h4>Untergeordnete Mitarbeiter</h4>
|
||||
<p>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.</p>
|
||||
<div class="input-group mb-3 col-6 mt-2" >
|
||||
<input class="form-control" list="neworga" id="neworgafield" type="text" onkeyup="" >
|
||||
<div class="input-group-append">
|
||||
<button type="button" onclick="javascript:clearField('neworgafield')" class="btn btn-secondary" ><i class="fas fa-times"></i></button>
|
||||
</div>
|
||||
<datalist id="neworga">
|
||||
{% for us in usersofagency %}
|
||||
<option id="neworga_{{us.pk}}" value="{{us.get_full_name}}">{{us.get_full_name}}</option>
|
||||
{% endfor %}
|
||||
</datalist>
|
||||
<div class="input-group-append">
|
||||
<button class="btn btn-primary" type="button" id="updateOrgaButton" onclick="javascript:updateOrga()">Speichern</button>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
{% endif %}
|
||||
<h4>In folgenden Standards ist {{object.get_full_name}} involviert:</h4>
|
||||
<small>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.</small><br />
|
||||
<p>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.</p>
|
||||
<hr>
|
||||
<div class="input-group mb-3 col-6" >
|
||||
<input class="form-control" list="copyusertoall" id="copyusertoallfield" type="text" onkeyup="" >
|
||||
|
|
@ -145,29 +153,22 @@
|
|||
</table>
|
||||
{% endfor %}
|
||||
<hr >
|
||||
{% if orgaerror == True %}
|
||||
<p>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.<br /></p>
|
||||
<a href="{% url 'users-delete-getdata' user.pk %}" id="downloadFileAction" download>Daten erneut herunterladen</a>
|
||||
<hr>
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-primary">Benutzer löschen</button>
|
||||
<button type="submit" class="btn btn-primary" id="finalDelButton" {% if orgaerror == False %} disabled {% endif %}>Benutzer löschen</button>
|
||||
<a href="{% url 'dasettings' %}" class="btn">Abbrechen</a>
|
||||
</div>
|
||||
{% else %}
|
||||
<p>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 <b>Übergeordneter Mitarbeiter</b>. <br /><br /><b>Es können nur ein Mitarbeiter gelöscht werden, wenn diesem kein Mitarbeiter untergeordnet sind.</b></p>
|
||||
<div class="form-group">
|
||||
<a href="{% url 'dasettings' %}" class="btn">Abbrechen</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
</form>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
//Auto-Download the file
|
||||
{% if orgaerror == True %}
|
||||
$(document).ready(function(){
|
||||
// TODO: Hier auto-Download wieder aktivieren!
|
||||
//location.href = "{% url 'users-delete-getdata' user.pk %}"
|
||||
})
|
||||
{% endif %}
|
||||
|
||||
|
||||
|
||||
function clearField(id){
|
||||
|
|
@ -262,6 +263,37 @@
|
|||
buttons[i].click();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function updateOrga(){
|
||||
var value = $("#neworgafield").val();
|
||||
if(value.length > 0){
|
||||
id = $('#neworga').find('option[value="' + value + '"]').attr('id');
|
||||
$.ajax(
|
||||
{
|
||||
type: "GET",
|
||||
url: "{% url 'update-user-orga' %}",
|
||||
data:{
|
||||
userid : id.split("_")[1],
|
||||
useridold : {{object.pk}}
|
||||
},
|
||||
beforeSend: function(){
|
||||
$("#updateOrgaButton").html('<div class="spinner-border spinner-border-sm" role="status" style="margin-bottom: 2px;"><span class="sr-only">Speichern...</span></div>');
|
||||
},
|
||||
success: function( data )
|
||||
{
|
||||
console.log(data);
|
||||
if(data["success"]){
|
||||
$("#finalDelButton").attr("disabled", false);
|
||||
$("#updateOrgaButton").html('Gespeichert');
|
||||
}
|
||||
else{
|
||||
$("#updateOrgaButton").html('Fehler');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ urlpatterns = [
|
|||
path('icsall/<int:ag>', views.getICSFileAll, name="geticsall"),
|
||||
path('icspublic/<slug:code>/<int:ag>', views.getICSFileEx, name="getics"),
|
||||
path('icspublicall/<slug:code>/<int:ag>', views.getICSFileExAll, name="geticsall"),
|
||||
path('updateuserorga/', views.UpdateUserOrga, name="update-user-orga")
|
||||
#path('recalculateabsence/<slug:code>', views.recalculateAbsence, name="recalculateabsence"),
|
||||
|
||||
]
|
||||
|
|
|
|||
|
|
@ -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 = {
|
||||
|
|
|
|||
Loading…
Reference in New Issue