Nutzer löschen Standards usw.

This commit is contained in:
holger.trampe 2021-03-28 12:21:55 +02:00
parent e41e96828d
commit 756937f7b0
3 changed files with 97 additions and 13 deletions

View File

@ -25,6 +25,6 @@ urlpatterns = [
path('standardsagn/<int:pk>', views.StandardFromAgn, name="standard-agn"), path('standardsagn/<int:pk>', views.StandardFromAgn, name="standard-agn"),
path('standardcopy/<int:pk>', views.CopyStandard, name="standard-copyagn"), path('standardcopy/<int:pk>', views.CopyStandard, name="standard-copyagn"),
path('loadaggroupm/', views.LoadAGGroupMembers, name="standard-loadaggroupmembers"), path('loadaggroupm/', views.LoadAGGroupMembers, name="standard-loadaggroupmembers"),
path('standard/update/', views.UpdateStandardBeforeUserDel, name="standard-update-before-user-del")
] ]

View File

@ -1019,4 +1019,34 @@ def updatesbyajax_agn(request, pk):
return JsonResponse({"added" : added}) return JsonResponse({"added" : added})
@login_required
def UpdateStandardBeforeUserDel(request):
if(request.method == "GET"):
success = False
# Get Request-Data
newuser = User.objects.get(pk=request.GET["userid"])
finalkind = request.GET["finalkind"]
standard = Standards.objects.get(pk=request.GET["standard"])
useractor = User.objects.get(pk=request.GET["useractorid"])
if(newuser.profile.agency == useractor.profile.agency and standard.agency == useractor.profile.agency and useractor.has_perm('users.usermanager')):
# User is new creator
if(finalkind == "created"):
standard.created_standard_by = newuser
# User is new executor
elif(finalkind == "ex"):
standard.executor.add(newuser)
# User is new representator
elif(finalkind == "repr"):
standard.representative.add(newuser)
# User is new in auth
elif(finalkind == "auth"):
standard.authority.add(newuser)
standard.save()
success = True
else:
success = False
return JsonResponse({"success" : success})

View File

