Index: lang/en_utf8/grades.php
===================================================================
RCS file: /home/cvs_repositories/globalcvs/ou-moodle/lang/en_utf8/grades.php,v
retrieving revision 1.11
diff -u -r1.11 grades.php
--- lang/en_utf8/grades.php 30 Jan 2008 16:06:33 -0000 1.11
+++ lang/en_utf8/grades.php 7 Mar 2008 16:19:09 -0000
@@ -448,6 +448,7 @@
$string['updatedgradesonly'] = 'Export new or updated grades only';
$string['uncategorised'] = 'Uncategorised';
$string['unchangedgrade'] = 'Grade unchanged';
+$string['unenrolledusersinimport'] = 'This import included the following grades for users not currently enrolled in this course: $a';
$string['unlock'] = 'Unlock';
$string['unused'] = 'Unused';
$string['uploadgrades'] = 'Upload grades';
@@ -458,6 +459,7 @@
$string['usenoscale'] = 'Use no scale';
$string['usepercent'] = 'Use percent';
$string['user'] = 'User';
+$string['usergrade'] = 'User $a->fullname ($a->useridnumber) on item $a->gradeidnumber';
$string['userkeyhelp'] = 'Select a saved key that will give users access to the data published by this export plugin, without having to log into Moodle. Select `create a new user key` to generate a new key when submitting this form.';
$string['userpreferences'] = 'User preferences';
$string['useweighted'] = 'Use weighted';
Index: grade/import/lib.php
===================================================================
RCS file: /home/cvs_repositories/globalcvs/ou-moodle/grade/import/lib.php,v
retrieving revision 1.2
diff -u -r1.2 lib.php
--- grade/import/lib.php 5 Nov 2007 14:58:09 -0000 1.2
+++ grade/import/lib.php 7 Mar 2008 16:19:09 -0000
@@ -137,12 +137,55 @@
if ($verbose) {
notify(get_string('importsuccess', 'grades'), 'notifysuccess');
+ $unenrolledusers = get_unenrolled_users_in_import($importcode, $courseid);
+ if ($unenrolledusers) {
+ $list = "
\n";
+ foreach ($unenrolledusers as $u) {
+ $u->fullname = fullname($u);
+ $list .= '- ' . get_string('usergrade', 'grades', $u);
+ }
+ $list .= "
\n";
+ notify(get_string('unenrolledusersinimport', 'grades', $list), 'notifysuccess');
+ }
print_continue($CFG->wwwroot.'/grade/index.php?id='.$courseid);
}
// clean up
import_cleanup($importcode);
return true;
+}
+
+/**
+ * This function returns an array of grades that were included in the import,
+ * but wherer the user does not currenly have a graded role on the course. These gradse
+ * 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.
+ *
+ * @param integer $importcode import batch identifier
+ * @param integer $courseid the course we are importing to.
+ * @return mixed and array of user objects, or false if none.
+ */
+function get_unenrolled_users_in_import($importcode, $courseid) {
+ global $CFG;
+ $relatedctxcondition = get_related_contexts_string(get_context_instance(CONTEXT_COURSE, $courseid));
+
+ $sql = "SELECT giv.id, u.firstname, u.lastname, u.idnumber AS useridnumber,
+ COALESCE(gi.idnumber, gin.itemname) AS gradeidnumber
+ FROM
+ {$CFG->prefix}grade_import_values giv
+ JOIN {$CFG->prefix}user u ON giv.userid = u.id
+ LEFT JOIN {$CFG->prefix}grade_items gi ON gi.id = giv.itemid
+ LEFT JOIN {$CFG->prefix}grade_import_newitem gin ON gin.id = giv.newgradeitem
+ LEFT JOIN {$CFG->prefix}role_assignments ra ON (giv.userid = ra.userid AND
+ ra.roleid IN ($CFG->gradebookroles) AND
+ ra.contextid $relatedctxcondition)
+ WHERE giv.importcode = $importcode
+ AND ra.id IS NULL
+ ORDER BY gradeidnumber, u.lastname, u.firstname";
+
+ return get_records_sql($sql);
}
/**