Merge branch 'wip-mdl-41266' of https://github.com/rajeshtaneja/moodle
authorDamyon Wiese <damyon@moodle.com>
Tue, 4 Mar 2014 08:59:10 +0000 (16:59 +0800)
committerDamyon Wiese <damyon@moodle.com>
Tue, 4 Mar 2014 08:59:10 +0000 (16:59 +0800)
course/tests/courselib_test.php
lib/classes/event/course_module_created.php
lib/classes/event/course_module_updated.php
mod/assign/externallib.php
mod/quiz/mod_form.php
mod/quiz/override_form.php

index f2f1a69..18e7dea 100644 (file)
@@ -1569,9 +1569,14 @@ class core_course_courselib_testcase extends advanced_testcase {
         $this->assertSame($course->idnumber, $eventdata['other']['idnumber']);
         $this->assertSame($course->fullname, $eventdata['other']['fullname']);
         $this->assertSame($course->shortname, $eventdata['other']['shortname']);
-        // The legacy data also passed the context in the course object.
-        $course->context = $coursecontext;
-        $this->assertEventLegacyData($course, $event);
+
+        // The legacy data also passed the context in the course object and substitutes timemodified with the current date.
+        $expectedlegacy = clone($course);
+        $expectedlegacy->context = $coursecontext;
+        $expectedlegacy->timemodified = $event->timecreated;
+        $this->assertEventLegacyData($expectedlegacy, $event);
+
+        // Validate legacy log data.
         $expectedlog = array(SITEID, 'course', 'delete', 'view.php?id=' . $course->id, $course->fullname . '(ID ' . $course->id . ')');
         $this->assertEventLegacyLogData($expectedlog, $event);
         $this->assertEventContextNotUsed($event);
@@ -1945,7 +1950,7 @@ class core_course_courselib_testcase extends advanced_testcase {
         $this->assertEquals($cm->id, $event->objectid);
         $this->assertEquals($USER->id, $event->userid);
         $this->assertEquals('course_modules', $event->objecttable);
-        $url = new moodle_url('/mod/assign/view.php', array('id' => $mod->id));
+        $url = new moodle_url('/mod/assign/view.php', array('id' => $cm->id));
         $this->assertEquals($url, $event->get_url());
 
         // Test legacy data.
@@ -1958,7 +1963,7 @@ class core_course_courselib_testcase extends advanced_testcase {
         $eventdata->userid     = $USER->id;
         $this->assertEventLegacyData($eventdata, $event);
 
-        $arr = array($cm->course, "course", "add mod", "../mod/assign/view.php?id=$mod->id", "assign $cm->instance");
+        $arr = array($cm->course, "course", "add mod", "../mod/assign/view.php?id=$cm->id", "assign $cm->instance");
         $this->assertEventLegacyLogData($arr, $event);
         $this->assertEventContextNotUsed($event);
 
@@ -2051,7 +2056,7 @@ class core_course_courselib_testcase extends advanced_testcase {
         $this->assertEquals($cm->id, $event->objectid);
         $this->assertEquals($USER->id, $event->userid);
         $this->assertEquals('course_modules', $event->objecttable);
-        $url = new moodle_url('/mod/forum/view.php', array('id' => $mod->id));
+        $url = new moodle_url('/mod/forum/view.php', array('id' => $cm->id));
         $this->assertEquals($url, $event->get_url());
 
         // Test legacy data.
@@ -2064,7 +2069,7 @@ class core_course_courselib_testcase extends advanced_testcase {
         $eventdata->userid     = $USER->id;
         $this->assertEventLegacyData($eventdata, $event);
 
-        $arr = array($cm->course, "course", "update mod", "../mod/forum/view.php?id=$mod->id", "forum $cm->instance");
+        $arr = array($cm->course, "course", "update mod", "../mod/forum/view.php?id=$cm->id", "forum $cm->instance");
         $this->assertEventLegacyLogData($arr, $event);
         $this->assertEventContextNotUsed($event);
     }
index bc4d75f..e4b7b3d 100644 (file)
@@ -77,7 +77,7 @@ class course_module_created extends base {
      * @return \moodle_url
      */
     public function get_url() {
-        return new \moodle_url('/mod/' . $this->other['modulename'] . '/view.php', array('id' => $this->other['instanceid']));
+        return new \moodle_url('/mod/' . $this->other['modulename'] . '/view.php', array('id' => $this->objectid));
     }
 
     /**
@@ -111,7 +111,7 @@ class course_module_created extends base {
      */
     protected function get_legacy_logdata() {
         return array ($this->courseid, "course", "add mod", "../mod/" . $this->other['modulename'] . "/view.php?id=" .
-                $this->other['instanceid'], $this->other['modulename'] . " " . $this->other['instanceid']);
+                $this->objectid, $this->other['modulename'] . " " . $this->other['instanceid']);
     }
 
     /**
index 9c4e1cf..9ac5594 100644 (file)
@@ -77,7 +77,7 @@ class course_module_updated extends base {
      * @return \moodle_url
      */
     public function get_url() {
-        return new \moodle_url('/mod/' . $this->other['modulename'] . '/view.php', array('id' => $this->other['instanceid']));
+        return new \moodle_url('/mod/' . $this->other['modulename'] . '/view.php', array('id' => $this->objectid));
     }
 
     /**
@@ -111,7 +111,7 @@ class course_module_updated extends base {
      */
     protected function get_legacy_logdata() {
         return array ($this->courseid, "course", "update mod", "../mod/" . $this->other['modulename'] . "/view.php?id=" .
-                $this->other['instanceid'], $this->other['modulename'] . " " . $this->other['instanceid']);
+                $this->objectid, $this->other['modulename'] . " " . $this->other['instanceid']);
     }
 
     /**
index 2330f90..da57052 100644 (file)
@@ -1229,16 +1229,17 @@ class mod_assign_external extends external_api {
                         array('assignmentid' => $assignmentid,
                               'userids' => $userids));
 
-        $cm = get_coursemodule_from_instance('assign', $assignmentid, 0, false, MUST_EXIST);
+        $cm = get_coursemodule_from_instance('assign', $params['assignmentid'], 0, false, MUST_EXIST);
         $context = context_module::instance($cm->id);
+        self::validate_context($context);
 
         $assignment = new assign($context, $cm, null);
 
         $warnings = array();
-        foreach ($userids as $userid) {
+        foreach ($params['userids'] as $userid) {
             if (!$assignment->lock_submission($userid)) {
-                $detail = 'User id: ' . $userid . ', Assignment id: ' . $assignmentid;
-                $warnings[] = self::generate_warning($assignmentid,
+                $detail = 'User id: ' . $userid . ', Assignment id: ' . $params['assignmentid'];
+                $warnings[] = self::generate_warning($params['assignmentid'],
                                                      'couldnotlock',
                                                      $detail);
             }
@@ -1292,16 +1293,17 @@ class mod_assign_external extends external_api {
                         array('assignmentid' => $assignmentid,
                               'userids' => $userids));
 
-        $cm = get_coursemodule_from_instance('assign', $assignmentid, 0, false, MUST_EXIST);
+        $cm = get_coursemodule_from_instance('assign', $params['assignmentid'], 0, false, MUST_EXIST);
         $context = context_module::instance($cm->id);
+        self::validate_context($context);
 
         $assignment = new assign($context, $cm, null);
 
         $warnings = array();
-        foreach ($userids as $userid) {
+        foreach ($params['userids'] as $userid) {
             if (!$assignment->revert_to_draft($userid)) {
-                $detail = 'User id: ' . $userid . ', Assignment id: ' . $assignmentid;
-                $warnings[] = self::generate_warning($assignmentid,
+                $detail = 'User id: ' . $userid . ', Assignment id: ' . $params['assignmentid'];
+                $warnings[] = self::generate_warning($params['assignmentid'],
                                                      'couldnotrevert',
                                                      $detail);
             }
@@ -1355,16 +1357,17 @@ class mod_assign_external extends external_api {
                         array('assignmentid' => $assignmentid,
                               'userids' => $userids));
 
-        $cm = get_coursemodule_from_instance('assign', $assignmentid, 0, false, MUST_EXIST);
+        $cm = get_coursemodule_from_instance('assign', $params['assignmentid'], 0, false, MUST_EXIST);
         $context = context_module::instance($cm->id);
+        self::validate_context($context);
 
         $assignment = new assign($context, $cm, null);
 
         $warnings = array();
-        foreach ($userids as $userid) {
+        foreach ($params['userids'] as $userid) {
             if (!$assignment->unlock_submission($userid)) {
-                $detail = 'User id: ' . $userid . ', Assignment id: ' . $assignmentid;
-                $warnings[] = self::generate_warning($assignmentid,
+                $detail = 'User id: ' . $userid . ', Assignment id: ' . $params['assignmentid'];
+                $warnings[] = self::generate_warning($params['assignmentid'],
                                                      'couldnotunlock',
                                                      $detail);
             }
@@ -1414,19 +1417,20 @@ class mod_assign_external extends external_api {
                                             array('assignmentid' => $assignmentid,
                                                   'acceptsubmissionstatement' => $acceptsubmissionstatement));
 
-        $cm = get_coursemodule_from_instance('assign', $assignmentid, 0, false, MUST_EXIST);
+        $cm = get_coursemodule_from_instance('assign', $params['assignmentid'], 0, false, MUST_EXIST);
         $context = context_module::instance($cm->id);
+        self::validate_context($context);
 
         $assignment = new assign($context, $cm, null);
 
         $warnings = array();
         $data = new stdClass();
-        $data->submissionstatement = $acceptsubmissionstatement;
+        $data->submissionstatement = $params['acceptsubmissionstatement'];
         $notices = array();
 
         if (!$assignment->submit_for_grading($data, $notices)) {
-            $detail = 'User id: ' . $USER->id . ', Assignment id: ' . $assignmentid . ' Notices:' . implode(', ', $notices);
-            $warnings[] = self::generate_warning($assignmentid,
+            $detail = 'User id: ' . $USER->id . ', Assignment id: ' . $params['assignmentid'] . ' Notices:' . implode(', ', $notices);
+            $warnings[] = self::generate_warning($params['assignmentid'],
                                                  'couldnotsubmitforgrading',
                                                  $detail);
         }
@@ -1485,26 +1489,27 @@ class mod_assign_external extends external_api {
                               'userids' => $userids,
                               'dates' => $dates));
 
-        if (count($userids) != count($dates)) {
+        if (count($params['userids']) != count($params['dates'])) {
             $detail = 'Length of userids and dates parameters differ.';
-            $warnings[] = self::generate_warning($assignmentid,
+            $warnings[] = self::generate_warning($params['assignmentid'],
                                                  'invalidparameters',
                                                  $detail);
 
             return $warnings;
         }
 
-        $cm = get_coursemodule_from_instance('assign', $assignmentid, 0, false, MUST_EXIST);
+        $cm = get_coursemodule_from_instance('assign', $params['assignmentid'], 0, false, MUST_EXIST);
         $context = context_module::instance($cm->id);
+        self::validate_context($context);
 
         $assignment = new assign($context, $cm, null);
 
         $warnings = array();
-        foreach ($userids as $idx => $userid) {
-            $duedate = $dates[$idx];
+        foreach ($params['userids'] as $idx => $userid) {
+            $duedate = $params['dates'][$idx];
             if (!$assignment->save_user_extension($userid, $duedate)) {
-                $detail = 'User id: ' . $userid . ', Assignment id: ' . $assignmentid . ', Extension date: ' . $duedate;
-                $warnings[] = self::generate_warning($assignmentid,
+                $detail = 'User id: ' . $userid . ', Assignment id: ' . $params['assignmentid'] . ', Extension date: ' . $duedate;
+                $warnings[] = self::generate_warning($params['assignmentid'],
                                                      'couldnotgrantextensions',
                                                      $detail);
             }
@@ -1552,15 +1557,16 @@ class mod_assign_external extends external_api {
         $params = self::validate_parameters(self::reveal_identities_parameters(),
                                             array('assignmentid' => $assignmentid));
 
-        $cm = get_coursemodule_from_instance('assign', $assignmentid, 0, false, MUST_EXIST);
+        $cm = get_coursemodule_from_instance('assign', $params['assignmentid'], 0, false, MUST_EXIST);
         $context = context_module::instance($cm->id);
+        self::validate_context($context);
 
         $assignment = new assign($context, $cm, null);
 
         $warnings = array();
         if (!$assignment->reveal_identities()) {
-            $detail = 'User id: ' . $USER->id . ', Assignment id: ' . $assignmentid;
-            $warnings[] = self::generate_warning($assignmentid,
+            $detail = 'User id: ' . $USER->id . ', Assignment id: ' . $params['assignmentid'];
+            $warnings[] = self::generate_warning($params['assignmentid'],
                                                  'couldnotrevealidentities',
                                                  $detail);
         }
@@ -1624,20 +1630,21 @@ class mod_assign_external extends external_api {
                                             array('assignmentid' => $assignmentid,
                                                   'plugindata' => $plugindata));
 
-        $cm = get_coursemodule_from_instance('assign', $assignmentid, 0, false, MUST_EXIST);
+        $cm = get_coursemodule_from_instance('assign', $params['assignmentid'], 0, false, MUST_EXIST);
         $context = context_module::instance($cm->id);
+        self::validate_context($context);
 
         $assignment = new assign($context, $cm, null);
 
         $notices = array();
 
-        $submissiondata = (object)$plugindata;
+        $submissiondata = (object)$params['plugindata'];
 
         $assignment->save_submission($submissiondata, $notices);
 
         $warnings = array();
         foreach ($notices as $notice) {
-            $warnings[] = self::generate_warning($assignmentid,
+            $warnings[] = self::generate_warning($params['assignmentid'],
                                                  'couldnotsavesubmission',
                                                  $notice);
         }
@@ -1756,6 +1763,7 @@ class mod_assign_external extends external_api {
         $cm = get_coursemodule_from_instance('assign', $params['assignmentid'], 0, false, MUST_EXIST);
         $context = context_module::instance($cm->id);
         self::validate_context($context);
+
         $assignment = new assign($context, $cm, null);
 
         $gradedata = (object)$params['plugindata'];
@@ -1976,6 +1984,7 @@ class mod_assign_external extends external_api {
 
         $cm = get_coursemodule_from_instance('assign', $assignmentid, 0, false, MUST_EXIST);
         $context = context_module::instance($cm->id);
+        self::validate_context($context);
 
         $assignment = new assign($context, $cm, null);
 
index 0b904ae..30eadfb 100644 (file)
@@ -37,6 +37,9 @@ require_once($CFG->dirroot . '/mod/quiz/locallib.php');
  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  */
 class mod_quiz_mod_form extends moodleform_mod {
+    /** @var array options to be used with date_time_selector fields in the quiz. */
+    public static $datefieldoptions = array('optional' => true, 'step' => 1);
+
     protected $_feedbacks;
     protected static $reviewfields = array(); // Initialised in the constructor.
 
@@ -79,11 +82,11 @@ class mod_quiz_mod_form extends moodleform_mod {
 
         // Open and close dates.
         $mform->addElement('date_time_selector', 'timeopen', get_string('quizopen', 'quiz'),
-                array('optional' => true, 'step' => 1));
+                self::$datefieldoptions);
         $mform->addHelpButton('timeopen', 'quizopenclose', 'quiz');
 
         $mform->addElement('date_time_selector', 'timeclose', get_string('quizclose', 'quiz'),
-                array('optional' => true, 'step' => 1));
+                self::$datefieldoptions);
 
         // Time limit.
         $mform->addElement('duration', 'timelimit', get_string('timelimit', 'quiz'),
index ca56cd6..8089449 100644 (file)
@@ -27,6 +27,7 @@
 defined('MOODLE_INTERNAL') || die();
 
 require_once($CFG->libdir . '/formslib.php');
+require_once($CFG->dirroot . '/mod/quiz/mod_form.php');
 
 
 /**
@@ -189,11 +190,11 @@ class quiz_override_form extends moodleform {
 
         // Open and close dates.
         $mform->addElement('date_time_selector', 'timeopen',
-                get_string('quizopen', 'quiz'), array('optional' => true));
+                get_string('quizopen', 'quiz'), mod_quiz_mod_form::$datefieldoptions);
         $mform->setDefault('timeopen', $this->quiz->timeopen);
 
         $mform->addElement('date_time_selector', 'timeclose',
-                get_string('quizclose', 'quiz'), array('optional' => true));
+                get_string('quizclose', 'quiz'), mod_quiz_mod_form::$datefieldoptions);
         $mform->setDefault('timeclose', $this->quiz->timeclose);
 
         // Time limit.