Course contents in a course built on the open edX platform is organized in a structure of sections, subsections and units.   In principle, the learner is expected to engage with those unit following the order from beginning to end, or to wander freely choosing the contents he or she wants to explore.

However, as a course designer, you may need to enforce some specific behavior such as Having the user complete one section before being able to access the next.

The basic capabilities of the open edX platform allow you to solve this basic scenario. Using a feature called Subsection Prerequisites you can set a particular subsection as hidden until the learner reaches a certain score for a previous subsection.  However, this feature will only solve that particular scenario as it doesn’t provide the flexibility you may need for many other scenarios you may encounter, which is why eduNEXT created and actively maintains the Flow Control Xblock.

The Flow Control Xblock provides a way to display the content of a unit or to redirect the user elsewhere based on compliance with a condition that evaluates the submission or the score of a problem or a set of problems.

Flow Control can be used whenever you need to control the available course content based on grades obtained by a student, on one or more evaluated problems in the course. Also, it is possible to check if those problems have been answered or not. Some common uses cases are:

  • Only allow the learner to see unit B when a problem in unit A has been answered, otherwise displaying a explanatory message.
  • Only allow the learner to see unit B when a problem in unit A has been answered, otherwise redirecting to unit A.
  • Only allow the learner to see unit B when a problem in unit A has scored above a certain threshold.
  • Present further explanatory content to learners that did not answer correctly a certain problem, while redirecting to the next unit learners that did answer correctly.
  • Display a message congratulating the learner for passing an exam, or a message notifying the exam wasn’t passed.
  • Display a message notifying the learner that some of the exam’s questions have not been answered yet.
  • Used in combination with the subsection prerequisites feature to better explain the learners why certain subsections will or will not be made available to them.

Its features include:

This Xblock was created with flexibility in mind, so in order to provide that, we included as many condition types as we could and also a great deal of actions to take after those conditions are met:

Two Condition types: Currently, the xblock features evaluating the score of a single problem and the average score of a list of problems.

Multiple Condition operators: The implemented operators are:

  • Equals
  • Not equal to
  • Greather than
  • Greather than or equal to
  • Less than
  • Less than or equal to
  • Is empty
  • Is not empty
  • Has empty

Multiple Actions: This actions can be applied when a condition is met:

  • Display a message
  • Redirect to another unit in the same subsection (without reloading the page)
  • Redirect to another unit using jump_to_id (reloading the page)
  • Redirect to a given URL

The xblock features a very nice studio interface for you to select your configurations and also a WYSIWYG HTML editor to simplify writing the content or message that learners will get if the condition is met.

About the Flow Control Xblock:

This xblock has been designed and developed by eduNEXT and has been presented at the open edX 2016 conference at Stanford University.


How can I add the Flow Control Xblock to my open edX courses?

If you are enjoying one of eduNEXT´s software as a service subscriptions or on premise support plans, contact us to get this feature activated.

If you are hosting and running the open edX platform on your own, the sourcecode of this component is freely available, so you can find it in GitHub at and add it to your open edX installation the way any other xblock is installed.

Once installed, all you need to do is to add “flow-control” to the list of advanced components in your course and you’ll find the component available in any of your course’s units.


Leave a Comment