|
|
@@ -4,9 +4,10 @@ from django.urls import reverse
|
|
|
|
|
|
from .models import *
|
|
|
from .forms import *
|
|
|
-from documento.forms import *
|
|
|
|
|
|
+from documento.forms import *
|
|
|
from documento.managefile import *
|
|
|
+
|
|
|
from att.views import *
|
|
|
from comunicazione.views import ServizioMail
|
|
|
|
|
|
@@ -143,6 +144,7 @@ def edit(request):
|
|
|
print("Non ci siamo, manca l'utente")
|
|
|
|
|
|
if request.method == 'POST':
|
|
|
+
|
|
|
if "ritorna" in request.POST:
|
|
|
return HttpResponseRedirect(reverse("utente:welcome"))
|
|
|
print('request.method x edit utente')
|
|
|
@@ -158,6 +160,11 @@ def edit(request):
|
|
|
fu = formUtente(request.POST)
|
|
|
if fu.is_valid():
|
|
|
print('form valida')
|
|
|
+ cancellautente = fu.cleaned_data.get('cancellautente')
|
|
|
+ if cancellautente:
|
|
|
+ print('richiesta cancellazione utente, passo la chiamata')
|
|
|
+ return HttpResponseRedirect(reverse("utente:cancellautente"))
|
|
|
+
|
|
|
print('i dati sono grosso modo coerenti, salviamoli')
|
|
|
utente.nome = fu.cleaned_data['nome']
|
|
|
utente.codicefiscale = fu.cleaned_data['codicefiscale'].upper()
|
|
|
@@ -475,3 +482,75 @@ def forceUpdatePassword(request,uuid):
|
|
|
print(data)
|
|
|
|
|
|
return render(request,'utente.edit.password.primologin.html',data)
|
|
|
+
|
|
|
+def cancellautente(request):
|
|
|
+ print('richiesta cancellazione definitiva utente')
|
|
|
+
|
|
|
+ # direi che la funzione lavori in due fasi:
|
|
|
+ # 1: viene richiesta conferma della cancellazione
|
|
|
+ # 2: in caso di affermazione positiva, si procede
|
|
|
+
|
|
|
+ if not 'AdminId' in request.session or 'UserId' in request.session:
|
|
|
+ print("Non rilevo presensa UserId e AdminId in request.session")
|
|
|
+ return HttpResponseRedirect(reverse("login:start"))
|
|
|
+
|
|
|
+ data=dict()
|
|
|
+ data['HeaderTitle'] = getConfig('HeaderTitle')
|
|
|
+
|
|
|
+ if 'AdminId' in request.session:
|
|
|
+ data['AdminId'] = request.session['AdminId']
|
|
|
+ admin = Amministratore.objects.get(pk=data['AdminId'])
|
|
|
+ data['admin'] = admin
|
|
|
+ print('admin',admin.id,admin.nome)
|
|
|
+
|
|
|
+ if not 'AziendaId' in request.session:
|
|
|
+ return HttpResponseRedirect(reverse("login:start"))
|
|
|
+ data['AziendaId']=request.session['AziendaId']
|
|
|
+ data['azienda'] = Azienda.objects.get(pk=data['AziendaId'])
|
|
|
+
|
|
|
+ sede = None
|
|
|
+ if 'SedeId' in request.session:
|
|
|
+ SedeId = request.session['SedeId']
|
|
|
+ print('SedeId',SedeId)
|
|
|
+ try:
|
|
|
+ sede = Sede.objects.get(pk=SedeId)
|
|
|
+ except Sede.DoesNotExist as dne:
|
|
|
+ print("non esiste")
|
|
|
+ data['sede'] = sede
|
|
|
+
|
|
|
+ if 'UserId' in request.session:
|
|
|
+ data['UserId'] = request.session['UserId']
|
|
|
+
|
|
|
+ if not'UserEditId' in request.session:
|
|
|
+ return HttpResponseRedirect(reverse("login:start"))
|
|
|
+
|
|
|
+ data['UserEditId'] = request.session['UserEditId']
|
|
|
+
|
|
|
+ if request.method == 'POST':
|
|
|
+ cu = formCancellaUtente(request.POST)
|
|
|
+ if cu.is_valid() and cu.cleaned_data.get('ConfermaCancellazioneUtente'):
|
|
|
+
|
|
|
+ # tutto ok,
|
|
|
+ # procedo alla cancellazione
|
|
|
+
|
|
|
+ utente = Utente.objects.get(pk=data['UserEditId'])
|
|
|
+ print('utente',utente.codicefiscale)
|
|
|
+ lista_documenti = utente.documento_set.all()
|
|
|
+ print('quanti documenti',len(lista_documenti))
|
|
|
+
|
|
|
+ # step1 cancellazione dei documenti.
|
|
|
+ for i in lista_documenti:
|
|
|
+ # rimuove documento fisicamente
|
|
|
+ delete_file(i)
|
|
|
+
|
|
|
+ # e poi lo rimuove dall'archivio
|
|
|
+ i.delete()
|
|
|
+
|
|
|
+ # step2 cancellazione dell'utente
|
|
|
+ utente.delete()
|
|
|
+
|
|
|
+ # step3 ritorno alla lista degli utenti
|
|
|
+ return HttpResponseRedirect(reverse("utente:welcome"))
|
|
|
+
|
|
|
+ return render(request,'utente.conferma.cancellazione.html',data)
|
|
|
+
|