diff --git a/classes/responsetype/responsetype.php b/classes/responsetype/responsetype.php index aa9c5dd2..841ea11d 100644 --- a/classes/responsetype/responsetype.php +++ b/classes/responsetype/responsetype.php @@ -287,6 +287,7 @@ protected function user_fields_sql() { $userfieldsarr = get_all_user_name_fields(); } $userfieldsarr = array_merge($userfieldsarr, ['username', 'department', 'institution']); + $userfieldsarr = array_merge($userfieldsarr, ['username', 'department', 'institution', 'idnumber']); $userfields = ''; foreach ($userfieldsarr as $field) { $userfields .= $userfields === '' ? '' : ', '; diff --git a/lang/en/questionnaire.php b/lang/en/questionnaire.php index a5ab2e7e..d6c2d1ab 100644 --- a/lang/en/questionnaire.php +++ b/lang/en/questionnaire.php @@ -259,7 +259,8 @@ $string['gradesdeleted'] = 'Questionnaire grades deleted'; $string['headingtext'] = 'Heading text'; $string['horizontal'] = 'Horizontal'; -$string['id'] = 'ID'; +$string['id'] = 'User id'; +$string['useridnumber'] = 'User idnumber'; $string['includerankaverages'] = 'Include rank question averages'; $string['includechoicecodes'] = 'Include choice codes'; $string['includechoicetext'] = 'Include choice text'; diff --git a/questionnaire.class.php b/questionnaire.class.php index 5fd3bebe..e72f7841 100644 --- a/questionnaire.class.php +++ b/questionnaire.class.php @@ -3012,6 +3012,7 @@ protected function user_fields() { $userfieldsarr = get_all_user_name_fields(); } $userfieldsarr = array_merge($userfieldsarr, ['username', 'department', 'institution']); + $userfieldsarr = array_merge($userfieldsarr, ['username', 'department', 'institution', 'idnumber']); return $userfieldsarr; } @@ -3182,6 +3183,9 @@ protected function process_csv_row(array &$row, if (in_array('id', $options)) { array_push($positioned, $uid); } + if (in_array('useridnumber', $options)) { + array_push($positioned, $user->idnumber); + } if (in_array('fullname', $options)) { array_push($positioned, $fullname); } @@ -3241,7 +3245,7 @@ public function generate_csv($currentgroupid, $rid='', $userid='', $choicecodes= $columns = array(); $types = array(); foreach ($options as $option) { - if (in_array($option, array('response', 'submitted', 'id'))) { + if (in_array($option, array('response', 'submitted', 'id', 'useridnumber'))) { $columns[] = get_string($option, 'questionnaire'); $types[] = 0; } else if ($option == 'useridentityfields') { diff --git a/settings.php b/settings.php index 6a21c51d..32c37b31 100644 --- a/settings.php +++ b/settings.php @@ -42,6 +42,7 @@ 'course' => get_string('course'), 'group' => get_string('group'), 'id' => get_string('id', 'questionnaire'), + 'useridnumber' => get_string('useridnumber', 'questionnaire'), 'fullname' => get_string('fullname'), 'username' => get_string('username'), 'useridentityfields' => get_string('showuseridentity', 'admin') diff --git a/tests/csvexport_test.php b/tests/csvexport_test.php index bf90dbef..f594ee7c 100644 --- a/tests/csvexport_test.php +++ b/tests/csvexport_test.php @@ -199,7 +199,7 @@ private function do_test_csvexport_identity_fields($course, $cm, $user, $roleid, * @return string[] */ private function expected_complete_output() { - return ["Institution Department Course Group Full name Username Q01_Text Box 1000 Q02_Essay Box 1002 " . + return ["Institution Department Course Group User idnumber Full name Username Q01_Text Box 1000 Q02_Essay Box 1002 " . "Q03_Numeric 1004 Q04_Date 1006 Q05_Radio Buttons 1008 Q06_Drop Down 1010 Q07_Check Boxes 1012->four " . "Q07_Check Boxes 1012->five Q07_Check Boxes 1012->six Q07_Check Boxes 1012->seven Q07_Check Boxes 1012->eight " . "Q07_Check Boxes 1012->nine Q07_Check Boxes 1012->ten Q07_Check Boxes 1012->eleven " . @@ -207,13 +207,13 @@ private function expected_complete_output() { "Q08_Rate Scale 1014->fifteen Q08_Rate Scale 1014->sixteen Q08_Rate Scale 1014->seventeen " . "Q08_Rate Scale 1014->eighteen Q08_Rate Scale 1014->nineteen Q08_Rate Scale 1014->twenty " . "Q08_Rate Scale 1014->happy Q08_Rate Scale 1014->sad Q08_Rate Scale 1014->jealous Q09_Slider 1016", - " Test course 1 Testy Lastname1 username1 Test answer Some header textSome paragraph text 83 " . + " Test course 1 Testy Lastname1 username1 Test answer Some header textSome paragraph text 83 " . "27/12/2017 wind three 0 0 0 0 0 0 0 0 0 1 1 2 3 4 5 1 2 3 4 5", - " Test course 1 Testy Lastname2 username2 Test answer Some header textSome paragraph text 83 " . + " Test course 1 Testy Lastname2 username2 Test answer Some header textSome paragraph text 83 " . "27/12/2017 wind three 0 0 0 0 0 0 0 0 0 1 1 2 3 4 5 1 2 3 4 5", - " Test course 1 Testy Lastname3 username3 Test answer Some header textSome paragraph text 83 " . + " Test course 1 Testy Lastname3 username3 Test answer Some header textSome paragraph text 83 " . "27/12/2017 wind three 0 0 0 0 0 0 0 0 0 1 1 2 3 4 5 1 2 3 4 5", - " Test course 1 Testy Lastname4 username4 Test answer Some header textSome paragraph text 83 " . + " Test course 1 Testy Lastname4 username4 Test answer Some header textSome paragraph text 83 " . "27/12/2017 wind three 0 0 0 0 0 0 0 0 0 1 1 2 3 4 5 1 2 3 4 5"]; } @@ -222,7 +222,7 @@ private function expected_complete_output() { * @return string[] */ private function expected_incomplete_output() { - return ["Institution Department Course Group Full name Username Complete Q01_Text Box 1000 " . + return ["Institution Department Course Group User idnumber Full name Username Complete Q01_Text Box 1000 " . "Q02_Essay Box 1002 " . "Q03_Numeric 1004 Q04_Date 1006 Q05_Radio Buttons 1008 Q06_Drop Down 1010 Q07_Check Boxes 1012->four " . "Q07_Check Boxes 1012->five Q07_Check Boxes 1012->six Q07_Check Boxes 1012->seven Q07_Check Boxes 1012->eight " . @@ -231,15 +231,15 @@ private function expected_incomplete_output() { "Q08_Rate Scale 1014->fifteen Q08_Rate Scale 1014->sixteen Q08_Rate Scale 1014->seventeen " . "Q08_Rate Scale 1014->eighteen Q08_Rate Scale 1014->nineteen Q08_Rate Scale 1014->twenty " . "Q08_Rate Scale 1014->happy Q08_Rate Scale 1014->sad Q08_Rate Scale 1014->jealous Q09_Slider 1016", - " Test course 1 Testy Lastname1 username1 y Test answer Some header textSome paragraph text 83 " . + " Test course 1 Testy Lastname1 username1 y Test answer Some header textSome paragraph text 83 " . "27/12/2017 wind three 0 0 0 0 0 0 0 0 0 1 1 2 3 4 5 1 2 3 4 5", - " Test course 1 Testy Lastname2 username2 y Test answer Some header textSome paragraph text 83 " . + " Test course 1 Testy Lastname2 username2 y Test answer Some header textSome paragraph text 83 " . "27/12/2017 wind three 0 0 0 0 0 0 0 0 0 1 1 2 3 4 5 1 2 3 4 5", - " Test course 1 Testy Lastname3 username3 y Test answer Some header textSome paragraph text 83 " . + " Test course 1 Testy Lastname3 username3 y Test answer Some header textSome paragraph text 83 " . "27/12/2017 wind three 0 0 0 0 0 0 0 0 0 1 1 2 3 4 5 1 2 3 4 5", - " Test course 1 Testy Lastname4 username4 y Test answer Some header textSome paragraph text 83 " . + " Test course 1 Testy Lastname4 username4 y Test answer Some header textSome paragraph text 83 " . "27/12/2017 wind three 0 0 0 0 0 0 0 0 0 1 1 2 3 4 5 1 2 3 4 5", - " Test course 1 Testy Lastname5 username5 n Test answer Some header textSome paragraph text 83 " . + " Test course 1 Testy Lastname5 username5 n Test answer Some header textSome paragraph text 83 " . "27/12/2017 wind three 0 0 0 0 0 0 0 0 0 1 1 2 3 4 5 1 2 3 4 5"]; } }