-
Bug
-
Resolution: Fixed
-
Minor
-
3.0.4, 3.1.2
-
MOODLE_30_STABLE, MOODLE_31_STABLE
-
MOODLE_30_STABLE, MOODLE_31_STABLE
-
MDL-54802-master -
-
-
3.2 Sprint 6
The activity completion for a quiz is configured to require a passing grade. The passing grade for the quiz is set to 0. When a student completes the quiz with any score the quiz activity is not marked as completed.
The "require passing grade" activity completion condition works correctly with any "grade to pass" value other than 0.
There likely is not a pedagogical basis for conditioning activity completion on a passing grade of 0 (use of the "require grade" completion condition would achieve the same results). However, either activity completion should be granted under this configuration or the quiz settings page should prevent the instructor from saving this configuration. For example if the "require passing grade" completion condition has been selected, validate that a value greater than 0 has been entered in "Grade to pass".
STEPS TO REPLICATE
1. Create a new quiz activity. In the Grade section of the quiz settings, set "Grade to pass" to 0.00. In the Activity completion section, select "Show activity as complete when conditions are met" and select the "Require passing grade" check box.
2. Add a few multiple choice or true/false questions to the quiz.
3. Take the quiz as a student, answering all questions correctly.
4. Return to the course home.
OBSERVED BEHAVIOR:
The quiz is still mark as not completed.
EXPECTED BEHAVIOR:
The quiz is marked with a green check mark signify that the activity has been completed.
REPLICATION LOCATIONS
I have replicated this issue in test environments on 2.9.3 and 3.0.4.
ADDITIONAL INVESTIGATION NOTES
The following query may be used to locate quizzes using the problematic configuration.
select cm.id, c.shortname as course_shortname, q.name as quiz, gi.gradepass as PassingGrade
from mdl_course_modules cm
inner join mdl_modules m on m.id = cm.module
inner join mdl_course c on c.id = cm.course
inner join mdl_quiz q on q.id = cm.instance
inner join mdl_grade_items gi on gi.iteminstance = q.id AND gi.itemmodule = 'quiz'
where m.name = 'quiz'
and cm.completion = 2
and q.completionpass = 1
and gi.gradepass = 0;
USER IMPACT
This issue may cause confusion for both the instructor and students for which it is unclear why the completion conditions are not considered to be met. If completion of the quiz activity is a condition for course completion, course completion status is also impacted. However, once recognized, the issue may be quickly rectified by changing the quiz settings and activity completion will be re-evaluated for students with existing attempts (see workaround).