Экспорт журнала успеваемости Moodle - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь импортировать оценки учеников из базы данных Moodle, но не могу найти какие-либо сведения о том, где хранятся оценки категорий или рассчитываются ли они на лету. Если они рассчитаны, могу ли я воспроизвести этот расчет в запросе?

Спасибо

Редактировать: Благодаря Hipjea, я попал на страницу с запросами на рекламные объявления. Это то, что мне было нужно. Но теперь я сталкиваюсь с другой проблемой: для некоторых предметов запрос не возвращает категории. Похоже, что настройка Gradbook одинакова для всех из них. Нужна какая-то петля, что бы это могло быть. Похоже, что категории не нравятся категориям.

Запрос:

SELECT DISTINCT gi.itemname
FROM mdl_course AS c
    JOIN mdl_context AS ctx ON c.id = ctx.instanceid
    JOIN mdl_role_assignments AS ra ON ra.contextid = ctx.id
    JOIN mdl_user AS u ON u.id = ra.userid
    JOIN mdl_grade_grades AS gg ON gg.userid = u.id
    JOIN mdl_grade_items AS gi ON gi.id = gg.itemid
    JOIN mdl_course_categories AS cc ON cc.id = c.category
WHERE  gi.courseid = c.id
    AND gi.itemname = 'Cycle 1'
    AND gi.itemtype IN ('category')
    AND c.id = 123

1 Ответ

0 голосов
/ 01 апреля 2020

Вам лучше использовать существующий класс Moodle grade_report_user, который можно найти в grade/report/user, чтобы получить данные.

Вот пример его использования:

require_once($CFG->dirroot . '/grade/report/user/lib.php');

$gpr = new grade_plugin_return(
  array(
    'type' => 'report',
    'plugin' => 'user',
    'courseid' => $course->id,
    'userid' => $userid)
);
$report = new grade_report_user($course->id, $gpr, $context, $userid);
$report->fill_table();

При этом у вас будет отформатированная таблица HTML.

Если класс grade_report_user делает не полностью соответствует вашим потребностям, вы можете скопировать его в свою папку плагинов, соответственно переименовать и изменить его.

Кроме того, вы можете найти то, что вам нужно, на странице запросов Moodle Ad ho c https://docs.moodle.org/38/en/ad-hoc_contributed_reports#Site -Wide_Grade_Report_with_All_Items

...