def admin(request): data=dict() u = Utenti.objects.all().filter(admin=0) data['u'] = u print('numero record presenti',len(u)) if request.method == 'POST': 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('nome indice caricato',fileindice.name) upload_file(fileindice,request.FILES['indice'],True) fl_path = settings.MEDIA_ROOT risultato = None with open(''.join((fl_path,'/',fileindice.name)),'rb') as ind: risultato = ind.read() risultato = risultato.decode('utf-8',errors='replace') if isinstance(risultato,str): risultato = risultato.encode('utf8') with open(''.join((fl_path,'/',fileindice.name,'.cvtd')),'wb') as ind: ind.write(risultato) print('una volta convertito, passiamo oltre') with open(''.join((fl_path,'/',fileindice.name,'.cvtd')),'rt') as ind: spamreader = csv.reader(ind,delimiter=';') errori = list() count = 0 for sr in spamreader: salvare = False count +=1 if count==1: continue print(count,'sr',sr,len(sr)) ''' rispetto a Farma, il record inviato e' diverso: 0: 0308 - BOX3 S.R.L.; 1: Elaborazioni - Lul Libro Unico del Lavoro lavoratore; 2: ALESSE ANTONIO - LSSNTN63A25H501Y; 3: DA0308_L.U.L._LAVORATORE_#_ALESSE_ANTONIO_#_LSSNTN63A25H501Y_#_06.2024_12.07.2024_10.18.43.pdf; 4: ="06.2024"; 5: 12.07.2024 10:34:17; 6: Cliente; 7: 2024.07.15 11:40:33; 8: 12.07.2024; 9: 12.07.2024; ''' if len(sr) > 1: utente = Utenti() utente.nome = sr[2].capitalize() try: data_convertita = datetime.datetime.strptime(sr[8], "%d.%m.%Y") print('data convertita',data_convertita) utente.datanascita = data_convertita except ValueError as ve: print(ve) utente.codicefiscale = sr[2].split(' - ')[1].strip().upper() #utente.luogonascita = sr[4].lower() utente.azienda = sr[0].lower() utente.password = str(randint(100000,999999)) try: codicefiscale.decode(utente.codicefiscale) salvare = True except ValueError as ve: print('errore',ve) salvare = False try: if salvare: utente.save() except IntegrityError as ie: print('errore',sr[2]) errori.append((sr[1],sr[2])) data['IntegrityErrorList'] = errori data['u'] = Utenti.objects.all() if filecaricati.cleaned_data.get('allegati'): print('presenti documenti da allegare') listadocumenti = filecaricati.cleaned_data['allegati'] print(listadocumenti) u = Utenti.objects.all() for singolodocumento in listadocumenti: print('singolodocumento',singolodocumento) for utente in u: if utente.codicefiscale.strip() in singolodocumento.name: print('match utente-documento') risultato = upload_file(singolodocumento,utente) utente.documento = singolodocumento.name utente.storage = risultato utente.dataupload = datetime.datetime.now() print('utente.storage',utente.storage) utente.save() data['u'] = Utenti.objects.all() return render(request,'welcome.admin.html',data) def edit(request,uid=None): print('uid',uid) if uid: uid = int(uid) data = dict() utente = None if uid==0: utente = Utenti() utente.password = str(randint(100000,999999)) else: try: utente = Utenti.objects.get(pk=uid) except Utenti.DoesNotExist as dne: print(dne) return HttpResponseRedirect(reverse('welcome:admin')) if request.method == 'POST': result = AdminUser(request.POST,request.FILES) print('analisi richiesta',result.is_valid()) if result.is_valid(): print('risultato valido') utente.nome = result.cleaned_data.get('nome') utente.codicefiscale = result.cleaned_data.get('codicefiscale') utente.luogonascita = result.cleaned_data.get('luogonascita') utente.datanascita = result.cleaned_data.get('datanascita') print('data letta da web',result.cleaned_data.get('datanascita')) print('data time',dir(result.cleaned_data.get('datanascita'))) print('assegnato',utente.datanascita) utente.password = result.cleaned_data.get('password') utente.azienda = result.cleaned_data.get('azienda') print('utentedocumento',result.cleaned_data.get('documento')) if result.cleaned_data.get('documento'): risultato = upload_file(result.cleaned_data.get('documento'),request.FILES['documento']) utente.documento = result.cleaned_data.get('documento') utente.storage = risultato utente.dataupload = datetime.datetime.now() try: utente.save() except IntegrityError as ie: print('errore',ie) data['utente'] = AdminUser(request.POST) data['IntegrityError'] = True return render(request,'welcome.edit.html',data) print('data salvata',utente.datanascita) return HttpResponseRedirect(reverse('welcome:admin')) else: print('risultato NON valido') print(result.cleaned_data.get('datanascita')) data['utente'] = AdminUser(request.POST) else: tmp = dict() tmp['nome']=utente.nome tmp['luogonascita'] = utente.luogonascita tmp['datanascita'] = utente.datanascita print('utente data',utente.datanascita) print(type(utente.datanascita)) tmp['codicefiscale'] = utente.codicefiscale tmp['password'] = utente.password tmp['azienda'] = utente.azienda tmp['documento'] = utente.documento data['utente'] = AdminUser(tmp) data['edit_single_user'] = True return render(request,'welcome.edit.html',data) '''