MDL-73966 grade: fetch required user name fields of unenrolled users.

This commit is contained in:
Paul Holden 2022-05-17 15:56:55 +01:00
parent 5e5e12e063
commit 7d693114d1
2 changed files with 91 additions and 6 deletions

View file

@ -173,7 +173,7 @@ function grade_import_commit($courseid, $importcode, $importfeedback=true, $verb
* are still stored in the database, but will not be visible in the gradebook unless
* this user subsequently enrols on the course in a graded roles.
*
* The returned objects have fields user firstname, lastname and useridnumber, and gradeidnumber.
* The returned objects have fields useridnumber and gradeidnumber, plus enough user name fields to pass to {@see fullname}
*
* @param integer $importcode import batch identifier
* @param integer $courseid the course we are importing to.
@ -190,12 +190,14 @@ function get_unenrolled_users_in_import($importcode, $courseid) {
// Users with a gradeable role.
list($gradebookrolessql, $gradebookrolesparams) = $DB->get_in_or_equal(explode(',', $CFG->gradebookroles), SQL_PARAMS_NAMED, 'grbr');
$usernamefields = core_user\fields::for_name()->get_sql('u', false, '', '', false);
// Enrolled users.
$context = context_course::instance($courseid);
list($enrolledsql, $enrolledparams) = get_enrolled_sql($context);
list($sort, $sortparams) = users_order_by_sql('u');
$sql = "SELECT giv.id, u.firstname, u.lastname, u.idnumber AS useridnumber,
$sql = "SELECT giv.id, {$usernamefields->selects}, u.idnumber AS useridnumber,
COALESCE(gi.idnumber, gin.itemname) AS gradeidnumber
FROM {grade_import_values} giv
JOIN {user} u