Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
@mod @mod_quiz @core @core_badges @core_completion @javascriptFeature: Award badges based on activity completionIn order to ensure a student has learned the material before being marked completeAs a teacherI need to configure an activity to grant a badge only when the student achieves a passing grade upon completion.Background:Given the following "users" exist:| username | firstname | lastname | email || student1 | Student | 1 | student1@example.com || student2 | Student | 2 | student2@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 || student2 | C1 | student |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 "activities" exist:| activity | name | course | idnumber | attempts | gradepass | completion | completionpassgrade | completionusegrade || quiz | Test quiz name 1 | C1 | quiz1 | 2 | 5.00 | 2 | 1 | 1 || quiz | Test quiz name 2 | C1 | quiz2 | 2 | 5.00 | 2 | 0 | 1 |And quiz "Test quiz name 1" contains the following questions:| question | page || First question | 1 |And quiz "Test quiz name 2" contains the following questions:| question | page || First question | 1 |And the following "core_badges > Badge" exists:| name | Course Badge 1 || status | 0 || type | 2 || course | C1 || description | Course badge 1 description || image | badges/tests/behat/badge.png |And the following "core_badges > Badge" exists:| name | Course Badge 2 || status | 0 || type | 2 || course | C1 || description | Course badge 2 description || image | badges/tests/behat/badge.png |And I am on the "Course 1" course page logged in as teacher1Scenario: Student does not earn a badge using activity completion when does not get passing gradeGiven I navigate to "Badges" in current page administrationAnd I press "Manage badges"And I follow "Course Badge 1"And I select "Criteria" from the "jump" singleselectAnd I set the field "type" to "Activity completion"And I set the field "Quiz - Test quiz name 1" to "1"And I press "Save"And I press "Enable access"And I press "Continue"And I should see "Recipients (0)"# Pass grade for student1. Activity is considered complete because student1 got a passing grade.And user "student1" has attempted "Test quiz name 1" with responses:| slot | response || 1 | True |# Fail grade for student2. Activity is considered incomplete because student2 got a failing grade.And user "student2" has attempted "Test quiz name 1" with responses:| slot | response || 1 | False |And I navigate to "Badges > Manage badges" in current page administrationAnd I follow "Course Badge 1"Then I should see "Recipients (1)"And I select "Recipients (1)" from the "jump" singleselectAnd I should see "Student 1"And I should not see "Student 2"Scenario: Students with any grades in an activity will receive a badge if the completion condition is set to receive any gradeGiven I navigate to "Badges" in current page administrationAnd I press "Manage badges"And I follow "Course Badge 2"And I select "Criteria" from the "jump" singleselectAnd I set the field "type" to "Activity completion"And I set the field "Quiz - Test quiz name 2" to "1"And I press "Save"And I press "Enable access"And I press "Continue"# Pass grade for student1.And user "student1" has attempted "Test quiz name 2" with responses:| slot | response || 1 | True |# Fail grade for student2. Activity is considered complete even if student2 got a failing grade.And user "student2" has attempted "Test quiz name 2" with responses:| slot | response || 1 | False |And I navigate to "Badges > Manage badges" in current page administrationAnd I follow "Course Badge 2"Then I should see "Recipients (2)"And I select "Recipients (2)" from the "jump" singleselectAnd I should see "Student 1"And I should see "Student 2"Scenario: Previously graded pass/fail students should earn a badge after enabling a badge# Pass grade for student1.Given user "student1" has attempted "Test quiz name 1" with responses:| slot | response || 1 | True |# Fail grade for student2.And user "student2" has attempted "Test quiz name 1" with responses:| slot | response || 1 | False |And I navigate to "Badges" in current page administrationAnd I press "Manage badges"And I follow "Course Badge 1"And I select "Criteria" from the "jump" singleselectAnd I set the field "type" to "Activity completion"And I set the field "Quiz - Test quiz name 1" to "1"And I press "Save"# Enable badge access once students have completed the activity.When I press "Enable access"And I press "Continue"# Only student1 should earn the badge because student2 did not pass the quiz.Then I should see "Recipients (1)"And I select "Recipients (1)" from the "jump" singleselectAnd I should see "Student 1"And I should not see "Student 2"