Преглед на файлове

attivato modal stato caricamento

mauro преди 3 месеца
родител
ревизия
96f8200b00

+ 17 - 9
documento/managefile.py

@@ -144,6 +144,7 @@ def associafile_a_utente(singolodocumento,request,utente,azienda=None,sede=None,
   documento.utente = utente
   listaok = None
   listanotok = None
+  listanotass = None
   associato = False
 
   if pertutti: 
@@ -166,14 +167,15 @@ def associafile_a_utente(singolodocumento,request,utente,azienda=None,sede=None,
 
   if not associato:
     print('documento da rimuovere di nuovo',associato)
-
-  return(listaok,listanotok)
+    listanotass = documento
+  return(listaok,listanotok,listanotass)
 
 ##################################################################################
 # carica file multipli. Utilizzato prevalentemente dalla gestione documenti.
 def save_and_load_file_multiple(listadocumenti,request,utente,azienda=None,sede=None,descrizione=None,amministratore=None,pertutti=False,ignoraAzienda=False,ignoraSede=False,_privato=False):
   listaok = list()
   listanotok = list()
+  listanotass = list()
 
   if azienda: print('Caricamento Multiplo,azienda',azienda.nome)
   if sede: print('Caricamento Multiplo,sede',sede.nome)
@@ -189,6 +191,7 @@ def save_and_load_file_multiple(listadocumenti,request,utente,azienda=None,sede=
       print('utente:',ut.nome)
       lok = None
       nok = None
+      las = None
 
       # si deve individuare il codice fiscale dell'utente
       if not pertutti:
@@ -196,26 +199,28 @@ 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 = associafile_a_utente(singolodocumento,request,ut,ut.azienda,sede,descrizione,amministratore) 
+            lok,nok,las = associafile_a_utente(singolodocumento,request,ut,ut.azienda,sede,descrizione,amministratore) 
           elif ignoraSede:
             print("Effettua ricerca in tutte le Sedi dell'azienda")
-            lok,nok = associafile_a_utente(singolodocumento,request,ut,ut.azienda,sede,descrizione,amministratore)
+            lok,nok,las = associafile_a_utente(singolodocumento,request,ut,ut.azienda,sede,descrizione,amministratore)
           else: 
             print("Caricamento solo per l'azienda corrente")
-            lok,nok = associafile_a_utente(singolodocumento,request,ut,azienda,sede,descrizione,amministratore)
+            lok,nok,las = associafile_a_utente(singolodocumento,request,ut,azienda,sede,descrizione,amministratore)
         else:
           print('il codice fiscale',ut.codicefiscale.strip()," non si trova in ",singolodocumento.name)
       else:
         print('associo documento SENZA riferimento a codice fiscale')
-        lok,nok = associafile_a_utente(singolodocumento,request,ut,azienda,sede,descrizione,amministratore,pertutti)
+        lok,nok,las = 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)
 
-  print('lista',listaok,listanotok)
-  return (listaok,listanotok)
+  print('lista',listaok,listanotok,listanotass)
+  return (listaok,listanotok,listanotass)
 
 #carica un singolofile - utilizzato prevalentemente nella pagina utente
 def save_and_load_file_single(listadocumenti,request,utente,azienda=None,sede=None,descrizione=None,amministratore=None,_privato=False):
@@ -231,6 +236,7 @@ def save_and_load_file_single(listadocumenti,request,utente,azienda=None,sede=No
   """
   listaok = list()
   listanotok = list()
+  listanotass = list()
 
   associato=False
 
@@ -259,7 +265,9 @@ def save_and_load_file_single(listadocumenti,request,utente,azienda=None,sede=No
       documento.storage = risultato
       documento.save()
       listaok.append(documento)
-  return (listaok,listanotok)
+    else:
+      listanotass.append(documento)
+  return (listaok,listanotok,listanotass)
 
 #file_indice: contiene l'elenco dei nominativi da gestire.
 def save_and_load_file_indice(request,fileindice,azienda=None,sede=None):

+ 8 - 41
documento/templates/documento.azienda.html

@@ -8,6 +8,11 @@ function toggle(source) {
     checkboxes[i].checked = source.checked;
   }
 }
+{% if listaok or listanotok %}
+  $(window).on('load', function() {
+      $('#StatoDocumentiCaricatiId').modal('show');
+    });
+{% endif %}
 </script>
 {% endblock %}
 
@@ -35,14 +40,14 @@ function toggle(source) {
 </div>
 
   <!-- Modal -->
-<div class="modal fade" id="ConfirmDocumentDeleteModal" tabindex="-1" role="dialog" aria-labelledby="ConfirmDocumentDeleteLabel{{ document.id }}" aria-hidden="true">
+<div class="modal fade" id="ConfirmDocumentDeleteModal" tabindex="-1" role="dialog" aria-labelledby="ConfirmDocumentDeleteLabel{{ document.id }}" aria-hidden="false">
          <div class="modal-dialog" role="document">
            <div class="modal-content">
              <form name='ConfirmDeleteModal' method='POST'>
                {% csrf_token %}
                <div class="modal-header">
                 <h5 class="modal-title" id="ConfirmDeleteLabel">Conferma Cancellazione?</h5>
-                  <span aria-hidden="true">&times;</span>
+                  <span aria-hidden="false">&times;</span>
                 </button>
                </div>
                <div class="modal-body">
@@ -65,44 +70,6 @@ function toggle(source) {
 {% endblock %}
 
 {% block bodybottom %}
-  {% if listaok %}
-    <div>Sono stati caricati {{ listaoklen }} documento/i</div>
-    <table class='table table-striped table-hover'>
-      <thead class='thead-dark'>
-        <tr>
-          <th scope='col'>Documento caricato con successo</th>
-        </tr>
-      </thead>
-      <tbody>
-        {% for l in listaok %}
-        <tr>
-          <td> {{ l.documento }} </td>
-        </tr>
-        {% endfor %}
-      </tbody>
-    </table>
-    </div>
-  {% endif %}
-
-  <div><br></div>
-
-  {% if listanotok %}
-    <div>Sono stati rifiutati {{ listanotoklen }} documento/i</div>
-    <table class='table table-striped table-hover'>
-      <thead class='thead-dark'>
-        <tr>
-          <th scope='col'>Documento non caricato perche già presente</th>
-        </tr>
-      </thead>
-      <tbody>
-        {% for l in listanotok %}
-        <tr>
-          <td> {{ l.documento }} </td>
-        </tr>
-        {% endfor %}
-      </tbody>
-    </table>
-    </div>
-  {% endif %}
+  {% include "documento.stato.html" %}
 {% endblock %}
 

+ 6 - 6
documento/templates/documento.modal.html

@@ -66,7 +66,7 @@
         </tr>
 
           <!-- Modal -->
-          <div class="modal fade" id="UnsetPrivateModal{{ documento.id }}" tabindex="-1" role="dialog" aria-labelledby="UnsetPrivateLabel{{ document.id }}" aria-hidden="true">
+          <div class="modal fade" id="UnsetPrivateModal{{ documento.id }}" tabindex="-1" role="dialog" aria-labelledby="UnsetPrivateLabel{{ document.id }}" aria-hidden="false">
             <div class="modal-dialog" role="document">
               <div class="modal-content">
                 <div class="modal-header">
@@ -90,7 +90,7 @@
         {% endif %}
 
           <!-- Modal -->
-          <div class="modal fade" id="SetPrivateModal{{ documento.id }}" tabindex="-1" role="dialog" aria-labelledby="SetPrivateLabel{{ document.id }}" aria-hidden="true">
+          <div class="modal fade" id="SetPrivateModal{{ documento.id }}" tabindex="-1" role="dialog" aria-labelledby="SetPrivateLabel{{ document.id }}" aria-hidden="false">
             <div class="modal-dialog" role="document">
               <div class="modal-content">
                 <div class="modal-header">
@@ -112,13 +112,13 @@
           <!-- end modal -->
 
           <!-- Modal -->
-          <div class="modal fade" id="ConfirmDeleteModal{{ documento.id }}" tabindex="-1" role="dialog" aria-labelledby="ConfirmDeleteLabel{{ document.id }}" aria-hidden="true">
+          <div class="modal fade" id="ConfirmDeleteModal{{ documento.id }}" tabindex="-1" role="dialog" aria-labelledby="ConfirmDeleteLabel{{ document.id }}" aria-hidden="false">
             <div class="modal-dialog" role="document">
               <div class="modal-content">
                 <div class="modal-header">
                   <h5 class="modal-title" id="ConfirmDeleteLabel">Conferma Cancellazione</h5>
                   <button type="button" class="close" data-bs-dismiss="modal" aria-label="Chiudi">
-                   <span aria-hidden="true">&times;</span>
+                   <span aria-hidden="false">&times;</span>
                   </button>
                 </div>
                 <div class="modal-body">
@@ -144,13 +144,13 @@
   {% endif %}
 
           <!-- Modal -->
-          <div class="modal fade" id="TestModal" tabindex="-1" role="dialog" aria-labelledby="TestModalLabel" aria-hidden="true">
+          <div class="modal fade" id="TestModal" tabindex="-1" role="dialog" aria-labelledby="TestModalLabel" aria-hidden="false">
             <div class="modal-dialog" role="document">
               <div class="modal-content">
                 <div class="modal-header">
                   <h5 class="modal-title" id="ConfirmDeleteLabel">TestModal</h5>
                   <button type="button" class="close" data-bs-dismiss="modal" aria-label="Chiudi">
-                   <span aria-hidden="true">&times;</span>
+                   <span aria-hidden="false">&times;</span>
                   </button>
                 </div>
                 <div class="modal-body">

+ 73 - 0
documento/templates/documento.stato.html

@@ -0,0 +1,73 @@
+<!-- Modal -->
+  <div class="modal fade" id="StatoDocumentiCaricatiId" tabindex="-1" role="dialog" aria-labelledby="StatoDocumentiCaricati" aria-hidden="false">
+    <div class="modal-dialog" role="document">
+      <div class="modal-content">
+        <div class="modal-header">
+          <h5 class="modal-title" id="SdcLabel">Stato Documenti Caricati</h5>
+        </div>
+        <div class="modal-body">
+          {% if listaok %}
+            <div>Sono stati caricati {{ listaoklen }} documento/i</div>
+            <table class='table table-striped table-hover'>
+              <thead class='thead-dark'>
+                <tr>
+                  <th scope='col'>Documento caricato con successo</th>
+                </tr>
+              </thead>
+              <tbody>
+                {% for l in listaok %}
+                  <tr>
+                    <td> {{ l.documento }} </td>
+                  </tr>
+                {% endfor %}
+              </tbody>
+            </table>
+          {% endif %}
+
+	<div><br></div>
+
+        {% if listanotok %}
+          <div>Sono stati rifiutati {{ listanotoklen }} documento/i</div>
+          <table class='table table-striped table-hover'>
+            <thead class='thead-dark'>
+              <tr>
+                <th scope='col'>Documento non caricato perche già presente</th>
+              </tr>
+            </thead>
+            <tbody>
+              {% for l in listanotok %}
+                <tr>
+                  <td> {{ l.documento }} </td>
+                </tr>
+              {% endfor %}
+            </tbody>
+          </table>
+
+          <div>Non sono stati caricati {{ listanotasslen }} documento/i</div>
+          <table class='table table-striped table-hover'>
+            <thead class='thead-dark'>
+              <tr>
+                <th scope='col'>Documenti Non validi o non associabili</th>
+              </tr>
+            </thead>
+            <tbody>
+              {% for l in listanotass %}
+                <tr>
+                  <td> {{ l.documento }} </td>
+                </tr>
+              {% endfor %}
+            </tbody>
+          </table>
+        {% endif %}
+
+        <div class="modal-footer">
+          <form name='SDCModal' method='POST'>
+            {% csrf_token %}
+            <button type="button" class="btn btn-primary" data-bs-dismiss="modal">Chiudi/Annulla</button>
+          </form>
+        </div>
+      </div>
+    </div>
+  </div>
+<!-- end modal -->
+

+ 2 - 2
documento/templates/documento.welcome.deleteold.html

@@ -16,14 +16,14 @@
     {% endif %}
 
   <!-- Modal -->
-  <div class="modal fade" id="ConfirmDocumentDeleteModal" tabindex="-1" role="dialog" aria-labelledby="ConfirmDocumentDeleteLabel{{ document.id }}" aria-hidden="true">
+  <div class="modal fade" id="ConfirmDocumentDeleteModal" tabindex="-1" role="dialog" aria-labelledby="ConfirmDocumentDeleteLabel{{ document.id }}" aria-hidden="false">
          <div class="modal-dialog" role="document">
            <div class="modal-content">
              <form name='ConfirmDeleteModal' method='POST'>
                {% csrf_token %}
                <div class="modal-header">
                 <h5 class="modal-title" id="ConfirmDeleteLabel">Conferma Cancellazione?</h5>
-                  <span aria-hidden="true">&times;</span>
+                  <span aria-hidden="false">&times;</span>
                 </button>
                </div>
                <div class="modal-body">

+ 9 - 41
documento/templates/documento.welcome.html

@@ -8,6 +8,12 @@ function toggle(source) {
     checkboxes[i].checked = source.checked;
   }
 }
+
+{% if listaok or listanotok or listanotass%}
+  $(window).on('load', function() {
+      $('#StatoDocumentiCaricatiId').modal('show');
+    });
+{% endif %}
 </script>
 
 {% endblock %}
@@ -34,14 +40,14 @@ function toggle(source) {
 </div>
 
   <!-- Modal -->
-<div class="modal fade" id="ConfirmDocumentDeleteModal" tabindex="-1" role="dialog" aria-labelledby="ConfirmDocumentDeleteLabel{{ document.id }}" aria-hidden="true">
+<div class="modal fade" id="ConfirmDocumentDeleteModal" tabindex="-1" role="dialog" aria-labelledby="ConfirmDocumentDeleteLabel{{ document.id }}" aria-hidden="false">
          <div class="modal-dialog" role="document">
            <div class="modal-content">
              <form name='ConfirmDeleteModal' method='POST'>
                {% csrf_token %}
                <div class="modal-header">
                 <h5 class="modal-title" id="ConfirmDeleteLabel">Conferma Cancellazione?</h5>
-                  <span aria-hidden="true">&times;</span>
+                  <span aria-hidden="false">&times;</span>
                 </button>
                </div>
                <div class="modal-body">
@@ -64,44 +70,6 @@ function toggle(source) {
 {% endblock %}
 
 {% block bodybottom %}
-  {% if listaok %}
-    <div>Sono stati caricati {{ listaoklen }} documento/i</div>
-    <table class='table table-striped table-hover'>
-      <thead class='thead-dark'>
-        <tr>
-          <th scope='col'>Documento caricato con successo</th>
-        </tr>
-      </thead>
-      <tbody>
-        {% for l in listaok %}
-        <tr>
-          <td> {{ l.documento }} </td>
-        </tr>
-        {% endfor %}
-      </tbody>
-    </table>
-    </div>
-  {% endif %}
-
-  <div><br></div>
-
-  {% if listanotok %}
-    <div>Sono stati rifiutati {{ listanotoklen }} documento/i</div>
-    <table class='table table-striped table-hover'>
-      <thead class='thead-dark'>
-        <tr>
-          <th scope='col'>Documento non caricato perche già presente</th>
-        </tr>
-      </thead>
-      <tbody>
-        {% for l in listanotok %}
-        <tr>
-          <td> {{ l.documento }} </td>
-        </tr>
-        {% endfor %}
-      </tbody>
-    </table>
-    </div>
-  {% endif %}
+  {% include "documento.stato.html" %}
 {% endblock %}
 

+ 4 - 4
documento/templates/documento.welcome.lista.html

@@ -58,7 +58,7 @@
         </tr>
 
           <!-- Modal -->
-          <div class="modal fade" id="UnsetPrivateModal{{ documento.id }}" tabindex="-1" role="dialog" aria-labelledby="UnsetPrivateLabel{{ document.id }}" aria-hidden="true">
+          <div class="modal fade" id="UnsetPrivateModal{{ documento.id }}" tabindex="-1" role="dialog" aria-labelledby="UnsetPrivateLabel{{ document.id }}" aria-hidden="false">
             <div class="modal-dialog" role="document">
               <div class="modal-content">
                 <div class="modal-header">
@@ -82,7 +82,7 @@
         {% endif %}
 
           <!-- Modal -->
-          <div class="modal fade" id="SetPrivateModal{{ documento.id }}" tabindex="-1" role="dialog" aria-labelledby="SetPrivateLabel{{ document.id }}" aria-hidden="true">
+          <div class="modal fade" id="SetPrivateModal{{ documento.id }}" tabindex="-1" role="dialog" aria-labelledby="SetPrivateLabel{{ document.id }}" aria-hidden="false">
             <div class="modal-dialog" role="document">
               <div class="modal-content">
                 <div class="modal-header">
@@ -104,13 +104,13 @@
           <!-- end modal -->
 
           <!-- Modal -->
-          <div class="modal fade" id="ConfirmDeleteModal{{ documento.id }}" tabindex="-1" role="dialog" aria-labelledby="ConfirmDeleteLabel{{ document.id }}" aria-hidden="true">
+          <div class="modal fade" id="ConfirmDeleteModal{{ documento.id }}" tabindex="-1" role="dialog" aria-labelledby="ConfirmDeleteLabel{{ document.id }}" aria-hidden="false">
             <div class="modal-dialog" role="document">
               <div class="modal-content">
                 <div class="modal-header">
                   <h5 class="modal-title" id="ConfirmDeleteLabel">Conferma Cancellazione</h5>
                   <button type="button" class="close" data-bs-dismiss="modal" aria-label="Chiudi">
-                   <span aria-hidden="true">&times;</span>
+                   <span aria-hidden="false">&times;</span>
                   </button>
                 </div>
                 <div class="modal-body">

+ 15 - 6
documento/views.py

@@ -227,20 +227,21 @@ def welcome(request,utente=None):
             # effettua una scelta nel caso venga indicata di caricare il documento ignorando azienda e sede e cercando il codice fiscale ovunque
             if ignoraAzienda:
               # ignoraAzienda: cerca ovunque, in tutte le aziende
-              listaok,listanotok = save_and_load_file_multiple(listadocumenti,request,Utente.objects.filter(special=False),azienda,sede,descrizione,admin.nome,pertutti,ignoraAzienda=ignoraAzienda,_privato=privato)
+              listaok,listanotok,listanotass = save_and_load_file_multiple(listadocumenti,request,Utente.objects.filter(special=False),azienda,sede,descrizione,admin.nome,pertutti,ignoraAzienda=ignoraAzienda,_privato=privato)
               # e non va bene: dovrebbe cercare in tutte le aziende autorizzate per quell'amministratore
             elif ignoraSede:
               # ignora sede: cerca in tutta l'azienda ignorando le sedi (sempre che ci siano)
-              listaok,listanotok = save_and_load_file_multiple(listadocumenti,request,azienda.utente_set.filter(special=False),azienda,sede,descrizione,admin.nome,pertutti,ignoraAzienda=ignoraAzienda,_privato=privato)
+              listaok,listanotok,listanotass = save_and_load_file_multiple(listadocumenti,request,azienda.utente_set.filter(special=False),azienda,sede,descrizione,admin.nome,pertutti,ignoraAzienda=ignoraAzienda,_privato=privato)
             else:
               # carica solo per l'utente.
-              listaok,listanotok = save_and_load_file_multiple(listadocumenti,request,utenti,azienda,sede,descrizione,admin.nome,pertutti,ignoraAzienda=ignoraAzienda)
+              listaok,listanotok,listanotass = save_and_load_file_multiple(listadocumenti,request,utenti,azienda,sede,descrizione,admin.nome,pertutti,ignoraAzienda=ignoraAzienda)
+
             data['listaok'] = listaok
             data['listanotok'] = listanotok
           else:
             # questa scelta vale nel singolo utente.
             u = Utente.objects.get(pk=uu)
-            listaok,listanotok = save_and_load_file_single(listadocumenti,request,u,data['azienda'],data['sede'],filecaricati.cleaned_data['descrizione'],data['admin'])
+            listaok,listanotok,listanotass = save_and_load_file_single(listadocumenti,request,u,data['azienda'],data['sede'],filecaricati.cleaned_data['descrizione'],data['admin'])
             data['listaok'] = listaok
             data['listnotok'] = listanotok
 
@@ -634,29 +635,37 @@ def azienda(request,utente=None):
             # effettua una scelta nel caso venga indicata di caricare il documento ignorando azienda e sede e cercando il codice fiscale ovunque
             if ignoraAzienda:
               # ignoraAzienda: cerca ovunque, in tutte le aziende
-              listaok,listanotok = save_and_load_file_multiple(listadocumenti,request,Utente.objects.filter(special=False),azienda,sede,descrizione,admin.nome,pertutti,ignoraAzienda=ignoraAzienda)
+              listaok,listanotok,listanoass = save_and_load_file_multiple(listadocumenti,request,Utente.objects.filter(special=False),azienda,sede,descrizione,admin.nome,pertutti,ignoraAzienda=ignoraAzienda)
               # e non va bene: dovrebbe cercare in tutte le aziende autorizzate per quell'amministratore
             elif ignoraSede:
               # ignora sede: cerca in tutta l'azienda ignorando le sedi (sempre che ci siano)
-              listaok,listanotok = save_and_load_file_multiple(listadocumenti,request,azienda.utente_set.filter(special=False),azienda,sede,descrizione,admin.nome,pertutti,ignoraAzienda=ignoraAzienda)
+              listaok,listanotok,listanoass = save_and_load_file_multiple(listadocumenti,request,azienda.utente_set.filter(special=False),azienda,sede,descrizione,admin.nome,pertutti,ignoraAzienda=ignoraAzienda)
             else:
               # carica solo per l'utente.
               listaok,listanotok = save_and_load_file_multiple(listadocumenti,request,utenti,azienda,sede,descrizione,admin.nome,pertutti,ignoraAzienda=ignoraAzienda)
             data['listaok'] = listaok
             data['listanotok'] = listanotok
+            data['listanotass'] = listanotass
           else:
             # questa scelta vale nel singolo utente.
             u = Utente.objects.get(pk=uu)
             listaok,listanotok = save_and_load_file_single(listadocumenti,request,u,data['azienda'],data['sede'],filecaricati.cleaned_data['descrizione'],data['admin'])
             data['listaok'] = listaok
             data['listnotok'] = listanotok
+            data['listanotass'] = listanotass
 
           print('listaok',listaok)
           data['listaoklen']=len(data['listaok'])
+          data['listaoklen'] = len(data['listaok'])
+
           print('listanotok',listanotok)
           data['listanotok'] = listanotok
           data['listanotoklen'] = len(data['listanotok'])
 
+          print('listanotass',listanotass)
+          data['listanotass'] = listanotass
+          data['listanotasslen'] = len(data['listanotass'])
+
         if comunicazione:
           ### comunicazioni ###
           sm = ServizioMail(debug=True)

BIN
static/upload/12345678901/MRCMRA66E16Z133L/1738875934.8087177.saved


+ 2 - 2
utente/templates/utente.edit.document.html

@@ -18,10 +18,10 @@
               <td><label for='descrizione'>Descrizione:&nbsp;</label>
                   <input type='text' name='descrizione' id='descrizione' value=''>
                   <input type='file' class="btn btn-primary" name='allegati' id='allegati' value='{{ uf.allegati }}' accept='application/pdf' multiple></td>
-              <td><label for='pertutti' class='form-check-label'>Documento Privato (Visibile solo dal Dipendente).<br>File che iniziano con Emo, sempre privati!</label>
+              <td><label for='privato' class='form-check-label'>Documento Privato (Visibile solo dal Dipendente).<br>File che iniziano con Emo, sempre privati!</label>
  <input type='checkbox' class="form-check-input" name='privato' id='privato'></td>
 
-	      <td><input class="btn btn-primary" type='submit' value='Inserisci'></td>
+	      <td><input class="btn btn-primary" type='submit' value='Inserisci' name='InserisciDocumentoButton'></td>
             </tr>
           </table>
       </form>

+ 22 - 50
utente/templates/utente.edit.html

@@ -2,29 +2,39 @@
 
 {% block headersupplement %}
 <script language="JavaScript">
-function toggle(source) {
-  checkboxes = document.getElementsByName('select');
-  for(var i=0, n=checkboxes.length;i<n;i++) {
-    checkboxes[i].checked = source.checked;
+  function toggle(source) {
+    checkboxes = document.getElementsByName('select');
+    for(var i=0, n=checkboxes.length;i<n;i++) {
+      checkboxes[i].checked = source.checked;
+    }
   }
-}
+
 </script>
+
 {% if IntegrityError %}
+  <script language="Javascript">
+    $(window).on('load', function() {
+      $('#IError').modal('show');
+    });
+{% endif %}
+
 <script language="Javascript">
+  {% if listaok or listanotok or listanotass%}
     $(window).on('load', function() {
-        $('#IError').modal('show');
+      $('#document-tab').click();
+      $('#StatoDocumentiCaricatiId').modal('show');
     });
+  {% endif %}
 </script>
-{% endif %}
 
 {% endblock %}
 
 {% block body %}
 <!-- Nav tabs -->
-<div class="button-group" role="tablist">
-  <button type='button' class="btn btn-primary active" id="profile-tab" data-bs-toggle="tab" data-bs-target="#profile-pane" role="tab" aria-controls="profile-pane" aria-selected="true">Profilo</button>
-  <button type='button' class="btn btn-primary" id="document-tab" data-bs-toggle="tab" data-bs-target="#document-pane" role="tab" aria-controls="document-pane" aria-selected="true">Documenti</button>
-  <button type='button' class="btn btn-primary" id="logger-tab" data-bs-toggle="tab" data-bs-target="#logger-pane" role="tab" aria-controls="logger-pane" aria-selected="true">attivita</button>
+<div class="button-group" role="tablist" id='user-tab'>
+  <button type='button' class="btn btn-primary active"  id="profile-tab" data-bs-toggle="tab" data-bs-target="#profile-pane" role="tab" aria-controls="profile-pane" aria-selected="true">Profilo</button>
+  <button type='button' class="btn btn-primary"         id="document-tab" data-bs-toggle="tab" data-bs-target="#document-pane" role="tab" aria-controls="document-pane" aria-selected="true">Documenti</button>
+  <button type='button' class="btn btn-primary"         id="logger-tab" data-bs-toggle="tab" data-bs-target="#logger-pane" role="tab" aria-controls="logger-pane" aria-selected="true">attivita</button>
   <button type='button' class="btn btn-outline-primary" id="return-tab" data-bs-toggle="tab" data-bs-target="#return-pane" role="tab" aria-controls="return-pane" aria-selected="true"><a href="{% url 'utente:welcome' %}">Indietro</a></button>
 </div>
 <div class='text-danger'>
@@ -46,44 +56,6 @@ function toggle(source) {
 {% endblock %}
 
 {% block bodybottom %}
-<div>
-  {% if listaok %}
-    <div>Sono stati caricati {{ listaoklen }} documento/i</div>
-    <table class='table table-striped table-hover'>
-      <thead class='thead-dark'>
-        <tr>
-          <th scope='col'>Documento caricato con successo</th>
-        </tr>
-      </thead>
-      <tbody>
-        {% for l in listaok %}
-        <tr>
-          <td> {{ l.documento }} </td>
-        </tr>
-        {% endfor %}
-      </tbody>
-    </table>
-  {% endif %}
-
-  <div><br></div>
-
-  {% if listanotok %}
-    <div>Sono stati rifiutati {{ listanotoklen }} documento/i</div>
-    <table class='table table-striped table-hover'>
-      <thead class='thead-dark'>
-        <tr>
-          <th scope='col'>Documento non caricato perche già presente</th>
-        </tr>
-      </thead>
-      <tbody>
-        {% for l in listanotok %}
-        <tr>
-          <td> {{ l.documento }} </td>
-        </tr>
-        {% endfor %}
-      </tbody>
-    </table>
-  {% endif %}
-</div>
+{% include "documento.stato.html" %}
 {% endblock %}
 

+ 10 - 41
utente/templates/utente.welcome.html

@@ -8,6 +8,14 @@ function toggleCSV(source) {
     checkboxes[i].checked = source.checked;
   }
 }
+
+{% if listaok or listanotok %}
+  $(window).on('load', function() {
+      $('#StatoDocumentiCaricatiId').modal('show');
+    });
+{% endif %}
+
+
 </script>
 {% endblock %}
 
@@ -84,7 +92,7 @@ function toggleCSV(source) {
 
   {% if "UTENTE.CREA" in permesso %}
   <!-- Modal -->
-  <div class="modal fade" id="CaricaIndiceModal" tabindex="-1" role="dialog" aria-labelledby="CaricaIndiceLabel" aria-hidden="true">
+  <div class="modal fade" id="CaricaIndiceModal" tabindex="-1" role="dialog" aria-labelledby="CaricaIndiceLabel" aria-hidden="false">
     <div class="modal-dialog" role="document">
       <div class="modal-content">
              <form name='formCaricaIndice' method='POST' enctype='multipart/form-data'>
@@ -128,45 +136,6 @@ function toggleCSV(source) {
 {% endblock %}
 
 {% block bodybottom %}
-  <div><br><br></div>
-
-
-  {% if listaok %}
-    <table class='table table-striped table-hover'>
-      <thead class='thead-dark'>
-      <tr>
-        <th scope='col'>Documento caricato con successo</th>
-      </tr>
-      </thead>
-      <tbody>
-        {% for l in listaok %}
-        <tr>
-          <td> {{ l }} </td>
-        </tr>
-        {% endfor %}
-      </tbody>
-    </table>
-  {% endif %}
-
-  <div><br><br></div>
-  {% if listanotok %}
-    <table class='table table-striped table-hover'>
-      <thead class='thead-dark'>
-      <tr>
-        <th scope='col'>Documento non caricato perche già presente</th>
-      </tr>
-      </thead>
-      <tbody>
-        {% for l in listanotok %}
-        <tr>
-          <td> {{ l }} </td>
-        </tr>
-        {% endfor %}
-      </tbody>
-    </table>
-  {% endif %}
-
-  {%if count %}totale record letti nel file: {{ count }}{% endif %}
-
+  {% include "documento.stato.html" %}
 {% endblock %}
 

+ 52 - 42
utente/views.py

@@ -172,7 +172,6 @@ def welcome(request):
 
           return response
 
- 
   return render(request,'utente.welcome.html',data)
 
 def edit(request):
@@ -352,53 +351,64 @@ def edit(request):
     print('tmp su form non valida',tmp)
     data['utente'] = formUtente(tmp)
 
-    filecaricati = AdminUpload(request.POST,request.FILES)
-     
-    if filecaricati.is_valid():
-      flagcomunicazione = filecaricati.cleaned_data.get('comunicazione')
-      if filecaricati.cleaned_data.get('allegati'):
-        print('presenti documenti da allegare')
-        listadocumenti = filecaricati.cleaned_data['allegati']
-        print(listadocumenti)
-        print('descrizione',filecaricati.cleaned_data['descrizione'])
-        privato = filecaricati.cleaned_data['privato']
-        print('stato privato:',privato)
-        listaok,listanotok = save_and_load_file_single(listadocumenti,request,utente,data['azienda'],data['sede'],filecaricati.cleaned_data['descrizione'],data['admin'],_privato=privato)
-        print('stato caricamenti',listaok,listanotok)
-        data['listaok'] = listaok
-        data['listanotok'] = listanotok
-        print('listaok dopo caricamento',data['listaok'])
-        print('listanotok dopo caricamento',data['listanotok'])
-        data['documentiUtente'] = utente.documento_set.all()
-
-        #print('filecaricati',filecaricati,flagcomunicazione)
-        if flagcomunicazione:
-          ### comunicazioni ###
-          sm = ServizioMail(debug=True)
+    if 'InserisciDocumentoButton' in request.POST:
+      data['tabtab']='document-tab'
+      print('tabtab',data['tabtab'])
+      filecaricati = AdminUpload(request.POST,request.FILES)
+       
+      if filecaricati.is_valid():
+        flagcomunicazione = filecaricati.cleaned_data.get('comunicazione')
+        if filecaricati.cleaned_data.get('allegati'):
+          print('presenti documenti da allegare')
+          listadocumenti = filecaricati.cleaned_data['allegati']
+          print(listadocumenti)
+          print('descrizione',filecaricati.cleaned_data['descrizione'])
+          privato = filecaricati.cleaned_data['privato']
+          print('stato privato:',privato)
+
+          listaok,listanotok,listanotass = save_and_load_file_single(listadocumenti,request,utente,data['azienda'],data['sede'],filecaricati.cleaned_data['descrizione'],data['admin'],_privato=privato)
 
-          try:
-            comunicazione = Comunicazione.objects.get(pk=7)
-          except Comunicazione.DoesNotExist as dne:
-            print("Record comunicazione inesistente",dne)
+          data['listaok'] = listaok
+          data['listanotok'] = listanotok
+          data['listanotass'] = listanotass
+          data['listaoklen'] = len(listaok)
+          data['listnotoklen'] = len(listanotok)
+          data['listanotasslen'] = len(listanotass)
 
-          sm.set_mailfrom=comunicazione.mittente
-          sm.add_to(u.mail)
+          print('listaok dopo caricamento',data['listaok'])
+          print('listanotok dopo caricamento',data['listanotok'])
+          print('listanotass dopo caricamento', data['listanotass'])
 
-          sm.set_soggetto(comunicazione.soggetto)
-          sm.set_corpo(comunicazione.corpo)
+          data['documentiUtente'] = utente.documento_set.all()
 
-          sm_data = dict()
-          utente=dict() #adattamento campo utente
+          #print('filecaricati',filecaricati,flagcomunicazione)
+          if flagcomunicazione:
+            ### comunicazioni ###
+            sm = ServizioMail(debug=True)
 
-          utente['nome'] = utente.nome
-          utente['mail'] = utente.mail
-          utente['sito'] = getConfig('DefaultSite')
-          utente['titolo'] = getConfig('HeaderTitle')
-          sm_data['utente'] = utente
+            try:
+              comunicazione = Comunicazione.objects.get(pk=7)
+            except Comunicazione.DoesNotExist as dne:
+              print("Record comunicazione inesistente",dne)
 
-          sm.set_data(sm_data)
-          sm.send()
-          ### comunicazioni ###
+            sm.set_mailfrom=comunicazione.mittente
+            sm.add_to(u.mail)
+
+            sm.set_soggetto(comunicazione.soggetto)
+            sm.set_corpo(comunicazione.corpo)
+
+            sm_data = dict()
+            utente=dict() #adattamento campo utente
+
+            utente['nome'] = utente.nome
+            utente['mail'] = utente.mail
+            utente['sito'] = getConfig('DefaultSite')
+            utente['titolo'] = getConfig('HeaderTitle')
+            sm_data['utente'] = utente
+
+            sm.set_data(sm_data)
+            sm.send()
+            ### comunicazioni ###
   else:
     print('Request non valida,utente:',utente.id)
     tmp = dict()