Configuration Examples#
These examples show how to configure requirements and data rules for common use cases.
Note
Requirements in the same group use OR logic - any one of them fulfills the group. Requirements in different groups use AND logic - all groups must be fulfilled. Any of the following examples can be combined for more specific use cases.
Course Completion#
ANY COURSE GRADE Update#
Triggers on any gradable interaction (e.g. submit button click) in any course. Rarely useful on its own.
- Requirement 1:
event type:
org.openedx.learning.course.passing.status.updated.v1description:
On any grade update.
ANY COURSE Completion#
Requires passing grade for any course. Once a course grade becomes “passing” after a gradable problem submission, a badge is awarded.
- Requirement 1:
event type:
org.openedx.learning.course.passing.status.updated.v1description:
On any (not CCX) course completion.- Data rule 1:
key path:
is_passingoperator:
equalsvalue:
true
ANY COURSE Completion EXCEPT a Specific Course#
Requires passing grade for any course excluding the “Demo” course.
- Requirement 1:
event type:
org.openedx.learning.course.passing.status.updated.v1description:
On any course completion, but not the "Demo" course.- Data rule 1:
key path:
is_passingoperator:
equalsvalue:
true
- Data rule 2:
key path:
course.course_keyoperator:
not equalsvalue:
course-v1:edX+DemoX+Demo_Course
SPECIFIC COURSE Completion#
Requires passing grade for exact course (“Demo” course).
- Requirement 1:
event type:
org.openedx.learning.course.passing.status.updated.v1description:
On the Demo course completion.- Data rule 1:
key path:
is_passingoperator:
equalsvalue:
true
- Data rule 2:
key path:
course.course_keyoperator:
equalsvalue:
course-v1:edX+DemoX+Demo_Course
MULTIPLE SPECIFIC COURSES Completion#
All specified courses must be completed. Different requirement groups force each requirement to be fulfilled.
- Requirement 1:
event type:
org.openedx.learning.course.passing.status.updated.v1description:
On the "Demo" course completion.group:
A- Data rule 1:
key path:
is_passingoperator:
equalsvalue:
true
- Data rule 2:
key path:
course.course_keyoperator:
equalsvalue:
course-v1:edX+DemoX+Demo_Course
- Requirement 2:
event type:
org.openedx.learning.course.passing.status.updated.v1description:
On the "Other" course completion.group:
B- Data rule 1:
key path:
is_passingoperator:
equalsvalue:
true
- Data rule 2:
key path:
course.course_keyoperator:
equalsvalue:
course-v1:edX+DemoX+OTHER_Course
ONE OF MULTIPLE SPECIFIC COURSES Completion#
At least a single from the specified courses must be completed. Grouped requirements are processed as “ANY FROM A GROUP”.
- Requirement 1:
event type:
org.openedx.learning.course.passing.status.updated.v1description:
On the "Demo" course completion.group:
A- Data rule 1:
key path:
is_passingoperator:
equalsvalue:
true
- Data rule 2:
key path:
course.course_keyoperator:
equalsvalue:
course-v1:edX+DemoX+Demo_Course
- Requirement 2:
event type:
org.openedx.learning.course.passing.status.updated.v1description:
On the "Other" course completion.group:
A- Data rule 1:
key path:
is_passingoperator:
equalsvalue:
true
- Data rule 2:
key path:
course.course_keyoperator:
equalsvalue:
course-v1:edX+DemoX+OTHER_Course
CCX Course Completion#
ANY CCX Course Completion#
Requires passing grade for any CCX course.
- Requirement 1:
event type:
org.openedx.learning.ccx.course.passing.status.updated.v1description:
On any CCX course completion.- Data rule 1:
key path:
is_passingoperator:
equalsvalue:
true
SPECIFIC CCX Course Completion#
Requires passing grade for exact CCX course (“Demo CCX1” course).
- Requirement 1:
event type:
org.openedx.learning.ccx.course.passing.status.updated.v1description:
On the Demo CCX1 course completion.- Data rule 1:
key path:
is_passingoperator:
equalsvalue:
true
- Data rule 2:
key path:
course.ccx_course_keyoperator:
equalsvalue:
ccx-v1:edX+DemoX+Demo_Course+ccx@1
ANY CCX Course Completion on a Specific Master Course#
Requires passing grade for any “child” CCX course that based on the master “Demo” course.
- Requirement 1:
event type:
org.openedx.learning.ccx.course.passing.status.updated.v1description:
On any Demo CCX course completion.- Data rule 1:
key path:
is_passingoperator:
equalsvalue:
true
- Data rule 2:
key path:
course.master_course_keyoperator:
equalsvalue:
course-v1:edX+DemoX+Demo_Course
ANY CCX Course Completion on a Specific Master Course Except a Specific CCX Course#
Requires passing grade for any “child” CCX course that based on the master “Demo” course, excluding the “Demo CCX2” course.
- Requirement 1:
event type:
org.openedx.learning.ccx.course.passing.status.updated.v1description:
On any Demo CCX course completion.- Data rule 1:
key path:
is_passingoperator:
equalsvalue:
true
- Data rule 2:
key path:
course.master_course_keyoperator:
equalsvalue:
course-v1:edX+DemoX+Demo_Course
- Data rule 3:
key path:
course.ccx_course_keyoperator:
not equalsvalue:
ccx-v1:edX+DemoX+Demo_Course+ccx@2
Specific Master Course OR Any of Its CCX Courses Except a Specific CCX Course#
Here requirements 1 and 2 are grouped, so any of them lead to a badge.
- Requirement 1:
event type:
org.openedx.learning.course.passing.status.updated.v1description:
On the "Demo" course completion OR...group:
A- Data rule 1:
key path:
is_passingoperator:
equalsvalue:
true
- Data rule 2:
key path:
course.course_keyoperator:
equalsvalue:
course-v1:edX+DemoX+Demo_Course
- Requirement 2:
event type:
org.openedx.learning.ccx.course.passing.status.updated.v1description:
...OR any Demo CCX courses completion EXCLUDING CCX3.group:
A- Data rule 1:
key path:
is_passingoperator:
equalsvalue:
true
- Data rule 2:
key path:
course.master_course_keyoperator:
equalsvalue:
course-v1:edX+DemoX+Demo_Course
- Data rule 3:
key path:
course.ccx_course_keyoperator:
not equalsvalue:
ccx-v1:edX+DemoX+Demo_Course+ccx@3
Potential Use Cases#
The following ideas are not yet implemented. If you have a use case for any of them, start a conversation on the Open edX discussion forum.
Events set extension (e.g. “Email activation”, “Profile data completion”, “Course section completion”)
Repetitive events (e.g. “5 arbitrary courses completion”)
Prerequisite events (e.g. “5 specific courses completion in a specified order”)
Time-ranged events (e.g. “Arbitrary course completion during February 2022”)
Badge dependencies (e.g. “Badge A + Badge B = Badge C”)
Multiple same badge earning (e.g. “3 arbitrary course completions make badge earned x3”)