Эх сурвалжийг харах

1: documento:
riorganizzata gestione listaok,listanotok,listanotass: in pratica
l'ultima voce viene assegnata quando nello scorrere tutti i documenti
non si riesce ad assegnare o comunque non risulta un errore durante il
confronto.

2: utente: Gab mi ha spiegato che l'errore di mancanza sede avviene
quando dopo aver creato un utente si salva e senza chiudere si passa
direttamente a caricare. Ho fatto in modo che quando si salva un utente
viene proprio ricaricata la pagina con tutti i parametri.

3: ora sembra funzionare tutto. ho provato a caricare da utente
esistente, nuovo utente, multipli file.
la sede viene creata automaticamente quando viene chiesta la
creazione o la modifica di una azienda in caso di mancanza di almeno una
voce. contemporaneamente vengono anche riassegnati tutti i dipendenti
senza sede a quella sede.

mauro 2 сар өмнө
parent
commit
8ce9cc1c19
3 өөрчлөгдсөн 64 нэмэгдсэн , 35 устгасан
  1. 43 20
      azienda/views.py
  2. 13 15
      documento/managefile.py
  3. 8 0
      utente/views.py

+ 43 - 20
azienda/views.py

@@ -365,26 +365,49 @@ def editAzienda(request):
           except IntegrityError as ie:
             print(ie)
 
-          ### nel caso l'azienda non esista, si aggiungono i permessi di base
-          print("data['admin']",data['admin'])
-          if 'AZIENDA' in getAMP(data['admin'])[0]:
-              print('getAMP: Azienda')
-              setAZP(azienda,data['admin'],"AZIENDA")
-          if 'AZIENDA.CREA' in getAMP(data['admin'])[0]:
-            print('getAMP: AZIENDA.CREA')
-            setAZP(azienda,data['admin'],"AZIENDA.CREA")
-          if 'AZIENDA.EDIT' in getAMP(data['admin'])[0]:
-            print('getAMP: AZIENDA.EDIT')
-            setAZP(azienda,data['admin'],"AZIENDA.EDIT")
-          if 'UTENTE' in getAMP(data['admin'])[0]:
-            print('getAMP:  UTENTE')
-            setAZP(azienda,data['admin'],"UTENTE")
-          if 'UTENTE.CREA' in getAMP(data['admin'])[0]:
-            print('getAMP:  UTENTE.CREA')
-            setAZP(azienda,data['admin'],"UTENTE.CREA")
-          if 'UTENTE.EDIT' in getAMP(data['admin'])[0]:
-            print('getAMP:  UTENTE.EDIT')
-            setAZP(azienda,data['admin'],"UTENTE.EDIT")
+        # se non ci sono sedi.... se ne crea una predefinita
+        sedelen = azienda.sede_set.all()
+        print("Quante sedi ci sono?",len(sedelen))
+        if len(sedelen) < 1:
+          print("Non è stata inserita una sede iniziale")
+          sede = Sede()
+          sede.nome = "Sede Principale"
+          sede.info ="Sede Predefinita"
+          sede.identificativo = str(randint(100000,999999))
+          sede.azienda = azienda
+          cambiopassword = azienda.cambiopassword
+          forzanuovapassword = azienda.forzanuovapassword
+          otppassword = azienda.otppassword
+          sede.save()
+
+          #verifica se ci sono gia' degli utenti.
+          u = azienda.utente_set.all()
+          print('Quanti utenti ci sono?',len(u))
+          for i in u:
+            print("utente:",i.nome)
+            i.sede = sede
+            i.save()
+
+        ### nel caso l'azienda non esista, si aggiungono i permessi di base
+        print("data['admin']",data['admin'])
+        if 'AZIENDA' in getAMP(data['admin'])[0]:
+            print('getAMP: Azienda')
+            setAZP(azienda,data['admin'],"AZIENDA")
+        if 'AZIENDA.CREA' in getAMP(data['admin'])[0]:
+          print('getAMP: AZIENDA.CREA')
+          setAZP(azienda,data['admin'],"AZIENDA.CREA")
+        if 'AZIENDA.EDIT' in getAMP(data['admin'])[0]:
+          print('getAMP: AZIENDA.EDIT')
+          setAZP(azienda,data['admin'],"AZIENDA.EDIT")
+        if 'UTENTE' in getAMP(data['admin'])[0]:
+          print('getAMP:  UTENTE')
+          setAZP(azienda,data['admin'],"UTENTE")
+        if 'UTENTE.CREA' in getAMP(data['admin'])[0]:
+          print('getAMP:  UTENTE.CREA')
+          setAZP(azienda,data['admin'],"UTENTE.CREA")
+        if 'UTENTE.EDIT' in getAMP(data['admin'])[0]:
+          print('getAMP:  UTENTE.EDIT')
+          setAZP(azienda,data['admin'],"UTENTE.EDIT")
 
         data['aziendaForm'] = formAzienda(request.POST)
 

+ 13 - 15
documento/managefile.py

