Merge branch 'master_MDL-65116' of https://github.com/yao9394/moodle

This commit is contained in:
Eloy Lafuente (stronk7)
2019-08-28 16:39:49 +02:00
2 changed files with 93 additions and 2 deletions
+24 -2
View File
@@ -5592,7 +5592,7 @@ class assign {
$this->is_any_submission_plugin_enabled(),
$this->count_submissions_with_status($submitted, $activitygroup),
$instance->cutoffdate,
$instance->duedate,
$this->get_duedate($activitygroup),
$this->get_course_module()->id,
$this->count_submissions_need_grading($activitygroup),
$instance->teamsubmission,
@@ -5612,7 +5612,7 @@ class assign {
$this->is_any_submission_plugin_enabled(),
$this->count_submissions_with_status($submitted, $activitygroup),
$instance->cutoffdate,
$instance->duedate,
$this->get_duedate($activitygroup),
$this->get_course_module()->id,
$this->count_submissions_need_grading($activitygroup),
$instance->teamsubmission,
@@ -5627,6 +5627,28 @@ class assign {
return $summary;
}
/**
* Return group override duedate.
*
* @param int $activitygroup Activity active group
* @return int $duedate
*/
private function get_duedate($activitygroup = null) {
global $DB;
if ($activitygroup === null) {
$activitygroup = groups_get_activity_group($this->get_course_module());
}
if ($this->can_view_grades()) {
$params = array('groupid' => $activitygroup, 'assignid' => $this->get_instance()->id);
$groupoverride = $DB->get_record('assign_overrides', $params);
if (!empty($groupoverride->duedate)) {
return $groupoverride->duedate;
}
}
return $this->get_instance()->duedate;
}
/**
* View submissions page (contains details of current submission).
*
+69
View File
@@ -4157,4 +4157,73 @@ Anchor link 2:<a title=\"bananas\" href=\"../logo-240x60.gif\">Link text</a>
],
];
}
/**
* Test showing group override duedate for admin
*/
public function test_view_group_override() {
global $DB, $PAGE;
$this->resetAfterTest();
$course = $this->getDataGenerator()->create_course();
$group1 = $this->getDataGenerator()->create_group(['courseid' => $course->id]);
$group2 = $this->getDataGenerator()->create_group(['courseid' => $course->id]);
$student1 = $this->getDataGenerator()->create_and_enrol($course, 'student');
$teacher = $this->getDataGenerator()->create_and_enrol($course, 'teacher');
groups_add_member($group1, $student1);
groups_add_member($group1, $teacher);
$student2 = $this->getDataGenerator()->create_and_enrol($course, 'student');
groups_add_member($group2, $student2);
$assign = $this->create_instance($course, [
'groupmode' => 1,
'duedate' => 1558999899,
]);
$instance = $assign->get_instance();
// Overrides for two groups.
$overrides = [
(object) [
'assignid' => $instance->id,
'groupid' => $group1->id,
'userid' => null,
'sortorder' => 1,
'duedate' => 1568990258,
],
(object) [
'assignid' => $instance->id,
'groupid' => $group2->id,
'userid' => null,
'sortorder' => 2,
'duedate' => 1559900258,
],
];
foreach ($overrides as &$override) {
$override->id = $DB->insert_record('assign_overrides', $override);
}
$currenturl = new moodle_url('/mod/assign/view.php', array('id' => $assign->get_course_module()->id));
$PAGE->set_url($currenturl);
$output1 = '';
// Other users should see duedate of the assignment.
$this->setUser($student2);
$summary = $assign->get_assign_grading_summary_renderable($group1->id);
$output1 .= $assign->get_renderer()->render($summary);
$this->assertContains('Tuesday, 28 May 2019, 7:31 AM', $output1);
$output2 = '';
// Teacher should be able to see all group override duedate.
$this->setUser($teacher);
$summary = $assign->get_assign_grading_summary_renderable($group1->id);
$output2 .= $assign->get_renderer()->render($summary);
$this->assertContains('Friday, 20 September 2019, 10:37 PM', $output2);
$summary = $assign->get_assign_grading_summary_renderable($group2->id);
$output3 = '';
$output3 .= $assign->get_renderer()->render($summary);
$this->assertContains('Friday, 7 June 2019, 5:37 PM', $output3);
}
}