Organigramm Nutzer löschen done
This commit is contained in:
parent
756937f7b0
commit
d783f5d77f
|
|
@ -3,24 +3,32 @@
|
||||||
{% load counter_tag %}
|
{% load counter_tag %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="content-section">
|
<div class="content-section">
|
||||||
<div class="media">
|
<h3>{{user.get_full_name}} wirklich löschen?</h3>
|
||||||
<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>
|
|
||||||
<!-- Für das Speichern der Bilder enctype -->
|
<!-- Für das Speichern der Bilder enctype -->
|
||||||
<form method="POST">
|
<form method="POST">
|
||||||
{% csrf_token %}
|
{% 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>
|
<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>
|
<hr>
|
||||||
<div class="input-group mb-3 col-6" >
|
<div class="input-group mb-3 col-6" >
|
||||||
<input class="form-control" list="copyusertoall" id="copyusertoallfield" type="text" onkeyup="" >
|
<input class="form-control" list="copyusertoall" id="copyusertoallfield" type="text" onkeyup="" >
|
||||||
|
|
@ -145,29 +153,22 @@
|
||||||
</table>
|
</table>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<hr >
|
<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>
|
<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>
|
<a href="{% url 'users-delete-getdata' user.pk %}" id="downloadFileAction" download>Daten erneut herunterladen</a>
|
||||||
<hr>
|
<hr>
|
||||||
<div class="form-group">
|
<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>
|
<a href="{% url 'dasettings' %}" class="btn">Abbrechen</a>
|
||||||
</div>
|
</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>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
//Auto-Download the file
|
//Auto-Download the file
|
||||||
{% if orgaerror == True %}
|
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
|
// TODO: Hier auto-Download wieder aktivieren!
|
||||||
//location.href = "{% url 'users-delete-getdata' user.pk %}"
|
//location.href = "{% url 'users-delete-getdata' user.pk %}"
|
||||||
})
|
})
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
|
|
||||||
function clearField(id){
|
function clearField(id){
|
||||||
|
|
@ -262,6 +263,37 @@
|
||||||
buttons[i].click();
|
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>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -46,6 +46,7 @@ urlpatterns = [
|
||||||
path('icsall/<int:ag>', views.getICSFileAll, name="geticsall"),
|
path('icsall/<int:ag>', views.getICSFileAll, name="geticsall"),
|
||||||
path('icspublic/<slug:code>/<int:ag>', views.getICSFileEx, name="getics"),
|
path('icspublic/<slug:code>/<int:ag>', views.getICSFileEx, name="getics"),
|
||||||
path('icspublicall/<slug:code>/<int:ag>', views.getICSFileExAll, name="geticsall"),
|
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"),
|
#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!')
|
messages.success(request, f'Benutzer ' +name+ ' wurde gelöscht!')
|
||||||
return response
|
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
|
@login_required
|
||||||
def agency(request):
|
def agency(request):
|
||||||
context = {
|
context = {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue