eLearning â Progressione Sequenziale & Timer Minimo
Blocca il âSuccessivoâ finché lâutente non ha davvero visto la lezione

Perché ti serve
Controllo reale dellâavanzamento, non solo âflagâ
Questo modulo estende Website Slides (eLearning) per obbligare gli studenti a seguire il corso nellâordine previsto e â per le lezioni non-quiz â a rimanere sulla pagina per un tempo minimo prima dello sblocco automatico.
Il sistema traccia i secondi effettivi di visualizzazione per utente e impedisce il âcompleteâ anticipato (es. video che auto-flagga la lezione) finché non si raggiunge la soglia configurata.
- â Progressione sequenziale per canale/corso
- â Timer minimo per slide non-quiz
- â Tracciamento secondi per utente
- â Banner con â±ï¸ Trascorsi / â³ Rimanenti + CTA âProssimoâ
- â Blocco pulsanti âSuccessivoâ e voci in sidebar/Fullscreen

Come funziona
Sincronizzato tra client e server, a prova di multi-tab
Guardia di accesso: la rotta /slides/guard/<id>
intercetta i click alle lezioni
bloccate e reindirizza alla precedente, mostrando un messaggio (solo utenti autenticati).
Tick dei secondi: il client invia batch di secondi a
/slides/slide/<id>/tick
(JSON-RPC). Il server restituisce i totali aggiornati,
i rimanenti e se la lezione risulta completata.
Completamento vincolato: solo per slide non-quiz con requisito di tempo,
lo stato âcompletedâ scatta esclusivamente quando dc_secondi_visti
⥠soglia.
Registrazione info per ogni utente: Verifica in tempo reale quali partecipanti hanno visualizzato i corsi e per quanto tempo / se hanno completato il corso e se son rimasti oltre il tempo minimo su un particolare contenuto , tutto filtrabile e raggruppabile

Esperienza utente curata
Banner, CTA e blocchi coerenti anche in Fullscreen
- Banner timer con Trascorsi e Rimanenti, aggiornati ogni secondo.
- CTA âVai al prossimo contenutoâ (nascosta finché non sblocchi la lezione).
- Link âSuccessivoâ e sidebar resi click-safe con reindirizzo alla guardia finché bloccati.
- Fullscreen: gestione dei soli top-level items, marcatura DOM della lezione completata, e force full reload per coerenza UI.
La UI riflette immediatamente il completamento senza ricarico pagina: quando il server conferma
completato = true
, la voce corrente è marcata come âfattaâ e la successiva viene sbloccata.
Installazione & Configurazione
- Installa il modulo (dipendenze: website, website_slides).
- In ogni Corso/Canale, abilita Forza progressione sequenziale se desiderato.
- Per le slide non-quiz, imposta Richiede tempo minimo e la soglia in secondi.
- Il banner e le guardie vengono applicati automaticamente (template QWeb incluso).


Compatibilità & Requisiti
- Versione Odoo: 17
- Browser: moderni con supporto fetch e Page Visibility API.
Limitazioni Note
- Il conteggio è sospeso quando la scheda non è visibile (anti âfarmâ in background).
- Il completamento forzato da terze parti è bloccato dalle guardie lato server.
FAQ
Il timer funziona anche sui quiz?
No, i quiz non usano la soglia tempo. La progressione sequenziale invece sì.
Se lâutente apre due tab?
Il server è la fonte di verità : i dati si riallineano ad ogni tick di risposta.
Changelog
- v1.0 â Prima release: progressione sequenziale, timer minimo, banner+CTA, fullscreen guards.
Please log in to comment on this module