Skip to content

Commit

Permalink
Merge branch 'MDL-68605_master' of https://github.com/t-schroeder/moodle
Browse files Browse the repository at this point in the history
  • Loading branch information
sarjona committed Jul 16, 2020
2 parents d189edb + 3786de2 commit 2eb31f8
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 1 deletion.
6 changes: 5 additions & 1 deletion mod/assign/externallib.php
Original file line number Diff line number Diff line change
Expand Up @@ -794,7 +794,11 @@ public static function get_submissions($assignmentids, $status = '', $since = 0,
'gradingstatus' => $assign->get_grading_status($submissionrecord->userid)
);

if ($assign->can_view_submission($submissionrecord->userid)) {
if (($assign->get_instance()->teamsubmission
&& $assign->can_view_group_submission($submissionrecord->groupid))
|| (!$assign->get_instance()->teamsubmission
&& $assign->can_view_submission($submissionrecord->userid))
) {
$submissions[] = $submission;
}
}
Expand Down
42 changes: 42 additions & 0 deletions mod/assign/tests/externallib_test.php
Original file line number Diff line number Diff line change
Expand Up @@ -454,6 +454,48 @@ public function test_get_submissions() {
$this->assertEquals(1, count($result['assignments']));
}

public function test_get_submissions_group_submission() {
global $DB;

$this->resetAfterTest(true);

$result = $this->create_assign_with_student_and_teacher(array(
'assignsubmission_onlinetext_enabled' => 1,
'teamsubmission' => 1
));
$assignmodule = $result['assign'];
$student = $result['student'];
$teacher = $result['teacher'];
$course = $result['course'];
$context = context_course::instance($course->id);
$teacherrole = $DB->get_record('role', array('shortname' => 'teacher'));
$group = $this->getDataGenerator()->create_group(array('courseid' => $course->id));
$cm = get_coursemodule_from_instance('assign', $assignmodule->id);
$context = context_module::instance($cm->id);
$assign = new mod_assign_testable_assign($context, $cm, $course);

groups_add_member($group, $student);

$this->setUser($student);
$submission = $assign->get_group_submission($student->id, $group->id, true);
$sid = $submission->id;

$this->setUser($teacher);

$assignmentids[] = $assignmodule->id;
$result = mod_assign_external::get_submissions($assignmentids);
$result = external_api::clean_returnvalue(mod_assign_external::get_submissions_returns(), $result);

$this->assertEquals(1, count($result['assignments']));
$assignment = $result['assignments'][0];
$this->assertEquals($assignmodule->id, $assignment['assignmentid']);
$this->assertEquals(1, count($assignment['submissions']));
$submission = $assignment['submissions'][0];
$this->assertEquals($sid, $submission['id']);
$this->assertEquals($group->id, $submission['groupid']);
$this->assertEquals(0, $submission['userid']);
}

/**
* Test get_user_flags
*/
Expand Down

0 comments on commit 2eb31f8

Please sign in to comment.