iisgiua / giuaschool

giua@school - Il Registro Elettronico open source dell' I.I.S. Michele Giua
https://iisgiua.github.io/giuaschool-docs/
GNU Affero General Public License v3.0
30 stars 18 forks source link

Problema passaggio al nuovo a.s. #565

Closed Lucaccc closed 10 months ago

Lucaccc commented 10 months ago

Buongiorno, stavo provvedendo al passaggio al nuovo anno scolastico...ho archiviato i file ed effettuato il backup dei dati; ho, quindi, posto il registro in manutenzione ed effettuato il logout degli utenti. Al passaggio di seguito indicato il registro restituisce errore 500.. come mai?

"Verranno ora effettuate le seguenti operazioni:

Di seguito il log errori: 2023-08-23_15-42.log

trinko commented 10 months ago

Sembra che ci sia un problema sui dati presenti. L'errore è dovuto al fatto che si cerca di inserire due volte l'esito di uno stesso alunno nella tabella che conserva i voti e gli esiti del precedente anno scolastico. Puoi provare il comando SQL per avere informazioni sull'alunno in questione:

SELECT * FROM gs_utente WHERE id=244;

Devo controllare meglio per capire se c'è un errore nella procedura.

trinko commented 10 months ago

Mi sembra che la procedura sia corretta, per cui ci devono essere dei dati incongruenti nel database. Con il seguente comando puoi controllare l'esito inserito inserito in tabella per l'alunno:

SELECT * FROM gs_storico_esito WHERE alunno_id=244;

Controlla che:

Lucaccc commented 10 months ago

SELECT * FROM gs_utente WHERE id=244;

Vedo questo..dovrebbe essere corretto, o sbaglio? cattura php

trinko commented 10 months ago

Ok, l'alunno risulta promosso allo scrutinio finale. Quindi non ci devono essere altri esiti presenti, controlla con il comando seguente:

SELECT s.periodo,e.*
FROM gs_esito e, gs_scrutinio s
WHERE e.scrutinio_id=s.id AND e.alunno_id=244;

Dovrebbe riportare una sola riga con il periodo F (finale) e l'esito indicato in precedenza.

Lucaccc commented 10 months ago

Ok, l'alunno risulta promosso allo scrutinio finale. Quindi non ci devono essere altri esiti presenti, controlla con il comando seguente:

SELECT s.periodo,e.*
FROM gs_esito e, gs_scrutinio s
WHERE e.scrutinio_id=s.id AND e.alunno_id=244;

Dovrebbe riportare una sola riga con il periodo F (finale) e l'esito indicato in precedenza.

Oltre ad F mi appare anche una riga con il periodo G; devo eliminarla?

trinko commented 10 months ago

No, controlla la colonna degli esiti: dovrebbe essere S (sospeso) per il periodo F e A (promosso) per il periodo G. Se non è così ci sono dati incongruenti nel database.

trinko commented 10 months ago

In ogni caso penso che siano stati introdotti, in qualche modo, dati erronei negli scrutini. Comunque, se il problema riguarda solo quell'utente puoi saltare il suo passaggio all'anno successivo e trasferire tutto il resto. Per farlo, identifca prima l'alunno come detto in precedenza (vedi messaggio ) . Poi vai nella gestione alunni e disabilita l'utente relativo all'alunno. A questo punto puoi riprovare la procedura di passaggio d'anno ripartendo dall'inizio.

Lucaccc commented 10 months ago

In ogni caso penso che siano stati introdotti, in qualche modo, dati erronei negli scrutini. Comunque, se il problema riguarda solo quell'utente puoi saltare il suo passaggio all'anno successivo e trasferire tutto il resto. Per farlo, identifca prima l'alunno come detto in precedenza (vedi messaggio ) . Poi vai nella gestione alunni e disabilita l'utente relativo all'alunno. A questo punto puoi riprovare la procedura di passaggio d'anno ripartendo dall'inizio.

Ho provato ma continua a darmi lo stesso errore.. Di seguito il log errori: 2023-08-26_01-17.log

E' sparita la problematica con l'alunno...non so da cosa possa dipendere..

trinko commented 10 months ago

C'è un problema dovuto alla versione del database utilizzata da Altervista. Scarica il file seguente e decomprimilo. Quindi caricalo sul server nella cartella src/Controller sovrascrivendo quello esistente. Poi riprova a fare la procedura dall'inizio.

SistemaController.php.zip

Lucaccc commented 10 months ago

C'è un problema dovuto alla versione del database utilizzata da Altervista. Scarica il file seguente e decomprimilo. Quindi caricalo sul server nella cartella src/Controller sovrascrivendo quello esistente. Poi riprova a fare la procedura dall'inizio.

