The current mechanism to calculate the points of a participant in a course and if the user has passed the course can be configured in the tab "Score" of the root course element. This mechansim has some disadvantages like use of the outdated expert rule engine, hidden and confusing configuration etc.
So this issue is about making a completely new mechanism to calculate the points / passed of a participant in a course. The mechanism is only available in courses of the type "learning path".
- The configuration is part of the course settings
- The section "Efficiency statements" has to be renamed to "Assessment"
- The section "Assessment" is devided in "Assessment settings", "Efficiency statements" and "Certificate"
- The "Assessment settings" contains the configuration of the new mechanism and is only in learning path courses visible.
- Hide tab "Score" of structure nodes in the course editor of learning path courses
- No score
- Sum of the points of the assessable course nodes (default in new courses)
- Average of the points of the assessable course nodes
Further the max possible score of the course has to be calculated.
The user has passed the course (root node), if he has fulfilled at least one of the active criterion.
- Progress 100% (default in new courses)
- Passed all course elements
- Passed a certain number of course elements
- Reached a certain score
Further the coach can set manually the assessment of the course to passed / failed, if the appropriate option is active.
If a user has once passed a course, it stays passed even if the configuration changes, new course elements are added, etc.
Course element configuration
Every assessable course element is extended by a configuration to be ignored by the calculation of the sum / passed of the course. This configuration can be changes in the course editor bulk change as well.
Since the passed information stays allways passed, we need a function to delete the passed information for all participants of the course and to recalcluate the information. Further we need a function to reset all overriden passed informations.