from django.shortcuts import render from django.http import HttpResponse,HttpResponseRedirect,FileResponse from django.contrib.auth.models import User from django.urls import reverse from .models import * from .forms import * from documento.forms import * from documento.managefile import * from att.views import * from config.views import * import re def welcome(request): data = dict() data['HeaderTitle'] = getConfig('HeaderTitle') if not 'AziendaId' in request.session: return HttpResponseRedirect(reverse("login:start")) else: data['AziendaId'] = request.session['AziendaId'] 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")) if 'AdminId' in request.session: data['AdminId'] = request.session['AdminId'] if 'UserId' in request.session: data['UserId'] = request.session['UserId'] #filtro: # selezionare tutti gli utenti per AziendaId #data['admin'] = User.objects.get(pk=data['AdminId']) che non so a che cazzo serve data['azienda'] = Azienda.objects.get(pk=data['AziendaId']) data['utenti'] = data['azienda'].utente_set.all().order_by('nome') if request.method == 'POST': print('qualcuno ha premuto un tasto') if "CaricamentiMultipli" in request.POST: print("Richiesto Caricamento Documenti") return HttpResponseRedirect(reverse("documento:welcome")) if 'ritorna' in request.POST: return HttpResponseRedirect(reverse("azienda:welcome")) if 'scelta' in request.POST: scelta = request.POST['scelta'] request.session['UserEditId'] = scelta print('scelta effettuata',scelta) return HttpResponseRedirect(reverse("utente:edit")) filecaricati = AdminUpload(request.POST,request.FILES) if filecaricati.is_valid(): print('record filecaricati validi') if filecaricati.cleaned_data.get('indice'): print('presente file indice') fileindice = filecaricati.cleaned_data.get('indice') print(fileindice) save_and_load_file_indice(fileindice,request,data['AziendaId']) if filecaricati.cleaned_data.get('allegati'): print('presenti documenti da allegare') listadocumenti = filecaricati.cleaned_data['allegati'] print(listadocumenti) listaok,listanotok = save_and_load_file_multiple(listadocumenti,request,data['utenti'],data['AziendaId'],filecaricati.cleaned_data['descrizione'],data['admin']) data['listaok'] = listaok data['listanotok'] = listanotok return render(request,'utente.welcome.html',data) def edit(request): data=dict() if not 'AdminId' in request.session: return HttpResponseRedirect(reverse("login:start")) data['AdminId']=request.session['AdminId'] if not 'AziendaId' in request.session: return HttpResponseRedirect(reverse("login:start")) data['AziendaId']=request.session['AziendaId'] 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")) if 'AdminId' in request.session: data['AdminId'] = request.session['AdminId'] 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'] #filtro: # selezionare tutti gli utenti per AziendaId data['admin'] = User.objects.get(pk=data['AdminId']) data['azienda'] = Azienda.objects.get(pk=data['AziendaId']) utente = None if data['UserEditId'] == "Nuovo Utente": utente = Utente() utente.azienda = data['azienda'] else: try: utente = Utente.objects.get(pk=data['UserEditId']) data['documentiUtente'] = utente.documento_set.all() data['listaAttivita'] = getLogxAmministrazione(utente) data['uid']=utente.id except Utente.DoesNotExist as dne: print('strana richiesta, utente inesistente') flagDne=True utente=None 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') if 'DeleteDocument' in request.POST: documento = request.POST['DeleteDocument'] print('documento da rimuovere',documento) d = Documento.objects.get(pk=documento) if d: delete_file(d) #rimozione fisica del documento d.delete() fu = formUtente(request.POST) if fu.is_valid(): print('form valida') print('i dati sono grosso modo coerenti, salviamoli') utente.nome = fu.cleaned_data['nome'] utente.codicefiscale = fu.cleaned_data['codicefiscale'] utente.luogonascita = fu.cleaned_data['luogonascita'] utente.datanascita = fu.cleaned_data['datanascita'] utente.mail = fu.cleaned_data['mail'] utente.pin = fu.cleaned_data['pin'] print('utente id',utente.id,utente.nome) setLog(7,utente) utente.save() print('Form non valida') tmp = dict() tmp['nome'] = utente.nome tmp['codicefiscale'] = utente.codicefiscale tmp['datanascita'] = utente.datanascita tmp['luogonascita'] = utente.luogonascita tmp['mail'] = utente.mail tmp['pin'] = utente.pin print('tmp su form non valida',tmp) data['utente'] = formUtente(tmp) filecaricati = AdminUpload(request.POST,request.FILES) if filecaricati.is_valid(): if filecaricati.cleaned_data.get('allegati'): print('presenti documenti da allegare') listadocumenti = filecaricati.cleaned_data['allegati'] print(listadocumenti) print('descrizione',filecaricati.cleaned_data['descrizione']) save_and_load_file_single(listadocumenti,request,utente,data['azienda'],filecaricati.cleaned_data['descrizione'],data['admin']) data['documentiUtente'] = utente.documento_set.all() else: print('Request non valida,utente:',utente.id) tmp = dict() tmp['nome'] = utente.nome tmp['codicefiscale'] = utente.codicefiscale tmp['datanascita'] = utente.datanascita tmp['luogonascita'] = utente.luogonascita tmp['mail'] = utente.mail tmp['pin'] = utente.pin print("tmp su request non valida",tmp) data['utente'] = formUtente(tmp) # verifica bonta' mail. regex = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,7}\b' if(not re.fullmatch(regex, utente.mail)): print("Mail non valida") data['mailnonvalida']=True return render(request,'utente.edit.html',data) def download(request): ''' questa funzione permette di fare un po di cose: scaricare i documenti cambiare la password aggiornare la mail ''' print('area download') data=dict() data['HeaderTitle'] = getConfig('HeaderTitle') if not 'UserId' in request.session: print("Non rilevo UserId in request.session") return HttpResponseRedirect(reverse("login:start")) data['UserId'] = request.session['UserId'] #filtro: # avendo il dato utente... vediamo come muoverci #data['azienda'] = Azienda.objects.get(pk=data['AziendaId']) #recuperiamo i dati dell'utente e i file che puo' scaricare. utente = None try: utente = Utente.objects.get(pk=data['UserId']) except Utente.DoesNotExist as dne: print('dillo che ci hai provato, fasullo!') return HttpResponseRedirect(reverse("login:start")) data['utente'] = utente data['documentiUtente'] = utente.documento_set.all() data['listaAttivita'] = getLogxUtente(utente) if request.method == 'POST': print('qualcosa รจ stato richiesto') if 'ritorna' in request.POST: return HttpResponseRedirect(reverse('login:start')) pinmail = formPinMail(request.POST) if pinmail.is_valid(): print('pinmail valid') utente.pin = pinmail.cleaned_data['pin'] utente.mail = pinmail.cleaned_data['mail'] utente.save() print('utente aggiornato',utente.id) setLog(6,utente=utente) # verifica bonta' mail. regex = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,7}\b' if(not re.fullmatch(regex, utente.mail)): print("Mail non valida") data['mailnonvalida']=True else: print("Mail valida") return render(request,'utente.download.html',data)