From aee71c329d934ee750448721e7c2caacfd4725ba Mon Sep 17 00:00:00 2001 From: Sujith Haridasan Date: Thu, 31 Mar 2022 16:53:00 +0530 Subject: [PATCH 1/2] MDL-74332 mod_survey: Critical incidents dont require summary and scales Do not show summary and scales for the survey with critical incidents. So critical incidents survey would have questions and participants only under response reports. Also corrected the heading for the Questions page. --- mod/survey/lib.php | 15 ++++-- mod/survey/report.php | 11 +++- .../behat/survey_critical_incidents.feature | 53 +++++++++++++++++++ 3 files changed, 73 insertions(+), 6 deletions(-) create mode 100644 mod/survey/tests/behat/survey_critical_incidents.feature diff --git a/mod/survey/lib.php b/mod/survey/lib.php index 49319b5daa5..d5c7b333a5c 100644 --- a/mod/survey/lib.php +++ b/mod/survey/lib.php @@ -810,16 +810,21 @@ function survey_supports($feature) { * @param navigation_node $surveynode */ function survey_extend_settings_navigation($settings, $surveynode) { - global $PAGE; + global $PAGE, $DB; if (has_capability('mod/survey:readresponses', $PAGE->cm->context)) { $responsesnode = $surveynode->add(get_string("responsereports", "survey")); - $url = new moodle_url('/mod/survey/report.php', array('id' => $PAGE->cm->id, 'action'=>'summary')); - $responsesnode->add(get_string("summary", "survey"), $url); - $url = new moodle_url('/mod/survey/report.php', array('id' => $PAGE->cm->id, 'action'=>'scales')); - $responsesnode->add(get_string("scales", "survey"), $url); + $cm = get_coursemodule_from_id('survey', $PAGE->cm->id); + $survey = $DB->get_record("survey", ["id" => $cm->instance]); + if ($survey && ($survey->template != SURVEY_CIQ)) { + $url = new moodle_url('/mod/survey/report.php', array('id' => $PAGE->cm->id, 'action' => 'summary')); + $responsesnode->add(get_string("summary", "survey"), $url); + + $url = new moodle_url('/mod/survey/report.php', array('id' => $PAGE->cm->id, 'action' => 'scales')); + $responsesnode->add(get_string("scales", "survey"), $url); + } $url = new moodle_url('/mod/survey/report.php', array('id' => $PAGE->cm->id, 'action'=>'questions')); $responsesnode->add(get_string("question", "survey"), $url); diff --git a/mod/survey/report.php b/mod/survey/report.php index a3ad94541c7..6a1c6ce7be1 100644 --- a/mod/survey/report.php +++ b/mod/survey/report.php @@ -97,7 +97,13 @@ $PAGE->navbar->add(get_string('downloadresults', 'survey')); break; case 'summary': + if ($survey->template == SURVEY_CIQ) { + throw new moodle_exception('cannotviewreport'); + } case 'scales': + if ($survey->template == SURVEY_CIQ) { + throw new moodle_exception('cannotviewreport'); + } case 'questions': $PAGE->navbar->add($strreport); $PAGE->navbar->add(${'str'.$action}); @@ -248,7 +254,7 @@ $questions = $DB->get_records_list("survey_questions", "id", explode(',',$survey->questions)); $questionorder = explode(",", $survey->questions); - echo $OUTPUT->heading($strallquestions, 3); + echo $OUTPUT->heading($strquestions, 3); } if (! $results = survey_get_responses($survey->id, $currentgroup, $groupingid) ) { @@ -517,6 +523,9 @@ break; + default: + throw new moodle_exception('cannotviewreport'); + } echo $OUTPUT->footer(); diff --git a/mod/survey/tests/behat/survey_critical_incidents.feature b/mod/survey/tests/behat/survey_critical_incidents.feature new file mode 100644 index 00000000000..0ed8ba0eef6 --- /dev/null +++ b/mod/survey/tests/behat/survey_critical_incidents.feature @@ -0,0 +1,53 @@ +@mod @mod_survey @javascript +Feature: A teacher navigates to response reports of students + If survey activity is configured for critical students + Only questions and particiats pages should be visible under response reports + + Background: + Given the following "users" exist: + | username | firstname | lastname | email | + | teacher1 | Teacher | 1 | teacher1@example.com | + | student1 | Student | 1 | student1@example.com | + | student2 | Student | 1 | student2@example.com | + And the following "courses" exist: + | fullname | shortname | category | enablecompletion | + | Course 1 | C1 | 0 | 1 | + And the following "course enrolments" exist: + | user | course | role | + | teacher1 | C1 | editingteacher | + | student1 | C1 | student | + | student2 | C1 | student | + And the following "activities" exist: + | activity | name | intro | course | idnumber | section | + | survey | Test survey name | Test survey description | C1 | survey1 | 1 | + + Scenario: Only questions and participants page should be available under response reports as teacher + Given I am on the "Test survey name" "survey activity" page logged in as teacher1 + And I navigate to "Edit settings" in current page administration + And I set the following fields to these values: + | Survey type | Critical incidents | + And I press "Save and return to course" + And I log out + And I am on the "Test survey name" "survey activity" page logged in as student1 + And I set the field "At what moment in class were you most engaged as a learner?" to "most engaged as student1" + And I set the field "At what moment in class were you most distanced as a learner?" to "most distanced as student1" + And I set the field "What action from anyone in the forums did you find most affirming or helpful?" to "most helpful student1" + And I set the field "What action from anyone in the forums did you find most puzzling or confusing?" to "most confusing student1" + And I set the field "What event surprised you most?" to "most surprised student1" + And I press "Click here to continue" + And I press "Continue" + And I log out + And I am on the "Test survey name" "survey activity" page logged in as student2 + And I set the field "At what moment in class were you most engaged as a learner?" to "most engaged as student2" + And I set the field "At what moment in class were you most distanced as a learner?" to "most distanced as student2" + And I set the field "What action from anyone in the forums did you find most affirming or helpful?" to "most helpful student2" + And I set the field "What action from anyone in the forums did you find most puzzling or confusing?" to "most confusing student2" + And I set the field "What event surprised you most?" to "most surprised student1" + And I press "Click here to continue" + And I press "Continue" + And I log out + When I am on the "Test survey name" "survey activity" page logged in as teacher1 + And "Summary" "link" should not exist in current page administration + And "Scales" "link" should not exist in current page administration + And "Response reports > Question" "link" should exist in current page administration + And "Response reports > Participants" "link" should exist in current page administration From fb9fdc47540abda5b71bf857d77edf47ac4183c9 Mon Sep 17 00:00:00 2001 From: Sujith Haridasan Date: Mon, 4 Apr 2022 10:45:50 +0530 Subject: [PATCH 2/2] MDL-74332 mod_survey: Indent the file properly Correct the indentation of the file. Replaced print_error with moodle_exception. Updated the comments to start with capital and end with fullstop. --- mod/survey/report.php | 527 +++++++++++++++++++++--------------------- 1 file changed, 261 insertions(+), 266 deletions(-) diff --git a/mod/survey/report.php b/mod/survey/report.php index 6a1c6ce7be1..03f42eb5805 100644 --- a/mod/survey/report.php +++ b/mod/survey/report.php @@ -23,175 +23,173 @@ * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ - require_once("../../config.php"); - require_once("lib.php"); +require_once("../../config.php"); +require_once("lib.php"); // Check that all the parameters have been provided. - $id = required_param('id', PARAM_INT); // Course Module ID - $action = optional_param('action', '', PARAM_ALPHA); // What to look at - $qid = optional_param('qid', 0, PARAM_RAW); // Question IDs comma-separated list - $student = optional_param('student', 0, PARAM_INT); // Student ID - $notes = optional_param('notes', '', PARAM_RAW); // Save teachers notes +$id = required_param('id', PARAM_INT); // Course Module ID. +$action = optional_param('action', '', PARAM_ALPHA); // What to look at. +$qid = optional_param('qid', 0, PARAM_RAW); // Question IDs comma-separated list. +$student = optional_param('student', 0, PARAM_INT); // Student ID. +$notes = optional_param('notes', '', PARAM_RAW); // Save teachers notes. - $qids = explode(',', $qid); - $qids = clean_param_array($qids, PARAM_INT); - $qid = implode (',', $qids); +$qids = explode(',', $qid); +$qids = clean_param_array($qids, PARAM_INT); +$qid = implode(',', $qids); - if (! $cm = get_coursemodule_from_id('survey', $id)) { - print_error('invalidcoursemodule'); - } +if (!$cm = get_coursemodule_from_id('survey', $id)) { + throw new moodle_exception('invalidcoursemodule'); +} - if (! $course = $DB->get_record("course", array("id"=>$cm->course))) { - print_error('coursemisconf'); - } +if (!$course = $DB->get_record("course", array("id" => $cm->course))) { + throw new moodle_exception('coursemisconf'); +} - $url = new moodle_url('/mod/survey/report.php', array('id'=>$id)); - if ($action !== '') { - $url->param('action', $action); - } - if ($qid !== 0) { - $url->param('qid', $qid); - } - if ($student !== 0) { - $url->param('student', $student); - } - if ($notes !== '') { - $url->param('notes', $notes); - } - $PAGE->set_url($url); +$url = new moodle_url('/mod/survey/report.php', array('id' => $id)); +if ($action !== '') { + $url->param('action', $action); +} +if ($qid !== 0) { + $url->param('qid', $qid); +} +if ($student !== 0) { + $url->param('student', $student); +} +if ($notes !== '') { + $url->param('notes', $notes); +} +$PAGE->set_url($url); - require_login($course, false, $cm); +require_login($course, false, $cm); - $context = context_module::instance($cm->id); +$context = context_module::instance($cm->id); - require_capability('mod/survey:readresponses', $context); +require_capability('mod/survey:readresponses', $context); - if (! $survey = $DB->get_record("survey", array("id"=>$cm->instance))) { - print_error('invalidsurveyid', 'survey'); - } +if (!$survey = $DB->get_record("survey", array("id" => $cm->instance))) { + throw new moodle_exception('invalidsurveyid', 'survey'); +} - if (! $template = $DB->get_record("survey", array("id"=>$survey->template))) { - print_error('invalidtmptid', 'survey'); - } +if (!$template = $DB->get_record("survey", array("id" => $survey->template))) { + throw new moodle_exception('invalidtmptid', 'survey'); +} - $showscales = ($template->name != 'ciqname'); +$showscales = ($template->name != 'ciqname'); +$strreport = get_string("report", "survey"); +$strsurvey = get_string("modulename", "survey"); +$strsurveys = get_string("modulenameplural", "survey"); +$strsummary = get_string("summary", "survey"); +$strscales = get_string("scales", "survey"); +$strquestion = get_string("question", "survey"); +$strquestions = get_string("questions", "survey"); +$strdownload = get_string("download", "survey"); +$strallscales = get_string("allscales", "survey"); +$strallquestions = get_string("allquestions", "survey"); +$strselectedquestions = get_string("selectedquestions", "survey"); +$strseemoredetail = get_string("seemoredetail", "survey"); +$strnotes = get_string("notes", "survey"); - $strreport = get_string("report", "survey"); - $strsurvey = get_string("modulename", "survey"); - $strsurveys = get_string("modulenameplural", "survey"); - $strsummary = get_string("summary", "survey"); - $strscales = get_string("scales", "survey"); - $strquestion = get_string("question", "survey"); - $strquestions = get_string("questions", "survey"); - $strdownload = get_string("download", "survey"); - $strallscales = get_string("allscales", "survey"); - $strallquestions = get_string("allquestions", "survey"); - $strselectedquestions = get_string("selectedquestions", "survey"); - $strseemoredetail = get_string("seemoredetail", "survey"); - $strnotes = get_string("notes", "survey"); +switch ($action) { + case 'download': + $PAGE->navbar->add(get_string('downloadresults', 'survey')); + break; + case 'summary': + if ($survey->template == SURVEY_CIQ) { + throw new moodle_exception('cannotviewreport'); + } + case 'scales': + if ($survey->template == SURVEY_CIQ) { + throw new moodle_exception('cannotviewreport'); + } + case 'questions': + $PAGE->navbar->add($strreport); + $PAGE->navbar->add(${'str' . $action}); + break; + case 'students': + $PAGE->navbar->add($strreport); + $PAGE->navbar->add(get_string('participants')); + break; + case '': + $PAGE->navbar->add($strreport); + $PAGE->navbar->add($strsummary); + break; + default: + $PAGE->navbar->add($strreport); + break; +} - switch ($action) { - case 'download': - $PAGE->navbar->add(get_string('downloadresults', 'survey')); - break; - case 'summary': - if ($survey->template == SURVEY_CIQ) { - throw new moodle_exception('cannotviewreport'); - } - case 'scales': - if ($survey->template == SURVEY_CIQ) { - throw new moodle_exception('cannotviewreport'); - } - case 'questions': - $PAGE->navbar->add($strreport); - $PAGE->navbar->add(${'str'.$action}); - break; - case 'students': - $PAGE->navbar->add($strreport); - $PAGE->navbar->add(get_string('participants')); - break; - case '': - $PAGE->navbar->add($strreport); - $PAGE->navbar->add($strsummary); - break; - default: - $PAGE->navbar->add($strreport); - break; - } +$PAGE->set_title("$course->shortname: " . format_string($survey->name)); +$PAGE->set_heading($course->fullname); +echo $OUTPUT->header(); +echo $OUTPUT->heading(format_string($survey->name)); - $PAGE->set_title("$course->shortname: ".format_string($survey->name)); - $PAGE->set_heading($course->fullname); - echo $OUTPUT->header(); - echo $OUTPUT->heading(format_string($survey->name)); +// Check to see if groups are being used in this survey. +if ($groupmode = groups_get_activity_groupmode($cm)) { // Groups are being used. + $menuaction = $action == "student" ? "students" : $action; + $currentgroup = groups_get_activity_group($cm, true); + groups_print_activity_menu($cm, $CFG->wwwroot . "/mod/survey/report.php?id=$cm->id&action=$menuaction&qid=$qid"); +} else { + $currentgroup = 0; +} -/// Check to see if groups are being used in this survey - if ($groupmode = groups_get_activity_groupmode($cm)) { // Groups are being used - $menuaction = $action == "student" ? "students" : $action; - $currentgroup = groups_get_activity_group($cm, true); - groups_print_activity_menu($cm, $CFG->wwwroot . "/mod/survey/report.php?id=$cm->id&action=$menuaction&qid=$qid"); - } else { - $currentgroup = 0; - } - - $params = array( +$params = array( 'objectid' => $survey->id, 'context' => $context, 'courseid' => $course->id, 'relateduserid' => $student, 'other' => array('action' => $action, 'groupid' => $currentgroup) - ); - $event = \mod_survey\event\report_viewed::create($params); - $event->trigger(); +); +$event = \mod_survey\event\report_viewed::create($params); +$event->trigger(); - if ($currentgroup) { - $users = get_users_by_capability($context, 'mod/survey:participate', '', '', '', '', $currentgroup, null, false); - } else if (!empty($cm->groupingid)) { - $groups = groups_get_all_groups($courseid, 0, $cm->groupingid); - $groups = array_keys($groups); - $users = get_users_by_capability($context, 'mod/survey:participate', '', '', '', '', $groups, null, false); - } else { - $users = get_users_by_capability($context, 'mod/survey:participate', '', '', '', '', '', null, false); - $group = false; +if ($currentgroup) { + $users = get_users_by_capability($context, 'mod/survey:participate', '', '', '', '', $currentgroup, null, false); +} else if (!empty($cm->groupingid)) { + $groups = groups_get_all_groups($courseid, 0, $cm->groupingid); + $groups = array_keys($groups); + $users = get_users_by_capability($context, 'mod/survey:participate', '', '', '', '', $groups, null, false); +} else { + $users = get_users_by_capability($context, 'mod/survey:participate', '', '', '', '', '', null, false); + $group = false; +} + +$groupingid = $cm->groupingid; + +echo $OUTPUT->box_start("generalbox boxaligncenter"); +if ($showscales) { + echo "$strsummary"; + echo "    $strscales"; + echo "    $strquestions"; + echo "    " . get_string('participants') . ""; + if (has_capability('mod/survey:download', $context)) { + echo "    $strdownload"; } - - $groupingid = $cm->groupingid; - - echo $OUTPUT->box_start("generalbox boxaligncenter"); - if ($showscales) { - echo "$strsummary"; - echo "    $strscales"; - echo "    $strquestions"; - echo "    ".get_string('participants').""; - if (has_capability('mod/survey:download', $context)) { - echo "    $strdownload"; - } - if (empty($action)) { - $action = "summary"; - } - } else { - echo "$strquestions"; - echo "    ".get_string('participants').""; - if (has_capability('mod/survey:download', $context)) { - echo "    $strdownload"; - } - if (empty($action)) { - $action = "questions"; - } + if (empty($action)) { + $action = "summary"; } - echo $OUTPUT->box_end(); +} else { + echo "$strquestions"; + echo "    " . get_string('participants') . ""; + if (has_capability('mod/survey:download', $context)) { + echo "    $strdownload"; + } + if (empty($action)) { + $action = "questions"; + } +} +echo $OUTPUT->box_end(); - echo $OUTPUT->spacer(array('height'=>30, 'width'=>30, 'br'=>true)); // should be done with CSS instead +echo $OUTPUT->spacer(array('height' => 30, 'width' => 30, 'br' => true)); // Should be done with CSS instead. +// Print the menu across the top. -/// Print the menu across the top +$virtualscales = false; - $virtualscales = false; +switch ($action) { - switch ($action) { - - case "summary": + case "summary": echo $OUTPUT->heading($strsummary, 3); if (survey_count_responses($survey->id, $currentgroup, $groupingid)) { @@ -199,15 +197,15 @@ survey_print_graph("id=$id&group=$currentgroup&type=overall.png"); echo ""; } else { - echo $OUTPUT->notification(get_string("nobodyyet","survey")); + echo $OUTPUT->notification(get_string("nobodyyet", "survey")); } break; - case "scales": + case "scales": echo $OUTPUT->heading($strscales, 3); - if (! $results = survey_get_responses($survey->id, $currentgroup, $groupingid) ) { - echo $OUTPUT->notification(get_string("nobodyyet","survey")); + if (!$results = survey_get_responses($survey->id, $currentgroup, $groupingid)) { + echo $OUTPUT->notification(get_string("nobodyyet", "survey")); } else { @@ -225,7 +223,7 @@ foreach ($questionorder as $key => $val) { $question = $questions[$val]; if ($question->multi) { - if (!empty($virtualscales) && $question->type > 0) { // Don't show non-virtual scales if virtual + if (!empty($virtualscales) && $question->type > 0) { // Don't show non-virtual scales if virtual. continue; } echo "

multi\">"; @@ -237,28 +235,28 @@ break; - case "questions": + case "questions": - if ($qid) { // just get one multi-question + if ($qid) { // Just get one multi-question. $questions = $DB->get_records_select("survey_questions", "id in ($qid)"); $questionorder = explode(",", $qid); - if ($scale = $DB->get_records("survey_questions", array("multi"=>$qid))) { + if ($scale = $DB->get_records("survey_questions", array("multi" => $qid))) { $scale = array_pop($scale); echo $OUTPUT->heading("$scale->text - $strselectedquestions", 3); } else { echo $OUTPUT->heading($strselectedquestions, 3); } - } else { // get all top-level questions - $questions = $DB->get_records_list("survey_questions", "id", explode(',',$survey->questions)); + } else { // Get all top-level questions. + $questions = $DB->get_records_list("survey_questions", "id", explode(',', $survey->questions)); $questionorder = explode(",", $survey->questions); echo $OUTPUT->heading($strquestions, 3); } - if (! $results = survey_get_responses($survey->id, $currentgroup, $groupingid) ) { - echo $OUTPUT->notification(get_string("nobodyyet","survey")); + if (!$results = survey_get_responses($survey->id, $currentgroup, $groupingid)) { + echo $OUTPUT->notification(get_string("nobodyyet", "survey")); } else { @@ -290,7 +288,7 @@ echo "

"; } } - } else if ($question->type > 0 ) { + } else if ($question->type > 0) { echo "

"; echo "id\">"; survey_print_graph("id=$id&qid=$question->id&group=$currentgroup&type=question.png"); @@ -299,15 +297,15 @@ } else { $table = new html_table(); $table->head = array($question->text); - $table->align = array ("left"); + $table->align = array("left"); $contents = ''; if ($aaa = survey_get_user_answers($survey->id, $question->id, $currentgroup, "sa.time ASC")) { foreach ($aaa as $a) { $contents .= ""; - $contents .= ''; - $contents .= ''; + $contents .= ''; + $contents .= ''; $contents .= ""; } } @@ -317,24 +315,23 @@ echo html_writer::table($table); - echo $OUTPUT->spacer(array('height'=>30)); // should be done with CSS instead + echo $OUTPUT->spacer(array('height' => 30)); // Should be done with CSS instead. } } } break; - case "question": - if (!$question = $DB->get_record("survey_questions", array("id"=>$qid))) { - print_error('cannotfindquestion', 'survey'); + case "question": + if (!$question = $DB->get_record("survey_questions", array("id" => $qid))) { + throw new moodle_exception('cannotfindquestion', 'survey'); } $question->text = get_string($question->text, "survey"); - $answers = explode(",", get_string($question->options, "survey")); + $answers = explode(",", get_string($question->options, "survey")); echo $OUTPUT->heading("$strquestion: $question->text", 3); - $strname = get_string("name", "survey"); $strtime = get_string("time", "survey"); $stractual = get_string("actual", "survey"); @@ -343,26 +340,26 @@ $table = new html_table(); $table->head = array("", $strname, $strtime, $stractual, $strpreferred); - $table->align = array ("left", "left", "left", "left", "right"); - $table->size = array (35, "", "", "", ""); + $table->align = array("left", "left", "left", "left", "right"); + $table->size = array(35, "", "", "", ""); if ($aaa = survey_get_user_answers($survey->id, $question->id, $currentgroup)) { foreach ($aaa as $a) { if ($a->answer1) { - $answer1 = "$a->answer1 - ".$answers[$a->answer1 - 1]; + $answer1 = "$a->answer1 - " . $answers[$a->answer1 - 1]; } else { - $answer1 = " "; + $answer1 = " "; } if ($a->answer2) { - $answer2 = "$a->answer2 - ".$answers[$a->answer2 - 1]; + $answer2 = "$a->answer2 - " . $answers[$a->answer2 - 1]; } else { $answer2 = " "; } $table->data[] = array( - $OUTPUT->user_picture($a, array('courseid'=>$course->id)), - "userid\">".fullname($a)."", - userdate($a->time), - s($answer1), s($answer2)); + $OUTPUT->user_picture($a, array('courseid' => $course->id)), + "userid\">" . fullname($a) . "", + userdate($a->time), + s($answer1), s($answer2)); } } @@ -371,87 +368,87 @@ break; - case "students": + case "students": - echo $OUTPUT->heading(get_string("analysisof", "survey", get_string('participants')), 3); + echo $OUTPUT->heading(get_string("analysisof", "survey", get_string('participants')), 3); - if (! $results = survey_get_responses($survey->id, $currentgroup, $groupingid) ) { - echo $OUTPUT->notification(get_string("nobodyyet","survey")); - } else { - survey_print_all_responses($cm->id, $results, $course->id); - } + if (!$results = survey_get_responses($survey->id, $currentgroup, $groupingid)) { + echo $OUTPUT->notification(get_string("nobodyyet", "survey")); + } else { + survey_print_all_responses($cm->id, $results, $course->id); + } break; - case "student": - if (!$user = $DB->get_record("user", array("id"=>$student))) { - print_error('invaliduserid'); - } + case "student": + if (!$user = $DB->get_record("user", array("id" => $student))) { + throw new moodle_exception('invaliduserid'); + } - echo $OUTPUT->heading(get_string("analysisof", "survey", fullname($user)), 3); + echo $OUTPUT->heading(get_string("analysisof", "survey", fullname($user)), 3); - if ($notes != '' and confirm_sesskey()) { - if (survey_get_analysis($survey->id, $user->id)) { - if (! survey_update_analysis($survey->id, $user->id, $notes)) { - echo $OUTPUT->notification(get_string("errorunabletosavenotes", "survey"), "notifyproblem"); - } else { - echo $OUTPUT->notification(get_string("savednotes", "survey"), "notifysuccess"); - } - } else { - if (! survey_add_analysis($survey->id, $user->id, $notes)) { - echo $OUTPUT->notification(get_string("errorunabletosavenotes", "survey"), "notifyproblem"); - } else { - echo $OUTPUT->notification(get_string("savednotes", "survey"), "notifysuccess"); - } - } - } + if ($notes != '' and confirm_sesskey()) { + if (survey_get_analysis($survey->id, $user->id)) { + if (!survey_update_analysis($survey->id, $user->id, $notes)) { + echo $OUTPUT->notification(get_string("errorunabletosavenotes", "survey"), "notifyproblem"); + } else { + echo $OUTPUT->notification(get_string("savednotes", "survey"), "notifysuccess"); + } + } else { + if (!survey_add_analysis($survey->id, $user->id, $notes)) { + echo $OUTPUT->notification(get_string("errorunabletosavenotes", "survey"), "notifyproblem"); + } else { + echo $OUTPUT->notification(get_string("savednotes", "survey"), "notifysuccess"); + } + } + } - echo "

"; - echo $OUTPUT->user_picture($user, array('courseid'=>$course->id)); - echo "

"; + echo "

"; + echo $OUTPUT->user_picture($user, array('courseid' => $course->id)); + echo "

"; - $questions = $DB->get_records_list("survey_questions", "id", explode(',', $survey->questions)); - $questionorder = explode(",", $survey->questions); + $questions = $DB->get_records_list("survey_questions", "id", explode(',', $survey->questions)); + $questionorder = explode(",", $survey->questions); - if ($showscales) { - // Print overall summary + if ($showscales) { + // Print overall summary. echo "

"; - survey_print_graph("id=$id&sid=$student&type=student.png"); - echo "

"; + survey_print_graph("id=$id&sid=$student&type=student.png"); + echo "

"; - // Print scales + // Print scales. - foreach ($questionorder as $key => $val) { - $question = $questions[$val]; - if ($question->type < 0) { // We have some virtual scales. Just show them. - $virtualscales = true; - break; - } - } + foreach ($questionorder as $key => $val) { + $question = $questions[$val]; + if ($question->type < 0) { // We have some virtual scales. Just show them. + $virtualscales = true; + break; + } + } - foreach ($questionorder as $key => $val) { - $question = $questions[$val]; - if ($question->multi) { - if ($virtualscales && $question->type > 0) { // Don't show non-virtual scales if virtual - continue; - } - echo "

"; - echo "multi\">"; - survey_print_graph("id=$id&qid=$question->id&sid=$student&type=studentmultiquestion.png"); - echo "


"; - } - } - } + foreach ($questionorder as $key => $val) { + $question = $questions[$val]; + if ($question->multi) { + if ($virtualscales && $question->type > 0) { // Don't show non-virtual scales if virtual. + continue; + } + echo "

"; + echo "multi\">"; + survey_print_graph("id=$id&qid=$question->id&sid=$student&type=studentmultiquestion.png"); + echo "


"; + } + } + } - // Print non-scale questions + // Print non-scale questions. - foreach ($questionorder as $key => $val) { - $question = $questions[$val]; - if ($question->type == 0 or $question->type == 1) { - if ($answer = survey_get_user_answer($survey->id, $question->id, $user->id)) { + foreach ($questionorder as $key => $val) { + $question = $questions[$val]; + if ($question->type == 0 or $question->type == 1) { + if ($answer = survey_get_user_answer($survey->id, $question->id, $user->id)) { $table = new html_table(); - $table->head = array(get_string($question->text, "survey")); - $table->align = array ("left"); + $table->head = array(get_string($question->text, "survey")); + $table->align = array("left"); if (!empty($question->options) && $answer->answer1 > 0) { $answers = explode(',', get_string($question->options, 'survey')); if ($answer->answer1 <= count($answers)) { @@ -460,40 +457,39 @@ $table->data[] = array(s($answer->answer1)); // No html here, just plain text. } } else { - $table->data[] = array(s($answer->answer1)); // No html here, just plain text. + $table->data[] = array(s($answer->answer1)); // No html here, just plain text. } - echo html_writer::table($table); - echo $OUTPUT->spacer(array('height'=>30)); - } - } - } + echo html_writer::table($table); + echo $OUTPUT->spacer(array('height' => 30)); + } + } + } - if ($rs = survey_get_analysis($survey->id, $user->id)) { + if ($rs = survey_get_analysis($survey->id, $user->id)) { $notes = $rs->notes; - } else { + } else { $notes = ""; - } - echo "
"; - echo "
"; - echo "
"; - echo "

$strnotes:

"; - echo "
"; - echo "
"; - echo ""; - echo ""; - echo ""; - echo "id\" />"; - echo ""; - echo "
"; - echo ""; - echo "
"; + } + echo "
"; + echo "
"; + echo "
"; + echo "

$strnotes:

"; + echo "
"; + echo "
"; + echo ""; + echo ""; + echo ""; + echo "id\" />"; + echo ""; + echo "
"; + echo ""; + echo "
"; + break; - break; - - case "download": + case "download": echo $OUTPUT->heading($strdownload, 3); require_capability('mod/survey:download', $context); @@ -518,14 +514,13 @@ echo $OUTPUT->container_end(); } else { - echo html_writer::tag('p', get_string("nobodyyet", "survey"), array('class' => 'centerpara')); + echo html_writer::tag('p', get_string("nobodyyet", "survey"), array('class' => 'centerpara')); } break; - default: + default: throw new moodle_exception('cannotviewreport'); - } - echo $OUTPUT->footer(); - +} +echo $OUTPUT->footer();
'.fullname($a).''.s($a->answer1).'' . fullname($a) . '' . s($a->answer1) . '