mirrored from git://git.moodle.org/moodle.git
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
MDL-69496 quiz: Only validate completion if unlocked
Quiz completion settings are only validated if they are unlocked. Undefined behaviour in the forms API results in the completion settings 'require passing grade' and 'completion attempts exhausted' not being sent to the process options function if completion settings are locked. This resulted in the completion attempts exhausted setting being disabled whenever the quiz was saved as it did not detect the require passing grade setting. This changes the behaviour so that validation is only performed if the completion settings are unlocked. A behat test is included to ensure the setting does not change.
- Loading branch information
1 parent
ef9ffcd
commit 982d1bb
Showing
2 changed files
with
67 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
56 changes: 56 additions & 0 deletions
56
mod/quiz/tests/behat/quiz_activity_completion_locked.feature
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
@mod @mod_quiz @core_completion | ||
Feature: Ensure saving a quiz does not modify the completion settings. | ||
In order to reliably use completion | ||
As a teacher | ||
I need to be able to update the quiz | ||
without changing the completion settings. | ||
|
||
Background: | ||
Given the following "users" exist: | ||
| username | firstname | lastname | email | | ||
| student1 | Student | 1 | student1@example.com | | ||
| teacher1 | Teacher | 1 | teacher1@example.com | | ||
And the following "courses" exist: | ||
| fullname | shortname | category | enablecompletion | | ||
| Course 1 | C1 | 0 | 1 | | ||
And the following "course enrolments" exist: | ||
| user | course | role | | ||
| teacher1 | C1 | editingteacher | | ||
| student1 | C1 | student | | ||
And the following config values are set as admin: | ||
| grade_item_advanced | hiddenuntil | | ||
And the following "question categories" exist: | ||
| contextlevel | reference | name | | ||
| Course | C1 | Test questions | | ||
And the following "questions" exist: | ||
| questioncategory | qtype | name | questiontext | | ||
| Test questions | truefalse | First question | Answer the first question | | ||
And the following "activity" exists: | ||
| activity | quiz | | ||
| course | C1 | | ||
| idnumber | quiz1 | | ||
| name | Test quiz | | ||
| section | 1 | | ||
| attempts | 2 | | ||
| gradepass | 5.00 | | ||
| completion | 2 | | ||
| completionview | 0 | | ||
| completionusegrade | 1 | | ||
| completionpassgrade | 1 | | ||
| completionattemptsexhausted | 1 | | ||
And quiz "Test quiz" contains the following questions: | ||
| question | page | | ||
| First question | 1 | | ||
And user "student1" has attempted "Test quiz" with responses: | ||
| slot | response | | ||
| 1 | True | | ||
|
||
Scenario: Ensure saving quiz activty does not change completion settings | ||
Given I am on the "Test quiz" "mod_quiz > View" page logged in as "teacher1" | ||
When I navigate to "Settings" in current page administration | ||
Then the "completionattemptsexhausted" "field" should be disabled | ||
And the field "completionattemptsexhausted" matches value "1" | ||
And I press "Save and display" | ||
And I navigate to "Settings" in current page administration | ||
And the "completionattemptsexhausted" "field" should be disabled | ||
And the field "completionattemptsexhausted" matches value "1" |