Hi everyone,
We need to build a course flow with two separate graded steps: a first assessment and a second, different assessment that acts as a retry path. The second assessment should only be reachable if a learner attempted the first and scored below a threshold. A learner who passes the first assessment should skip the second one entirely, and a learner who hasn’t attempted the first assessment yet shouldn’t be able to reach the second one at all. We’ve tried two approaches and hit a real limitation with each.
- Built-in prerequisite subsections. We looked at prerequisite course subsections. This only supports the positive direction: unlocking content when a learner scores above a threshold. There’s no equivalent for unlocking (or skipping to) content when a learner scores below a threshold, or hasn’t attempted the prerequisite at all. Since our use case needs that negative condition, prerequisites alone don’t cover it.
- Flow Control XBlock. We tried the Flow Control XBlock, which lets us evaluate a condition on another block’s score and redirect the learner accordingly, so the skip logic itself works. The problem is on the progress side: the second assessment’s unit is still counted in the learner’s overall course progress calculation, even though it was correctly and intentionally skipped. A learner who passes the first assessment and is routed straight past the second one ends up with progress reported below 100 percent, purely because a unit they were never supposed to see is still in the completion denominator.
Is there a way to achieve this while keeping course progress at 100 percent for a learner who correctly skips the second assessment? That could mean extending prerequisites to support a “less than” or “not attempted” condition, or a way to use Flow Control XBlock (or similar redirect logic) without the skipped unit affecting course progress. Pointers to existing work, workarounds, or planned changes in this area would help.