From 18159e20dbac6c05edd41768f11035620bbde14d Mon Sep 17 00:00:00 2001
From: tjhunt <tjhunt>
Date: Thu, 10 Jan 2008 15:38:48 +0000
Subject: [PATCH] MDL-12913 - Error messages when doing an XML grade import are
 not very helpful, include the idnumber that is causing the problem in the
 error message.

---
 grade/import/xml/lib.php         | 12 +++++++-----
 lang/en_utf8/gradeimport_xml.php |  3 +++
 2 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/grade/import/xml/lib.php b/grade/import/xml/lib.php
index c581f898e7..efddd1860b 100644
--- a/grade/import/xml/lib.php
+++ b/grade/import/xml/lib.php
@@ -41,15 +41,16 @@ function import_xml_grades($text, $course, &$error) {
         $results = $content['results']['#']['result'];
 
         foreach ($results as $i => $result) {
-            if (!$grade_items = grade_item::fetch_all(array('idnumber'=>$result['#']['assignment'][0]['#'], 'courseid'=>$course->id))) {
+            $gradeidnumber = $result['#']['assignment'][0]['#'];
+            if (!$grade_items = grade_item::fetch_all(array('idnumber'=>$gradeidnumber, 'courseid'=>$course->id))) {
                 // gradeitem does not exist
                 // no data in temp table so far, abort
                 $status = false;
-                $error  = get_string('errincorrectidnumber', 'gradeimport_xml');
+                $error  = get_string('errincorrectgradeidnumber', 'gradeimport_xml', $gradeidnumber);
                 break;
             } else if (count($grade_items) != 1) {
                 $status = false;
-                $error  = get_string('errduplicateidnumber', 'gradeimport_xml');
+                $error  = get_string('errduplicategradeidnumber', 'gradeimport_xml', $gradeidnumber);
                 break;
             } else {
                 $grade_item = reset($grade_items);
@@ -63,10 +64,11 @@ function import_xml_grades($text, $course, &$error) {
             }
 
             // check if user exist and convert idnumber to user id
-            if (!$user = get_record('user', 'idnumber', addslashes($result['#']['student'][0]['#']))) {
+            $useridnumber = $result['#']['student'][0]['#'];
+            if (!$user = get_record('user', 'idnumber', addslashes($useridnumber))) {
                 // no user found, abort
                 $status = false;
-                $error = get_string('baduser', 'grades');
+                $error = get_string('errincorrectuseridnumber', 'gradeimport_xml', $useridnumber);
                 break;
             }
 
diff --git a/lang/en_utf8/gradeimport_xml.php b/lang/en_utf8/gradeimport_xml.php
index 1cd932f1f0..ec2e5f4a39 100644
--- a/lang/en_utf8/gradeimport_xml.php
+++ b/lang/en_utf8/gradeimport_xml.php
@@ -3,6 +3,9 @@
 $string['errbadxmlformat'] = 'Error - bad XML format';
 $string['errduplicateidnumber'] = 'Error - duplicate idnumber';
 $string['errincorrectidnumber'] = 'Error - incorrect idnumber';
+$string['errduplicategradeidnumber'] = 'Error - there are two grade items with idnumber \'$a\' in this course. This should be impossible.';
+$string['errincorrectgradeidnumber'] = 'Error - idnumber \'$a\' from the import file does not match any grade item.';
+$string['errincorrectuseridnumber'] = 'Error - idnumber \'$a\' from the import file does not match any user.';
 $string['fileurl'] = 'Remote file URL';
 $string['modulename'] = 'XML file';
 $string['xml:view'] = 'Import grades from XML';
-- 
2.39.5