Unlock Moodle Content with Activity Completion and Conditional Access: A Practical Guide
Moodle’s built‑in Activity Completion and Conditional Access can be combined to create adaptive learning pathways. This guide walks through a practical example, discusses trade‑offs, and shows how to verify the setup.
31 Aug 2025, 10:19 UTC

The Problem: Linear Courses Don’t Match How Learners Progress
In a typical Moodle course, every activity is listed in one long wall of links. Learners can jump ahead, skip prerequisites, or see future quizzes before they’re ready. Instructors often resort to manual announcements or hiding sections, which is error‑prone and hard to maintain.
The core issue isn’t that Moodle can’t hide content – it can – but that the two built‑in mechanisms that make it possible are usually used independently.
Thesis: Combine Activity Completion and Conditional Access to Build Adaptive Pathways
When you enable Activity Completion and then use that completion state in a Conditional Access rule, Moodle automatically shows or hides the next activity based on the learner’s progress. No extra plugins, no custom code, and the same logic works in the web interface, the mobile app, and across groups.
How the Two Features Fit Together
Activity Completion records a binary state per user for each activity: complete or not complete. You decide what “complete” means – viewing a PDF, posting in a forum, scoring a quiz, or a manual tick. The state is stored in the course_modules_completion table and can be queried by other Moodle components.
Conditional Access (the “Restrict access” setting) reads those completion states. On any activity or section you can add a rule such as “Activity X must be marked complete.” The activity remains hidden until the rule evaluates true for that user.
Because completion is evaluated individually for each learner, two students in the same course can be at different points in the pathway simultaneously.
Worked Example: PDF Lecture → Practice Quiz
Below is a step‑by‑step recipe that works out of the box on Moodle 4.x. Replace the resource type if you prefer a video, but remember that percentage‑based view completion requires a plugin.
- Enable site‑wide completion tracking. Navigate to Site administration ► Advanced features ► Enable completion tracking and click Save changes. This adds a
Completiontab to every course. - Create a test course. Add a new course called
Intro to Adaptive Pathsand open its settings. Under Completion tracking, set Enable completion tracking toYesand click Save and display. - Activity A – PDF resource. Add a
Fileactivity namedLecture 1. Upload a PDF. In the Activity completion section, chooseShow activity as complete when conditions are metand tickStudent must view this activity to complete it. Save. - Activity B – Quiz. Add a
Quizactivity namedQuiz 1. In the Restrict access section, clickAdd restriction → Activity completion. SelectLecture 1from the dropdown, choosemust be marked complete, and set theVisibilitytoHide. Save. - Test as a learner. Switch role to
Studentor enroll a test user. The quiz should be invisible. Open the PDF, scroll through it, and Moodle will automatically mark it complete once the view event is recorded. Refresh the course page – the quiz should now appear.
That’s the entire chain in five simple steps. No JavaScript, no cron tricks, no external services.
Trade‑offs and Limitations
- Rule nesting can impact performance. Each Conditional Access rule adds a database join when Moodle builds the course index. On a busy site with many chained activities, page load times may increase. Keep chains short (2–4 steps) and consider gating whole sections rather than every single activity.
- Audit complexity. Moodle does not provide a visual dependency graph. To troubleshoot why a learner can’t see Activity F, you must inspect each preceding activity’s Restrict access settings. Maintaining a separate diagram or spreadsheet is a practical workaround.
- Completion data must be accurate. If you set a rule to require manual completion and the learner never ticks the box, the downstream activity will stay hidden forever. Regularly review the Activity completion report for stuck learners.
Verification Checklist
- Confirm site‑wide completion tracking is enabled.
- Build the two‑activity chain as described.
- Enroll a test user and log in as that user.
- Verify the quiz is hidden until the PDF is viewed.
- After viewing the PDF, refresh and confirm the quiz appears.
- Check the Activity completion report to see the PDF marked complete for the test user.
All steps should complete without error messages. If the quiz never appears, double‑check the Restrict access rule and the PDF’s completion setting.
Next Steps for Scaling
Start by identifying one prerequisite that learners consistently skip. Add a single completion condition and a corresponding restriction. Measure the change in completion rates using Moodle’s built‑in reports. If the approach works, replicate the pattern in the next bottleneck, but keep the chains shallow and document the flow externally.
Conclusion
By wiring Activity Completion to Conditional Access you give Moodle the ability to enforce learning pathways that feel natural to students and manageable for instructors. The process is fully supported by core Moodle, requires no extra code, and scales from a single course to an entire campus – provided you keep the rule set tidy and monitor completion data.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.