Introduce finish_rules
- Dominant language
- Python
- Stars
- 435
- Forks
- 124
- Avg merge
- 5h 40m
- Merged PRs (30d)
- 14
Description
There are two instances of potential circular reasoning in `grading_rules`:
* Which grading rule gets used may depend on the completion date, by way of `if_completed_before`. On the other hand, the completion date may depend on
* Whether a flow gets finished may depend on the due date. But the due date is part of a grading rule, which can't really be evaluated before a flow is finished, given the existence of conditionals like `if_completed_before`.
In the current code, this is resolved in an ad-hoc manner, *somewhat* sensibly--the conditional uses the current time as the completion time when choosing grading rules for in-progress sessions, or, as of af46e5f222896305a10a366fe783001dcc0073ab, also the time of the last activity if `use_last_activity_as_completion_time` is set.
A reasonable way to resolve this would be to introduce another set of rules (maybe `finish_rules`) that get evaluated before a flow is finished (to set things like the due date and what should be used as the completion time).
cc @eecarrier
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.