@@ -164,8 +164,6 @@ def associafile_a_utente(singolodocumento,request,utente,azienda=None,sede=None,
   documento.utente = utente
   listaok = None
   listanotok = None
-  listanotass = None
-  associato = False
 
   if pertutti: 
     documento.documento = "".join((utente.codicefiscale.strip(),"_",singolodocumento.name))
@@ -182,17 +180,12 @@ def associafile_a_utente(singolodocumento,request,utente,azienda=None,sede=None,
     documento.save()
     setLog(8,azienda=azienda,sede=sede,utente=utente,documento=documento,amministratore=amministratore)
     listaok = {'n':documento.documento,'c':'documento assegnato regolarmente'}
-    associato = True
 
   except IntegrityError as ie:
     print("problema di integrita', il file esiste",ie)
     listanotok = {'n':documento.documento,'c':'documento esistente'}
 
-  if not associato:
-    print('documento da rimuovere di nuovo',associato)
-    listanotass = {'n':documento.documento,'c':'documento esistente'}
-
-  return(listaok,listanotok,listanotass)
+  return(listaok,listanotok)
 
 ##################################################################################
 # carica file multipli. Utilizzato prevalentemente dalla gestione documenti.
@@ -211,6 +204,8 @@ def save_and_load_file_multiple(listadocumenti,request,utente,azienda=None,sede=
   for singolodocumento in listadocumenti:
     print('singolodocumento:',singolodocumento)
 
+    statusAss = False
+
     for ut in utente:
       print('utente:',ut.nome)
       lok = None
@@ -222,28 +217,31 @@ def save_and_load_file_multiple(listadocumenti,request,utente,azienda=None,sede=
           print('associa documento CON riferimento a codice fiscale')
           if ignoraAzienda:
             print("Effettua ricerca in tutte le aziende")
-            lok,nok,las = associafile_a_utente(singolodocumento,request,ut,ut.azienda,sede,descrizione,amministratore) 
+            lok,nok = associafile_a_utente(singolodocumento,request,ut,ut.azienda,sede,descrizione,amministratore) 
           elif ignoraSede:
             print("Effettua ricerca in tutte le Sedi dell'azienda")
-            lok,nok,las = associafile_a_utente(singolodocumento,request,ut,ut.azienda,sede,descrizione,amministratore)
+            lok,nok = associafile_a_utente(singolodocumento,request,ut,ut.azienda,sede,descrizione,amministratore)
           else: 
             print("Caricamento solo per l'azienda corrente")
-            lok,nok,las = associafile_a_utente(singolodocumento,request,ut,azienda,sede,descrizione,amministratore)
+            lok,nok = associafile_a_utente(singolodocumento,request,ut,azienda,sede,descrizione,amministratore)
         else:
           print('il codice fiscale',ut.codicefiscale.strip()," non si trova in ",singolodocumento.name)
-          #las = {'n':singolodocumento.name,'c':'non associabile - il codice fiscale non corrisponde'}
+          statusAss = True
       else:
         print('associo documento SENZA riferimento a codice fiscale')
-        lok,nok,las = associafile_a_utente(singolodocumento,request,ut,azienda,sede,descrizione,amministratore,pertutti)
+        lok,nok = associafile_a_utente(singolodocumento,request,ut,azienda,sede,descrizione,amministratore,pertutti)
+
 
       if lok:
         listaok.append(lok)
       if nok:
         listanotok.append(nok)
-      if las:
-        listanotass.append(las)
+
+    if statusAss:
+      listanotass.append({'n':singolodocumento.name,'c':'non associabile - il codice fiscale non corrisponde'})
 
   print('lista',listaok,listanotok,listanotass)
+
   return (listaok,listanotok,listanotass)
 
 #carica un singolofile - utilizzato prevalentemente nella pagina utente

+ 8 - 0
utente/views.py

@@ -357,8 +357,10 @@ def edit(request):
       setLog(7,utente=utente)
 
       new_utente_codicefiscale = None
+      statusSave=False
       try:
         utente.save()
+        statusSave=True
         print('utente, salvo record {}'.format(utente.codicefiscale))
         new_utente_codicefiscale = utente.codicefiscale
         print('new_utente.codicefiscale',new_utente_codicefiscale,old_utente_codicefiscale)
@@ -366,6 +368,8 @@ def edit(request):
           if new_utente_codicefiscale != old_utente_codicefiscale:
             print('codice fiscale diverso:',old_utente_codicefiscale,new_utente_codicefiscale)
             rename_dir(utente,old_utente_codicefiscale,new_utente_codicefiscale)
+
+
       except IntegrityError as ie:
         print('utente: errore utente presente: {}'.format(utente.codicefiscale))
         utenteIE = Utente.objects.get(codicefiscale=fu.cleaned_data['codicefiscale'])
@@ -374,6 +378,10 @@ def edit(request):
         utenteesistente = Utente.objects.get(codicefiscale=utente.codicefiscale)
         data['codicefiscaleesistente'] = utenteesistente.azienda.nome
 
+      if statusSave:
+        print("UserEditId",utente.id)
+        request.session['UserEditId'] = utente.id
+        return HttpResponseRedirect(reverse("utente:edit"))
 
     print('Form non valida,altro ciclo')
     try: