mirror of
https://github.com/moodle/moodle.git
synced 2025-01-31 04:33:13 +01:00
Merge branch 'MDL-48608_master' of git://github.com/markn86/moodle
This commit is contained in:
commit
6ef9a63bcd
@ -150,15 +150,32 @@ class assign_grading_table extends table_sql implements renderable {
|
||||
$fields .= 'uf.allocatedmarker as allocatedmarker ';
|
||||
|
||||
$from = '{user} u
|
||||
LEFT JOIN {assign_submission} s ON
|
||||
u.id = s.userid AND
|
||||
s.assignment = :assignmentid1 AND
|
||||
s.latest = 1
|
||||
LEFT JOIN {assign_grades} g ON
|
||||
u.id = g.userid AND
|
||||
g.assignment = :assignmentid2 AND
|
||||
g.attemptnumber = s.attemptnumber
|
||||
LEFT JOIN {assign_user_flags} uf ON u.id = uf.userid AND uf.assignment = :assignmentid3';
|
||||
LEFT JOIN {assign_submission} s
|
||||
ON u.id = s.userid
|
||||
AND s.assignment = :assignmentid1
|
||||
AND s.latest = 1
|
||||
LEFT JOIN {assign_grades} g
|
||||
ON u.id = g.userid
|
||||
AND g.assignment = :assignmentid2 ';
|
||||
|
||||
// For group submissions we don't immediately create an entry in the assign_submission table for each user,
|
||||
// instead the userid is set to 0. In this case we use a different query to retrieve the grade for the user.
|
||||
if ($this->assignment->get_instance()->teamsubmission) {
|
||||
$params['assignmentid4'] = (int) $this->assignment->get_instance()->id;
|
||||
$grademaxattempt = 'SELECT mxg.userid, MAX(mxg.attemptnumber) AS maxattempt
|
||||
FROM {assign_grades} mxg
|
||||
WHERE mxg.assignment = :assignmentid4
|
||||
GROUP BY mxg.userid';
|
||||
$from .= 'LEFT JOIN (' . $grademaxattempt . ') gmx
|
||||
ON u.id = gmx.userid
|
||||
AND g.attemptnumber = gmx.maxattempt ';
|
||||
} else {
|
||||
$from .= 'AND g.attemptnumber = s.attemptnumber ';
|
||||
}
|
||||
|
||||
$from .= 'LEFT JOIN {assign_user_flags} uf
|
||||
ON u.id = uf.userid
|
||||
AND uf.assignment = :assignmentid3';
|
||||
|
||||
$userparams = array();
|
||||
$userindex = 0;
|
||||
|
69
mod/assign/tests/behat/display_grade.feature
Normal file
69
mod/assign/tests/behat/display_grade.feature
Normal file
@ -0,0 +1,69 @@
|
||||
@mod @mod_assign
|
||||
Feature: Check that the assignment grade can be updated correctly
|
||||
In order to ensure that the grade is shown correctly in the grading table
|
||||
As a teacher
|
||||
I need to grade a student and ensure the grade is shown correctly
|
||||
|
||||
@javascript
|
||||
Scenario: Update the grade for an assignment
|
||||
Given the following "courses" exist:
|
||||
| fullname | shortname | category | groupmode |
|
||||
| Course 1 | C1 | 0 | 1 |
|
||||
And the following "users" exist:
|
||||
| username | firstname | lastname | email |
|
||||
| teacher1 | Teacher | 1 | teacher1@asd.com |
|
||||
| student1 | Student | 1 | student10@asd.com |
|
||||
And the following "course enrolments" exist:
|
||||
| user | course | role |
|
||||
| teacher1 | C1 | editingteacher |
|
||||
| student1 | C1 | student |
|
||||
And the following "groups" exist:
|
||||
| name | course | idnumber |
|
||||
| Group 1 | C1 | G1 |
|
||||
And I log in as "teacher1"
|
||||
And I follow "Course 1"
|
||||
And I turn editing mode on
|
||||
And I add a "Assignment" to section "1" and I fill the form with:
|
||||
| Assignment name | Test assignment name |
|
||||
| Description | Test assignment description |
|
||||
| Use marking workflow | Yes |
|
||||
When I follow "Test assignment name"
|
||||
Then I follow "View/grade all submissions"
|
||||
And I click on "Grade Student 1" "link" in the "Student 1" "table_row"
|
||||
And I set the field "Grade out of 100" to "50"
|
||||
And I press "Save changes"
|
||||
And I press "Continue"
|
||||
And "Student 1" row "Grade" column of "generaltable" table should contain "50.00"
|
||||
|
||||
@javascript
|
||||
Scenario: Update the grade for a team assignment
|
||||
Given the following "courses" exist:
|
||||
| fullname | shortname | category | groupmode |
|
||||
| Course 1 | C1 | 0 | 1 |
|
||||
And the following "users" exist:
|
||||
| username | firstname | lastname | email |
|
||||
| teacher1 | Teacher | 1 | teacher1@asd.com |
|
||||
| student1 | Student | 1 | student10@asd.com |
|
||||
And the following "course enrolments" exist:
|
||||
| user | course | role |
|
||||
| teacher1 | C1 | editingteacher |
|
||||
| student1 | C1 | student |
|
||||
And the following "groups" exist:
|
||||
| name | course | idnumber |
|
||||
| Group 1 | C1 | G1 |
|
||||
And I log in as "teacher1"
|
||||
And I follow "Course 1"
|
||||
And I turn editing mode on
|
||||
And I add a "Assignment" to section "1" and I fill the form with:
|
||||
| Assignment name | Test assignment name |
|
||||
| Description | Test assignment description |
|
||||
| Use marking workflow | Yes |
|
||||
| Students submit in groups | Yes |
|
||||
| Group mode | No groups |
|
||||
When I follow "Test assignment name"
|
||||
Then I follow "View/grade all submissions"
|
||||
And I click on "Grade Student 1" "link" in the "Student 1" "table_row"
|
||||
And I set the field "Grade out of 100" to "50"
|
||||
And I press "Save changes"
|
||||
And I press "Continue"
|
||||
And "Student 1" row "Grade" column of "generaltable" table should contain "50.00"
|
Loading…
x
Reference in New Issue
Block a user