SistemaController.php.zip

Continua a darmi lo stesso errore, anche con il file sostituito.

Log: 2023-08-26_16-37.log

trinko commented 10 months ago

Devi prima svuotare la cache.

trinko commented 10 months ago

Riprova con caricando questo nuovo file, sempre in src/Controller. Poi svuota la cache e rifai la procedura di passaggio d'anno.

SistemaController.php.zip

Lucaccc commented 10 months ago

Riprova con caricando questo nuovo file, sempre in src/Controller. Poi svuota la cache e rifai la procedura di passaggio d'anno.

SistemaController.php.zip

Abbiamo risolto il primo problema (quindi, ho superato lo step 2), ma ora se ne verifica un altro al terzo step (recupero circolari). Log errori: 2023-08-27_19-41.log

trinko commented 10 months ago

L'errore è dovuto al fatto che non è presente il file di almeno una circolare: quando si effettua il passaggio d'anno tutti i file delle circolari (e relativi allegati) devono essere presenti nella cartella in cui sono stati caricati: FILES/upload/circolari In questo caso non è così.

Se vuoi testare la procedura devi assicurarti che tutti i documenti caricati siano presenti nelle relative cartelle. Inoltre tieni presente che, superato il passo 2, per riprovare la procedura devi ricaricare il backup del database, perché il passo 2 svuota le tabelle degli esiti una volta che li ha trasferiti nello storico (che conserva i dati dell'anno precedente).

Lucaccc commented 10 months ago

L'errore è dovuto al fatto che non è presente il file di almeno una circolare: quando si effettua il passaggio d'anno tutti i file delle circolari (e relativi allegati) devono essere presenti nella cartella in cui sono stati caricati: FILES/upload/circolari In questo caso non è così.

Se vuoi testare la procedura devi assicurarti che tutti i documenti caricati siano presenti nelle relative cartelle. Inoltre tieni presente che, superato il passo 2, per riprovare la procedura devi ricaricare il backup del database, perché il passo 2 svuota le tabelle degli esiti una volta che li ha trasferiti nello storico (che conserva i dati dell'anno precedente).

Come è possibile che non sono presenti le circolari...io dal registro le visualizzo correttamente, quindi non capisco come facciano a non esserci.. Ho controllato la cartella: le circolari ci sono.

trinko commented 10 months ago

Potrebbe essere un problema di permessi sui file o sulle cartelle, ma se non hai fatto modifiche specifiche sui permessi, non dovrebbe verificarsi.

La circolare che genera l'errore è FILES/upload/circolari/318956be3f0712c426bac4ae7ef01350-364.pdf.pdf Controlla anche se è stata creata la cartella FILES/upload/circolari/2022/: in questa cartella la procedura sposta le circolari dello scorso anno scolastico.

Lucaccc commented 10 months ago

318956be3f0712c426bac4ae7ef01350-364.pdf.pdf

La cartella è stata creata correttamente. Mi sono accorto che è presente una circolare con numerazione -1, non so per quale motivo; può essere quello il problema?

trinko commented 10 months ago

La numerazione -1 potrebbe creare problemi, ma non penso sia quello che generi l'errore. Hai verificato se il file indicato esiste? Se ti serve sapere la circolare collegata al file che crea problemi, puoi eseguire il comando SQL:

SELECT numero,data FROM 
gs_circolare 
WHERE documento='318956be3f0712c426bac4ae7ef01350-364.pdf.pdf' OR allegati LIKE '%318956be3f0712c426bac4ae7ef01350-364.pdf.pdf%';

Individuata la circolare, potresti anche provare a rimuoverla, per verificare che quel file sia l'unico problema.

Lucaccc commented 10 months ago

La numerazione -1 potrebbe creare problemi, ma non penso sia quello che generi l'errore. Hai verificato se il file indicato esiste? Se ti serve sapere la circolare collegata al file che crea problemi, puoi eseguire il comando SQL:

SELECT numero,data FROM 
gs_circolare 
WHERE documento='318956be3f0712c426bac4ae7ef01350-364.pdf.pdf' OR allegati LIKE '%318956be3f0712c426bac4ae7ef01350-364.pdf.pdf%';

Individuata la circolare, potresti anche provare a rimuoverla, per verificare che quel file sia l'unico problema.

Ho rimosso la circolare in questione; non so per quale strana ragione, ma non si apriva più il documento relativo. Sono riuscito a portare a termina la procedura. Grazie mille per la consueta disponibilità.