Para montar o relatório da relação dos alunos que enviaram tarefas mas o professor não deu nota, execute no banco o seguinte comando SQL:
SELECT DISTINCT u.id, u.firstname,u.lastname,u.email,u.username, g.finalgrade,g.timecreated FROM mdl_role_assignments rs INNER JOIN mdl_user u ON u.id=rs.userid INNER JOIN mdl_context e ON rs.contextid=e.id LEFT JOIN mdl_grade_items i ON e.instanceid=i.courseid LEFT JOIN mdl_grade_grades g ON (g.itemid=i.id AND u.id=g.userid) LEFT JOIN mdl_logstore_standard_log l ON (e.instanceid=l.courseid AND u.id=l.userid) WHERE e.instanceid=9 AND i.id=? AND g.finalgrade IS NULL AND l.component='mod_assign' AND l.contextinstanceid=? AND l.action='submitted'
Passe o parâmetro id do item de avaliação em i.id=?
Passe o parâmetro id do instância da atividade no contexto do curso item de avaliação em l.contextinstanceid
O comando anterior usa como referência o registro de log. Já esse comando só verifica se o registro de nota foi criado mas vazio. Esse comando funcionou na versão 3.1 para módulo de tarefa. Em outras versões precisa ser testada.
SELECT DISTINCT u.id, u.firstname,u.lastname,u.email,u.username, g.finalgrade AS nota, g.timecreated FROM mdl_role_assignments rs INNER JOIN mdl_user u ON u.id=rs.userid INNER JOIN mdl_context e ON rs.contextid=e.id LEFT JOIN mdl_grade_items i ON e.instanceid=i.courseid LEFT JOIN mdl_grade_grades g ON (g.itemid=i.id AND u.id=g.userid) LEFT JOIN mdl_logstore_standard_log l ON (e.instanceid=l.courseid AND u.id=l.userid) WHERE i.id=? AND g.finalgrade IS NULL AND g.timecreated >0
Passe o parâmetro id do item de avaliação em i.id=?
Na mesma sequência do comando anterior, esse comando mapeia total de alunos com nota e sem nota na atiivdade do tipo tarefa
SELECT i.id AS itemid, COUNT(DISTINCT u.id) AS countenrol, COUNT( DISTINCT g.finalgrade) countgrad, COUNT(DISTINCT u.id)-COUNT( DISTINCT g.finalgrade) AS enrolnotgraded FROM mdl_role_assignments rs INNER JOIN mdl_user u ON u.id=rs.userid INNER JOIN mdl_context e ON rs.contextid=e.id LEFT JOIN mdl_grade_items i ON e.instanceid=i.courseid LEFT JOIN mdl_grade_grades g ON (g.itemid=i.id AND u.id=g.userid) LEFT JOIN mdl_logstore_standard_log l ON (e.instanceid=l.courseid AND u.id=l.userid) WHERE e.instanceid=? GROUP BY i.id
Passe o parâmetro id do curso eme.instanceid=?