Merge branch 'MDL-84735-main' of https://github.com/lameze/moodle

This commit is contained in:
Huong Nguyen
2025-11-21 08:09:17 +07:00
2 changed files with 119 additions and 0 deletions
@@ -76,6 +76,16 @@ class gradingform_guide_renderer extends plugin_renderer_base {
$criterion[$key] = '';
}
}
// Set a default description format if not set.
if (!array_key_exists('descriptionformat', $criterion)) {
$criterion['descriptionformat'] = FORMAT_MOODLE;
}
// Set a default description markers format if not set.
if (!array_key_exists('descriptionmarkersformat', $criterion)) {
$criterion['descriptionmarkersformat'] = FORMAT_MOODLE;
}
}
$criteriontemplate = html_writer::start_tag('tr', array('class' => 'criterion'. $criterion['class'],
@@ -398,6 +408,11 @@ class gradingform_guide_renderer extends plugin_renderer_base {
'title' => get_string('clicktocopy', 'gradingform_guide'),
'id' => '{NAME}[comments][{COMMENT-id}]', 'class'=>'markingguidecomment'));
} else {
// Set a default description format if not set.
if (!array_key_exists('descriptionformat', $comment)) {
$comment['descriptionformat'] = FORMAT_MOODLE;
}
$description = format_text($comment['description'], $comment['descriptionformat']);
}
// Retain newlines as <br> tags when displaying 'frequently used comments'.
@@ -0,0 +1,104 @@
@gradingform @gradingform_guide
Feature: Marking guide criterion can be edited and replaced
In order to edit and replace a marking guide criterion
As a teacher
I need to have an existing marking guide criterion
Background:
Given the following "users" exist:
| username | firstname | lastname | email |
| teacher1 | Teacher | 1 | teacher1@example.com |
| student1 | Student | 1 | student1@example.com |
And the following "courses" exist:
| fullname | shortname | format |
| Course 1 | C1 | topics |
And the following "course enrolments" exist:
| user | course | role |
| teacher1 | C1 | editingteacher |
| student1 | C1 | student |
And the following "activities" exist:
| activity | course | name | advancedgradingmethod_submissions | assignsubmission_onlinetext_enabled |
| assign | C1 | Assign 1 | guide | 1 |
And I am on the "Course 1" course page logged in as teacher1
And I go to "Assign 1" advanced grading definition page
And I set the following fields to these values:
| Name | Assign 1 marking guide |
| Description | Marking guide description |
And I define the following marking guide:
| Criterion name | Description for students | Description for markers | Maximum score |
| Grade Criteria 1 | Grade 1 description for students | Grade 1 description for markers | 70 |
| Grade Criteria 2 | Grade 2 description for students | Grade 2 description for markers | 30 |
And I define the following frequently used comments:
| Comment 1 |
| Comment 2 |
| Comment 3 |
And I press "Save marking guide and make it ready"
And the following "mod_assign > submissions" exist:
| assign | user | onlinetext |
| Assign 1 | student1 | I'm the student first submission |
And I am on the "Assign 1" "assign activity" page
And I go to "Student 1" "Assign 1" activity advanced grading page
And I grade by filling the marking guide with:
| Grade Criteria 1 | 50 | Comment 1 |
| Grade Criteria 2 | 20 | Comment 2 |
And I press "Save changes"
@javascript
Scenario: Marking guide frequently used comments can be updated and reordered
Given I go to "Assign 1" advanced grading definition page
And I click on "Move up" "button" in the "Comment 3" "table_row"
And I click on "Move down" "button" in the "Comment 1" "table_row"
When I press "Save"
# Confirm that the order of the frequently used comments are updated.
Then "Comment 3" "text" should appear before "Comment 1" "text"
And "Comment 2" "text" should appear after "Comment 1" "text"
And I am on the "Assign 1" "assign activity" page
And I go to "Student 1" "Assign 1" activity advanced grading page
# Confirm that there are no changes to the existing marking records.
And I should see "Comment 1" in the "Grade Criteria 1" "table_row"
And I should see "Comment 2" in the "Grade Criteria 2" "table_row"
@javascript
Scenario: Marking guide criterion can be modified
Given I go to "Assign 1" advanced grading definition page
And I click on "Delete criterion" "button" in the "Grade Criteria 1" "table_row"
And I press "Yes"
And I wait "1" seconds
And I should not see "Grade Criteria 1"
And I press "Add criterion"
# Used xpath_element selectors in order to differentiate multiple criterion fields.
And I click on "//table[@id='guide-criteria']//tr[@class='criterion odd last']//div[@class='criterionname']" "xpath_element"
# Set the new criterion name.
And I set the field with xpath "//input[@id='guide-criteria-NEWID1-shortname']" to "Grade Criteria 3"
And I click on "//table[@id='guide-criteria']//tr[@class='criterion odd last']//div[@class='criteriondesc']//span[@class='textvalue']" "xpath_element"
# Set the new criterion description for students.
And I set the field with xpath "//textarea[@id='guide[criteria][NEWID1][description]']" to "Grade 3 description for students"
And I click on "//table[@id='guide-criteria']//tr[@class='criterion odd last']//div[@class='criteriondescmarkers']//span[@class='textvalue']" "xpath_element"
# Set the new criterion description for markers.
And I set the field with xpath "//textarea[@id='guide[criteria][NEWID1][descriptionmarkers]']" to "Grade 3 description for markers"
And I click on "//table[@id='guide-criteria']//tr[@class='criterion odd last']//div[@class='criterionmaxscore']//span[@class='textvalue']" "xpath_element"
# Set the new criterion max score.
And I set the field with xpath "//input[@id='guide[criteria][NEWID1][maxscore]']" to "70"
When I press "Save"
Then "You are about to save significant changes to a marking guide that has already been used for grading. The gradebook value will be unchanged, but the marking guide will be hidden from students until their item is regraded." "text" should exist
And I press "Continue"
And I am on the "Assign 1" "assign activity" page logged in as student1
# Confirm that the remarks for each grading criterion are not displayed.
And "Comment 1" "text" should not exist
And "Comment 2" "text" should not exist
# Confirm that the submission is not regraded.
And I should see "70.00 / 100.00"
# Regrade the submission.
And I am on the "Course 1" course page logged in as teacher1
And I go to "Student 1" "Assign 1" activity advanced grading page
And I grade by filling the marking guide with:
| Grade Criteria 2 | 15 | Comment 3 |
| Grade Criteria 3 | 50 | Comment 2 |
And I press "Save changes"
And I am on the "Assign 1" "assign activity" page logged in as student1
# Confirm that submission is re-marked and regraded.
And I should see "65.00 / 100.00"
And I should see the marking guide information displayed as:
| criteria | description | remark | maxscore | criteriascore |
| Grade Criteria 2 | Grade 2 description for students | Comment 3 | 30 | 15 / 30 |
| Grade Criteria 3 | Grade 3 description for students | Comment 2 | 70 | 50 / 70 |