@ -20,9 +20,28 @@
{% csrf_token %} {% csrf_token %}
<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.</small><br /> <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 />
<hr>
<div class="input-group mb-3 col-6" >
<input class="form-control" list="copyusertoall" id="copyusertoallfield" type="text" onkeyup="" >
<div class="input-group-append">
<button type="button" onclick="javascript:clearField('copyusertoallfield')" class="btn btn-secondary" ><i class="fas fa-times"></i></button>
</div>
<datalist id="copyusertoall">
{% for us in usersofagency %}
<option id="copyall_{{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" onclick="javascript:updateAllStandard()" id="">Auf alle übertragen</button>
<button class="btn btn-success" type="button" onclick="javascript:saveAll()">Alle Speichern</button>
</div>
</div>
<!-- TODO: Hier noch ein Feld machen, bei dem ein User auf alle Felder übertragen werden kann! -->
<button class="btn btn-primary" type="button" onclick="javascript:saveAll()">Alle Speichern</button>
{% for s in standards_to_change %} {% for s in standards_to_change %}
<hr> <hr>
<h5> <h5>
@ -37,7 +56,7 @@
<span>Ersteller ändern auf:&nbsp;&nbsp;</span></td> <span>Ersteller ändern auf:&nbsp;&nbsp;</span></td>
<td> <td>
<div class="input-group mb-3" > <div class="input-group mb-3" >
<input class="form-control" list="users_created_standard_{{s.pk}}" id="users_created_standard_{{s.pk}}_input" type="text" onkeyup="" > <input class="form-control inputfield" list="users_created_standard_{{s.pk}}" id="users_created_standard_{{s.pk}}_input" type="text" onkeyup="" >
<div class="input-group-append"> <div class="input-group-append">
<button type="button" onclick="javascript:clearField('users_created_standard_{{s.pk}}_input')" class="btn btn-secondary" ><i class="fas fa-times"></i></button> <button type="button" onclick="javascript:clearField('users_created_standard_{{s.pk}}_input')" class="btn btn-secondary" ><i class="fas fa-times"></i></button>
</div> </div>
@ -60,7 +79,7 @@
<span>Vertretung übertragen auf:&nbsp;&nbsp;</span></td> <span>Vertretung übertragen auf:&nbsp;&nbsp;</span></td>
<td> <td>
<div class="input-group mb-3" > <div class="input-group mb-3" >
<input class="form-control" list="users_repr_standard_{{s.pk}}" id="users_repr_standard_{{s.pk}}_input" type="text" onkeyup="" > <input class="form-control inputfield" list="users_repr_standard_{{s.pk}}" id="users_repr_standard_{{s.pk}}_input" type="text" onkeyup="" >
<div class="input-group-append"> <div class="input-group-append">
<button type="button" onclick="javascript:clearField('users_repr_standard_{{s.pk}}_input')" class="btn btn-secondary" ><i class="fas fa-times"></i></button> <button type="button" onclick="javascript:clearField('users_repr_standard_{{s.pk}}_input')" class="btn btn-secondary" ><i class="fas fa-times"></i></button>
</div> </div>
@ -83,7 +102,7 @@
<span>Ausführung übertragen auf:&nbsp;&nbsp;</span></td> <span>Ausführung übertragen auf:&nbsp;&nbsp;</span></td>
<td> <td>
<div class="input-group mb-3" > <div class="input-group mb-3" >
<input class="form-control" list="users_ex_standard_{{s.pk}}" id="users_ex_standard_{{s.pk}}_input" type="text" onkeyup="" > <input class="form-control inputfield" list="users_ex_standard_{{s.pk}}" id="users_ex_standard_{{s.pk}}_input" type="text" onkeyup="" >
<div class="input-group-append"> <div class="input-group-append">
<button type="button" onclick="javascript:clearField('users_ex_standard_{{s.pk}}_input')" class="btn btn-secondary" ><i class="fas fa-times"></i></button> <button type="button" onclick="javascript:clearField('users_ex_standard_{{s.pk}}_input')" class="btn btn-secondary" ><i class="fas fa-times"></i></button>
</div> </div>
@ -107,7 +126,7 @@
</td> </td>
<td> <td>
<div class="input-group mb-3" > <div class="input-group mb-3" >
<input class="form-control" list="users_auth_standard_{{s.pk}}" id="users_auth_standard_{{s.pk}}_input" type="text" onkeyup="" > <input class="form-control inputfield" list="users_auth_standard_{{s.pk}}" id="users_auth_standard_{{s.pk}}_input" type="text" onkeyup="" >
<div class="input-group-append"> <div class="input-group-append">
<button type="button" onclick="javascript:clearField('users_auth_standard_{{s.pk}}_input')" class="btn btn-secondary" ><i class="fas fa-times"></i></button> <button type="button" onclick="javascript:clearField('users_auth_standard_{{s.pk}}_input')" class="btn btn-secondary" ><i class="fas fa-times"></i></button>
</div> </div>
@ -192,26 +211,61 @@
} }
} }
//All data collected, to Ajaxrequest (buttonid for ending spinner!) //All data collected, to Ajaxrequest (buttonid for ending spinner!)
if(id.length > 0){ if(id.length > 0){
userid = id.split("_")[4]; userid = id.split("_")[4];
finalkind = id.split("_")[1]; finalkind = id.split("_")[1];
standard = id.split("_")[3]; standard = id.split("_")[3];
$("#" + buttonid).html('<div class="spinner-border spinner-border-sm" role="status" style="margin-bottom: 2px;"><span class="sr-only">Loading...</span></div>'); saveNewData(userid, finalkind, standard, buttonid);
} }
} }
//Copy to all
function updateAllStandard(){
var value = $("#copyusertoallfield").val();
inputfields = $(".inputfield");
for(i = 0; i < inputfields.length; i++){
inputfields[i].value = value;
}
}
function saveNewData(userid, finalkind, standard, buttonid){
$.ajax(
{
type: "GET",
url: "{% url 'standard-update-before-user-del' %}",
data:{
userid : userid,
finalkind : finalkind,
standard : standard,
useractorid : {{request.user.pk}}
},
beforeSend: function(){
$("#" + buttonid).html('<div class="spinner-border spinner-border-sm" role="status" style="margin-bottom: 2px;"><span class="sr-only">Speichern...</span></div>');
},
success: function( data )
{
if(data["success"]){
$("#" + buttonid).html('Gespeichert');
}
else{
$("#" + buttonid).html('Fehler');
}
}
});
}
//Save all Button
function saveAll(){ function saveAll(){
buttons = $(".savebutton") buttons = $(".savebutton")
for(i = 0; i < buttons.length; i++){ for(i = 0; i < buttons.length; i++){
buttons[i].click(); buttons[i].click();
console.log(buttons[i]);
console.log("CLICK " + i);
} }
} }
</script> </script>
<!-- STANDARDSMODAL --> <!-- STANDARDSMODAL -->
{% for s in standards_to_change %} {% for s in standards_to_change %}
<div class="modal fade " id="modal_{{s.pk}}" tabindex="-1" role="dialog" data-backdrop="static" aria-hidden="true"> <div class="modal fade " id="modal_{{s.pk}}" tabindex="-1" role="dialog" data-backdrop="static" aria-hidden="true">