No banco de dados do Moodle, o controle de progresso das atividades é registrada nas seguintes tabelas: mdl_course_modules e mdl_course_modules_completion
Configuração de progresso de uma atividade
A coluna completion da tabela mdl_course_modules indica se a atividade está configurada com rastreamento de controle de progresso.
Para extrair a lista de id das atividades no banco de dados com configuração de progresso ativado em um determinado curso, execute o seguinte comando SQL:
SELECT id FROM mdl_course_modules WHERE course=? AND completion > 0
Coloque o parâmetro id do curso em course=?
Mapear atividades que o usuário já completou
A tabela mdl_course_modules_completion registra atividades completadas por um determinado usuário.
Para mapear no banco a lista de id das atividades que um determinado usuários já completou, execute o seguinte comando SQL:
SELECT c.coursemoduleid AS cmid FROM mdl_course_modules_completion c INNER JOIN mdl_course_modules m ON c.coursemoduleid = m.id WHERE c.userid=? AND m.course=? AND c.completionstate > 0 AND c.completionstate < 3
Coloque o parâmetro id do usuário em c.userid=?
Coloque o parâmetro id do curso em m.course=?