Skip to Content
Menu

DCDooLearning

by
Odoo

583.68

v 17.0 Third Party
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies Website (website)
eLearning (website_slides)
Discuss (mail)
Lines of code 1528
Technical Name dc_slides_progression
LicenseLGPL-3
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies Website (website)
eLearning (website_slides)
Discuss (mail)
Lines of code 1528
Technical Name dc_slides_progression
LicenseLGPL-3

eLearning – Progressione Sequenziale & Timer Minimo

Blocca il “Successivo” finché l’utente non ha davvero visto la lezione

Panoramica modulo eLearning Progressione & Timer

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
Banner timer con CTA

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

Gestione Fullscreen Sidebar

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

  1. Installa il modulo (dipendenze: website, website_slides).
  2. In ogni Corso/Canale, abilita Forza progressione sequenziale se desiderato.
  3. Per le slide non-quiz, imposta Richiede tempo minimo e la soglia in secondi.
  4. Il banner e le guardie vengono applicati automaticamente (template QWeb incluso).
Campi di configurazione Campi di configurazione

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

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.