From 4832a0b3dd91babe2d8d7392242102eac8c79501 Mon Sep 17 00:00:00 2001
From: Marina Glancy
Date: Wed, 24 Feb 2016 15:04:12 +0800
Subject: [PATCH] MDL-53227 mod_feedback: merge files complete_guest.php and
complete.php
Simplify access check, add behat tests
---
mod/feedback/analysis.php | 39 +-
mod/feedback/complete.php | 117 ++---
mod/feedback/complete_guest.php | 506 +--------------------
mod/feedback/lib.php | 26 ++
mod/feedback/print.php | 28 +-
mod/feedback/show_entries.php | 2 +-
mod/feedback/tests/behat/anonymous.feature | 245 ++++++++++
mod/feedback/view.php | 34 +-
8 files changed, 342 insertions(+), 655 deletions(-)
create mode 100644 mod/feedback/tests/behat/anonymous.feature
diff --git a/mod/feedback/analysis.php b/mod/feedback/analysis.php
index 6fa61e59342..928ad4362ad 100644
--- a/mod/feedback/analysis.php
+++ b/mod/feedback/analysis.php
@@ -27,48 +27,19 @@ require_once("lib.php");
$current_tab = 'analysis';
-$id = required_param('id', PARAM_INT); //the POST dominated the GET
-$courseid = optional_param('courseid', false, PARAM_INT);
+$id = required_param('id', PARAM_INT); // Course module id.
$url = new moodle_url('/mod/feedback/analysis.php', array('id'=>$id));
-if ($courseid !== false) {
- $url->param('courseid', $courseid);
-}
$PAGE->set_url($url);
-if (! $cm = get_coursemodule_from_id('feedback', $id)) {
- print_error('invalidcoursemodule');
-}
+list($course, $cm) = get_course_and_cm_from_cmid($id, 'feedback');
+require_course_login($course, true, $cm);
-if (! $course = $DB->get_record("course", array("id"=>$cm->course))) {
- print_error('coursemisconf');
-}
-
-if (! $feedback = $DB->get_record("feedback", array("id"=>$cm->instance))) {
- print_error('invalidcoursemodule');
-}
+$feedback = $PAGE->activityrecord;
$context = context_module::instance($cm->id);
-if ($course->id == SITEID) {
- require_login($course, true);
-} else {
- require_login($course, true, $cm);
-}
-
-//check whether the given courseid exists
-if ($courseid AND $courseid != SITEID) {
- if ($course2 = $DB->get_record('course', array('id'=>$courseid))) {
- require_course_login($course2); //this overwrites the object $course :-(
- $course = $DB->get_record("course", array("id"=>$cm->course)); // the workaround
- } else {
- print_error('invalidcourseid');
- }
-}
-
-if ( !( ((intval($feedback->publish_stats) == 1) AND
- has_capability('mod/feedback:viewanalysepage', $context)) OR
- has_capability('mod/feedback:viewreports', $context))) {
+if (!feedback_can_view_analysis($feedback, $context)) {
print_error('error');
}
diff --git a/mod/feedback/complete.php b/mod/feedback/complete.php
index 07319070527..c9f6825e93a 100644
--- a/mod/feedback/complete.php
+++ b/mod/feedback/complete.php
@@ -75,17 +75,8 @@ if ($gopage < 0 AND !$savevalues) {
$gonextpage = $gopreviouspage = false;
}
-if (! $cm = get_coursemodule_from_id('feedback', $id)) {
- print_error('invalidcoursemodule');
-}
-
-if (! $course = $DB->get_record("course", array("id"=>$cm->course))) {
- print_error('coursemisconf');
-}
-
-if (! $feedback = $DB->get_record("feedback", array("id"=>$cm->instance))) {
- print_error('invalidcoursemodule');
-}
+list($course, $cm) = get_course_and_cm_from_cmid($id, 'feedback');
+$feedback = $DB->get_record("feedback", array("id" => $cm->instance), '*', MUST_EXIST);
$context = context_module::instance($cm->id);
@@ -95,6 +86,14 @@ if (has_capability('mod/feedback:complete', $context)) {
$feedback_complete_cap = true;
}
+if (!empty($CFG->feedback_allowfullanonymous)
+ AND $course->id == SITEID
+ AND $feedback->anonymous == FEEDBACK_ANONYMOUS_YES
+ AND (!isloggedin() OR isguestuser())) {
+ // Guests are allowed to complete fully anonymous feedback without having 'mod/feedback:complete' capability.
+ $feedback_complete_cap = true;
+}
+
//check whether the feedback is located and! started from the mainsite
if ($course->id == SITEID AND !$courseid) {
$courseid = SITEID;
@@ -110,19 +109,8 @@ if ($course->id == SITEID AND !has_capability('mod/feedback:edititems', $context
}
}
-if ($feedback->anonymous != FEEDBACK_ANONYMOUS_YES) {
- if ($course->id == SITEID) {
- require_login($course, true);
- } else {
- require_login($course, true, $cm);
- }
-} else {
- if ($course->id == SITEID) {
- require_course_login($course, true);
- } else {
- require_course_login($course, true, $cm);
- }
-}
+require_course_login($course, true, $cm);
+$PAGE->set_activity_record($feedback);
//check whether the given courseid exists
if ($courseid AND $courseid != SITEID) {
@@ -140,7 +128,9 @@ if (!$feedback_complete_cap) {
// Mark activity viewed for completion-tracking
$completion = new completion_info($course);
-$completion->set_module_viewed($cm);
+if (isloggedin() && !isguestuser()) {
+ $completion->set_module_viewed($cm);
+}
/// Print the page header
$strfeedbacks = get_string("modulenameplural", "feedback");
@@ -158,22 +148,6 @@ $PAGE->set_heading($course->fullname);
$PAGE->set_title($feedback->name);
echo $OUTPUT->header();
-//ishidden check.
-//feedback in courses
-if ((empty($cm->visible) AND
- !has_capability('moodle/course:viewhiddenactivities', $context)) AND
- $course->id != SITEID) {
- notice(get_string("activityiscurrentlyhidden"));
-}
-
-//ishidden check.
-//feedback on mainsite
-if ((empty($cm->visible) AND
- !has_capability('moodle/course:viewhiddenactivities', $context)) AND
- $courseid == SITEID) {
- notice(get_string("activityiscurrentlyhidden"));
-}
-
//check, if the feedback is open (timeopen, timeclose)
$checktime = time();
$feedback_is_closed = ($feedback->timeopen > $checktime) ||
@@ -207,7 +181,12 @@ if ($feedback_can_submit) {
// Check if all required items have a value.
if (feedback_check_values($startitempos, $lastitempos)) {
$userid = $USER->id; //arb
- if ($completedid = feedback_save_values($USER->id, true)) {
+ if (isloggedin() && !isguestuser()) {
+ $completedid = feedback_save_values($USER->id, true);
+ } else {
+ $completedid = feedback_save_guest_values(sesskey());
+ }
+ if ($completedid) {
if (!$gonextpage AND !$gopreviouspage) {
$preservevalues = false;// It can be stored.
}
@@ -260,17 +239,19 @@ if ($feedback_can_submit) {
} else {
feedback_send_email_anonym($cm, $feedback, $course, $userid);
}
- //tracking the submit
- $tracking = new stdClass();
- $tracking->userid = $USER->id;
- $tracking->feedback = $feedback->id;
- $tracking->completed = $new_completed_id;
- $DB->insert_record('feedback_tracking', $tracking);
+ if (isloggedin() && !isguestuser()) {
+ // Tracking the submit.
+ $tracking = new stdClass();
+ $tracking->userid = $USER->id;
+ $tracking->feedback = $feedback->id;
+ $tracking->completed = $new_completed_id;
+ $DB->insert_record('feedback_tracking', $tracking);
+ }
unset($SESSION->feedback->is_started);
// Update completion state
$completion = new completion_info($course);
- if ($completion->is_enabled($cm) && $feedback->completionsubmit) {
+ if (isloggedin() && !isguestuser() && $completion->is_enabled($cm) && $feedback->completionsubmit) {
$completion->update_state($cm, COMPLETION_COMPLETE);
}
@@ -326,8 +307,10 @@ if ($feedback_can_submit) {
$feedbackcompletedtmp = feedback_set_tmp_values($feedbackcompleted);
}
}
- } else {
+ } else if (isloggedin() && !isguestuser()) {
$feedbackcompletedtmp = feedback_get_current_completed($feedback->id, true, $courseid);
+ } else {
+ $feedbackcompletedtmp = feedback_get_current_completed($feedback->id, true, $courseid, sesskey());
}
/// Print the main part of the page
@@ -340,19 +323,6 @@ if ($feedback_can_submit) {
}
echo $OUTPUT->heading(format_string($feedback->name));
- if ( (intval($feedback->publish_stats) == 1) AND
- ( has_capability('mod/feedback:viewanalysepage', $context)) AND
- !( has_capability('mod/feedback:viewreports', $context)) ) {
-
- $params = array('userid' => $USER->id, 'feedback' => $feedback->id);
- if ($multiple_count = $DB->count_records('feedback_tracking', $params)) {
- echo $OUTPUT->box_start('mdl-align');
- echo '';
- echo get_string('completed_feedbacks', 'feedback').'';
- echo $OUTPUT->box_end();
- }
- }
-
if (isset($savereturn) && $savereturn == 'saved') {
if ($feedback->page_after_submit) {
@@ -376,11 +346,11 @@ if ($feedback_can_submit) {
echo get_string('entries_saved', 'feedback');
echo '';
echo '
';
- if ( intval($feedback->publish_stats) == 1) {
- echo '';
- echo get_string('completed_feedbacks', 'feedback').'';
- echo '
';
- }
+ }
+ if (feedback_can_view_analysis($feedback, $context, $courseid)) {
+ echo '';
+ echo get_string('completed_feedbacks', 'feedback').'';
+ echo '
';
}
if ($feedback->site_after_submit) {
@@ -419,23 +389,24 @@ if ($feedback_can_submit) {
echo $OUTPUT->box_start('feedback_form');
echo '';
- echo $OUTPUT->box_end();
-
- echo $OUTPUT->box_start('feedback_complete_cancel');
- if ($courseid) {
- $action = 'action="'.$CFG->wwwroot.'/course/view.php?id='.$courseid.'"';
- } else {
- if ($course->id == SITEID) {
- $action = 'action="'.$CFG->wwwroot.'"';
- } else {
- $action = 'action="'.$CFG->wwwroot.'/course/view.php?id='.$course->id.'"';
- }
- }
- echo '';
- echo $OUTPUT->box_end();
- $SESSION->feedback->is_started = true;
- }
- }
-} else {
- echo $OUTPUT->box_start('generalbox boxaligncenter');
- echo $OUTPUT->notification(get_string('this_feedback_is_already_submitted', 'feedback'));
- echo $OUTPUT->continue_button($CFG->wwwroot.'/course/view.php?id='.$course->id);
- echo $OUTPUT->box_end();
-}
-/// Finish the page
-///////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////
-
-echo $OUTPUT->footer();
-
+redirect($url);
diff --git a/mod/feedback/lib.php b/mod/feedback/lib.php
index ea98a20df7e..ce3006052b9 100644
--- a/mod/feedback/lib.php
+++ b/mod/feedback/lib.php
@@ -3214,3 +3214,29 @@ function feedback_ajax_saveitemorder($itemlist, $feedback) {
}
return $result;
}
+
+/**
+ * Checks if current user is able to view feedback on this course.
+ *
+ * @param stdClass $feedback
+ * @param context_module $context
+ * @param int $courseid
+ * @return bool
+ */
+function feedback_can_view_analysis($feedback, $context, $courseid = false) {
+ if (has_capability('mod/feedback:viewreports', $context)) {
+ return true;
+ }
+
+ if (intval($feedback->publish_stats) != 1 ||
+ !has_capability('mod/feedback:viewanalysepage', $context)) {
+ return false;
+ }
+
+ if (!isloggedin() || isguestuser()) {
+ // There is no tracking for the guests, assume that they can view analysis if condition above is satisfied.
+ return $feedback->course == SITEID;
+ }
+
+ return feedback_is_already_submitted($feedback->id, $courseid);
+}
diff --git a/mod/feedback/print.php b/mod/feedback/print.php
index d5dfd817913..9a79dcfb3e7 100644
--- a/mod/feedback/print.php
+++ b/mod/feedback/print.php
@@ -26,26 +26,15 @@ require_once("../../config.php");
require_once("lib.php");
$id = required_param('id', PARAM_INT);
+$courseid = optional_param('courseid', false, PARAM_INT); // Course where this feedback is mapped to - used for return link.
$PAGE->set_url('/mod/feedback/print.php', array('id'=>$id));
-if (! $cm = get_coursemodule_from_id('feedback', $id)) {
- print_error('invalidcoursemodule');
-}
+list($course, $cm) = get_course_and_cm_from_cmid($id, 'feedback');
+require_course_login($course, true, $cm);
-if (! $course = $DB->get_record("course", array("id"=>$cm->course))) {
- print_error('coursemisconf');
-}
+$feedback = $PAGE->activityrecord;
-if (! $feedback = $DB->get_record("feedback", array("id"=>$cm->instance))) {
- print_error('invalidcoursemodule');
-}
-
-$context = context_module::instance($cm->id);
-
-require_login($course, true, $cm);
-
-require_capability('mod/feedback:view', $context);
$PAGE->set_pagelayout('embedded');
/// Print the page header
@@ -66,9 +55,14 @@ echo $OUTPUT->header();
///////////////////////////////////////////////////////////////////////////
echo $OUTPUT->heading(format_text($feedback->name));
+$continueurl = new moodle_url('/mod/feedback/view.php', array('id' => $id));
+if ($courseid) {
+ $continueurl->param('courseid', $courseid);
+}
+
$feedbackitems = $DB->get_records('feedback_item', array('feedback'=>$feedback->id), 'position');
echo $OUTPUT->box_start('generalbox boxaligncenter boxwidthwide');
-echo $OUTPUT->continue_button('view.php?id='.$id);
+echo $OUTPUT->continue_button($continueurl);
if (is_array($feedbackitems)) {
$itemnr = 0;
$align = right_to_left() ? 'right' : 'left';
@@ -111,7 +105,7 @@ if (is_array($feedbackitems)) {
echo $OUTPUT->box(get_string('no_items_available_yet', 'feedback'),
'generalbox boxaligncenter boxwidthwide');
}
-echo $OUTPUT->continue_button('view.php?id='.$id);
+echo $OUTPUT->continue_button($continueurl);
echo $OUTPUT->box_end();
/// Finish the page
///////////////////////////////////////////////////////////////////////////
diff --git a/mod/feedback/show_entries.php b/mod/feedback/show_entries.php
index c31bddf7b31..ee1a6b69664 100644
--- a/mod/feedback/show_entries.php
+++ b/mod/feedback/show_entries.php
@@ -277,7 +277,7 @@ if ($do_show == 'showentries') {
$feedback_completeds_count = $DB->count_records('feedback_completed', $params);
print_string('anonymous_entries', 'feedback');
- echo ' ('.$feedback_completeds_count.')';
+ echo ' ('.$feedback_completeds_count.')';
?>
diff --git a/mod/feedback/tests/behat/anonymous.feature b/mod/feedback/tests/behat/anonymous.feature
new file mode 100644
index 00000000000..2fcbcb1f169
--- /dev/null
+++ b/mod/feedback/tests/behat/anonymous.feature
@@ -0,0 +1,245 @@
+@mod @mod_feedback
+Feature: Anonymous feedback
+ In order to collect feedbacks
+ As an admin
+ I need to be able to allow anonymous feedbacks
+
+ Background:
+ Given the following "users" exist:
+ | username | firstname | lastname |
+ | user1 | Username | 1 |
+ | user2 | Username | 2 |
+ | teacher | Teacher | 3 |
+ | manager | Manager | 4 |
+ And the following "courses" exist:
+ | fullname | shortname |
+ | Course 1 | C1 |
+ And the following "course enrolments" exist:
+ | user | course | role |
+ | user1 | C1 | student |
+ | user2 | C1 | student |
+ | teacher | C1 | editingteacher |
+ And the following "system role assigns" exist:
+ | user | course | role |
+ | manager | Acceptance test site | manager |
+ And I log in as "admin"
+ And I navigate to "Manage activities" node in "Site administration > Plugins > Activity modules"
+ And I click on "Show" "link" in the "Feedback" "table_row"
+ And I log out
+ And the following "activities" exist:
+ | activity | name | course | idnumber | anonymous | publish_stats |
+ | feedback | Site feedback | Acceptance test site | feedback0 | 1 | 1 |
+ | feedback | Course feedback | C1 | feedback1 | 1 | 1 |
+ When I log in as "manager"
+ And I am on site homepage
+ And I follow "Site feedback"
+ And I follow "Edit questions"
+ And I add a "Multiple choice" question to the feedback with:
+ | Question | Do you like our site? |
+ | Label | multichoice2 |
+ | Multiple choice type | Multiple choice - single answer |
+ | Hide the "Not selected" option | Yes |
+ | Multiple choice values | Yes\nNo\nI don't know |
+ And I log out
+
+ Scenario: Guests can see anonymous feedback on front page but can not complete
+ When I follow "Site feedback"
+ Then I should not see "Answer the questions..."
+ And I follow "Preview"
+ And I should see "Do you like our site?"
+ And I press "Continue"
+
+ Scenario: Complete anonymous feedback on the front page as an authenticated user
+ And I log in as "admin"
+ And I set the following system permissions of "Authenticated user" role:
+ | capability | permission |
+ | mod/feedback:view | Allow |
+ | mod/feedback:complete | Allow |
+ And I log out
+ And I log in as "user1"
+ And I am on site homepage
+ When I follow "Site feedback"
+ And I follow "Preview"
+ And I should see "Do you like our site?"
+ And I press "Continue"
+ And I follow "Answer the questions..."
+ And I should see "Do you like our site?"
+ And I set the following fields to these values:
+ | Yes | 1 |
+ And I press "Submit your answers"
+ And I should not see "Submitted answers"
+ And I press "Continue"
+
+ Scenario: Complete anonymous feedback and view analysis on the front page as an authenticated user
+ And I log in as "admin"
+ And I set the following system permissions of "Authenticated user on frontpage" role:
+ | capability | permission |
+ | mod/feedback:view | Allow |
+ | mod/feedback:complete | Allow |
+ | mod/feedback:viewanalysepage | Allow |
+ And I log out
+ And I log in as "user1"
+ And I am on site homepage
+ When I follow "Site feedback"
+ And I follow "Preview"
+ And I should see "Do you like our site?"
+ And I press "Continue"
+ And I follow "Answer the questions..."
+ And I should see "Do you like our site?"
+ And I set the following fields to these values:
+ | Yes | 1 |
+ And I press "Submit your answers"
+ And I log out
+ And I log in as "user2"
+ And I am on site homepage
+ When I follow "Site feedback"
+ And I follow "Preview"
+ And I should see "Do you like our site?"
+ And I press "Continue"
+ And I follow "Answer the questions..."
+ And I set the following fields to these values:
+ | No | 1 |
+ And I press "Submit your answers"
+ And I follow "Submitted answers"
+ And I should see "Submitted answers: 2"
+ And I should see "Questions: 1"
+ # And I should not see "multichoice2" # TODO MDL-29303 do not show labels to users who can not edit feedback
+ And I should see "Do you like our site?"
+ And I should see "1 (50.00 %)" in the "Yes:" "table_row"
+ And I should see "1 (50.00 %)" in the "No:" "table_row"
+ And I log out
+ And I log in as "manager"
+ And I am on site homepage
+ And I follow "Site feedback"
+ And I follow "Show responses"
+ And I should not see "Username"
+ And I should see "Anonymous entries (2)"
+ And I press "Show responses"
+ And I should not see "Username"
+ And I click on "Show response" "link" in the "Response number: 1" "table_row"
+ And I should not see "Username"
+ And I should see "Response number: 1 (Anonymous)"
+ And I log out
+
+ Scenario: Complete fully anonymous feedback on the front page as a guest
+ And I log in as "admin"
+ And I set the following administration settings values:
+ | feedback_allowfullanonymous | 1 |
+ And I log out
+ When I follow "Site feedback"
+ And I follow "Preview"
+ And I should see "Do you like our site?"
+ And I press "Continue"
+ And I follow "Answer the questions..."
+ And I should see "Do you like our site?"
+ And I set the following fields to these values:
+ | Yes | 1 |
+ And I press "Submit your answers"
+ And I should not see "Submitted answers"
+ And I press "Continue"
+
+ Scenario: Complete fully anonymous feedback and view analyze on the front page as a guest
+ And I log in as "admin"
+ And I set the following administration settings values:
+ | feedback_allowfullanonymous | 1 |
+ And I set the following system permissions of "Guest" role:
+ | capability | permission |
+ | mod/feedback:viewanalysepage | Allow |
+ And I log out
+ When I follow "Site feedback"
+ And I follow "Preview"
+ And I should see "Do you like our site?"
+ And I press "Continue"
+ And I follow "Answer the questions..."
+ And I should see "Do you like our site?"
+ And I set the following fields to these values:
+ | Yes | 1 |
+ And I press "Submit your answers"
+ And I press "Continue"
+ # Starting new feedback
+ When I follow "Site feedback"
+ And I follow "Preview"
+ And I should see "Do you like our site?"
+ And I press "Continue"
+ And I follow "Answer the questions..."
+ And I should see "Do you like our site?"
+ And I set the following fields to these values:
+ | No | 1 |
+ And I press "Submit your answers"
+ And I follow "Submitted answers"
+ And I should see "Submitted answers: 2"
+ And I should see "Questions: 1"
+ # And I should not see "multichoice2" # TODO MDL-29303
+ And I should see "Do you like our site?"
+ And I should see "1 (50.00 %)" in the "Yes:" "table_row"
+ And I should see "1 (50.00 %)" in the "No:" "table_row"
+ And I log in as "manager"
+ And I am on site homepage
+ And I follow "Site feedback"
+ And I follow "Show responses"
+ And I should see "Anonymous entries (2)"
+ And I press "Show responses"
+ And I click on "Show response" "link" in the "Response number: 1" "table_row"
+ And I should see "Response number: 1 (Anonymous)"
+ And I log out
+
+ Scenario: Anonymous feedback in a course
+ # Teacher can not
+ When I log in as "teacher"
+ And I follow "Course 1"
+ And I follow "Course feedback"
+ And I follow "Edit questions"
+ And I add a "Multiple choice" question to the feedback with:
+ | Question | Do you like this course? |
+ | Label | multichoice1 |
+ | Multiple choice type | Multiple choice - single answer |
+ | Hide the "Not selected" option | Yes |
+ | Multiple choice values | Yes\nNo\nI don't know |
+ And I log out
+ And I log in as "user1"
+ And I follow "Course 1"
+ And I follow "Course feedback"
+ And I follow "Preview"
+ Then I should see "Do you like this course?"
+ And I press "Continue"
+ And I follow "Answer the questions..."
+ And I should see "Do you like this course?"
+ And I set the following fields to these values:
+ | Yes | 1 |
+ And I press "Submit your answers"
+ And I log out
+ And I log in as "user2"
+ And I follow "Course 1"
+ And I follow "Course feedback"
+ And I follow "Preview"
+ And I should see "Do you like this course?"
+ And I press "Continue"
+ And I follow "Answer the questions..."
+ And I should see "Do you like this course?"
+ And I set the following fields to these values:
+ | No | 1 |
+ And I press "Submit your answers"
+ And I follow "Submitted answers"
+ And I should see "Submitted answers: 2"
+ And I should see "Questions: 1"
+ # And I should not see "multichoice2" # TODO MDL-29303
+ And I should see "Do you like this course?"
+ And I should see "1 (50.00 %)" in the "Yes:" "table_row"
+ And I should see "1 (50.00 %)" in the "No:" "table_row"
+ And I log out
+ And I log in as "teacher"
+ And I follow "Course 1"
+ And I follow "Course feedback"
+ And I follow "Preview"
+ And I should see "Do you like this course?"
+ And I press "Continue"
+ And I should not see "Answer the questions..."
+ And I follow "Show responses"
+ And I should not see "Username"
+ And I should see "Anonymous entries (2)"
+ And I press "Show responses"
+ And I should not see "Username"
+ And I click on "Show response" "link" in the "Response number: 1" "table_row"
+ And I should not see "Username"
+ And I should see "Response number: 1 (Anonymous)"
+ And I log out
\ No newline at end of file
diff --git a/mod/feedback/view.php b/mod/feedback/view.php
index 52a5df7a270..0819c750fd3 100644
--- a/mod/feedback/view.php
+++ b/mod/feedback/view.php
@@ -62,19 +62,7 @@ if ($course->id == SITEID AND !$courseid) {
$courseid = SITEID;
}
-if ($feedback->anonymous != FEEDBACK_ANONYMOUS_YES) {
- if ($course->id == SITEID) {
- require_login($course, true);
- } else {
- require_login($course, true, $cm);
- }
-} else {
- if ($course->id == SITEID) {
- require_course_login($course, true);
- } else {
- require_course_login($course, true, $cm);
- }
-}
+require_course_login($course, true, $cm);
if ($course->id == SITEID) {
$PAGE->set_context($context);
@@ -131,19 +119,6 @@ $strfeedbacks = get_string("modulenameplural", "feedback");
$strfeedback = get_string("modulename", "feedback");
echo $OUTPUT->header();
-//ishidden check.
-//feedback in courses
-$cap_viewhiddenactivities = has_capability('moodle/course:viewhiddenactivities', $context);
-if ((empty($cm->visible) and !$cap_viewhiddenactivities) AND $course->id != SITEID) {
- notice(get_string("activityiscurrentlyhidden"));
-}
-
-//ishidden check.
-//feedback on mainsite
-if ((empty($cm->visible) and !$cap_viewhiddenactivities) AND $courseid == SITEID) {
- notice(get_string("activityiscurrentlyhidden"));
-}
-
/// Print the main part of the page
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////
@@ -151,6 +126,9 @@ if ((empty($cm->visible) and !$cap_viewhiddenactivities) AND $courseid == SITEID
$previewimg = $OUTPUT->pix_icon('t/preview', get_string('preview'));
$previewlnk = new moodle_url('/mod/feedback/print.php', array('id' => $id));
+if ($courseid) {
+ $previewlnk->param('courseid', $courseid);
+}
$preview = html_writer::link($previewlnk, $previewimg);
echo $OUTPUT->heading(format_string($feedback->name) . $preview);
@@ -296,14 +274,12 @@ if ($feedback_complete_cap) {
if ($feedback_can_submit) {
//if the user is not known so we cannot save the values temporarly
if (!isloggedin() or isguestuser()) {
- $completefile = 'complete_guest.php';
$guestid = sesskey();
} else {
- $completefile = 'complete.php';
$guestid = false;
}
$url_params = array('id'=>$id, 'courseid'=>$courseid, 'gopage'=>0);
- $completeurl = new moodle_url('/mod/feedback/'.$completefile, $url_params);
+ $completeurl = new moodle_url('/mod/feedback/complete.php', $url_params);
$feedbackcompletedtmp = feedback_get_current_completed($feedback->id, true, $courseid, $guestid);
if ($feedbackcompletedtmp) {
|