Administração¶
Este plugin adiciona páginas próprias (fora do fluxo padrão de administração do Moodle) para acompanhar sincronizações e consultar relatórios. Nenhuma delas está registrada em um menu de navegação do Moodle — o acesso é sempre pela URL direta.
Histórico de sincronizações¶
Toda chamada recebida por sync_up_enrolments (veja API e serviços e Sincronização SUAP → Moodle) é gravada na tabela
suap_enrolment_to_sync antes de ser processada, com o JSON recebido, o horário e o status de processamento.
/local/suap/admin/index.phpLista paginada (10 itens por página) das solicitações recebidas, com ID, data de criação e status (Não processado, Sucesso ou Falha). Exige
is_siteadmin()./local/suap/admin/view.php?id=<id>Detalha uma solicitação: status, o JSON recebido (formatado) e um link para os logs da tarefa que a processou. Exige
is_siteadmin(). É o link retornado pela própria API emsincronizacao_urlna resposta desync_up_enrolments— veja Sincronização SUAP → Moodle./local/suap/admin/tasklogs.php?requestid=<id>Busca, em
mdl_task_log, as execuções da tarefalocal_suap\task\sync_up_enrolments_taskcujo output contenha a string “Vou processar a solicitação<id>.”, e lista início, fim, resultado, hostname e PID de cada execução, com link para o log completo em/admin/tasklogs.php. Exigerequire_login()+is_siteadmin().
Warning
As três páginas acima verificam apenas is_siteadmin(), não a capability local/suap:adminview definida
em db/access.php — mesmo que essa capability seja concedida a outros papéis, apenas administradores de
site conseguem acessá-las hoje.
Tarefa assíncrona de sincronização¶
local_suap\task\sync_up_enrolments_task (tarefa adhoc, não agendada por cron) processa em segundo plano
uma solicitação previamente gravada: valida o JSON, executa sync_up_enrolments_service::process(true), e marca
o registro como processado (processed = 1) ou com falha (processed = 2), relançando a exceção para que o
Moodle registre a falha no log de tarefas. Ela é enfileirada automaticamente por
api/sync_up_enrolments.php a cada chamada recebida — não é preciso acioná-la manualmente.
Relatório de cursos autoinstrucionais¶
/local/suap/cursos/relatorio.phpExibe estatísticas (inscritos, acessos, aprovação, certificados emitidos, conclusão) agregadas por curso e campus para salas classificadas como
minicursono campo customizadodiario_tipo. Exigerequire_login()+ a capabilitylocal/suap:view_mooc_reports.
Os dados são pré-calculados pela tarefa agendada (cron) local_suap\task\generate_report_task
(db/tasks.php), configurada para rodar diariamente às 2h. A cada execução ela:
consulta cursos visíveis, com
diario_tipo = 'minicurso'e dentro da janelastartdate/enddate;agrupa por nome de curso + campus e calcula, por grupo: inscritos, acessos, quem nunca acessou, quantos fizeram a última atividade avaliativa do curso, aprovados, reprovados, média das notas, com/sem certificado emitido (via
tool_certificate_issues, se o plugin de certificados estiver instalado) e concluintes;substitui integralmente o conteúdo da tabela
local_suap_relatorio_cursos_autoinstrucionaisa cada execução (DELETEseguido de novosINSERT).
A página lê sempre o lote mais recente (maior timegenerated) dessa tabela — não recalcula nada em tempo real.
Note
O critério de “aprovado com certificado elegível” usa
max(0, min(passed, final_exam_takers) - with_certificate) como estimativa de quem passou mas ainda não
emitiu certificado, e usa essa mesma estimativa como fallback para “concluído” quando a contagem direta de
course_completions retorna zero. Trate os números de certificado/conclusão desse relatório como uma
aproximação, não como contagem exata quando as duas fontes divergem.
Verificação de saúde (health check)¶
Três mecanismos distintos existem no repositório, com propósitos diferentes:
Endpoint |
Autenticação |
Finalidade |
|---|---|---|
|
Nenhuma |
Retorna |
|
Token ( |
Serviço da API (veja API e serviços) que retorna versão do plugin e do Moodle, validando também que o token de autenticação está correto. |
|
Nenhuma |
Script de diagnóstico legado que expõe hostname, versão do PHP, opções de conexão com o banco, caminho do
|
Eventos observados¶
classes/observer.php (local_suap_observer) está registrado em db/events.php para os eventos
\core\event\user_enrolment_created, user_enrolment_deleted, user_enrolment_updated, user_created,
user_deleted e user_updated.
Note
No código-fonte atual, todos os métodos desse observer estão vazios (ou com a lógica antiga comentada, como
em user_created(), que já chegou a aplicar default_user_preferences neste ponto). Os observadores estão
registrados, mas não produzem nenhum efeito colateral hoje — a aplicação de default_user_preferences
acontece apenas em sync_user() (dentro de sync_up_enrolments), não por estes eventos.