How to enforce a user to complete a task before allowing a new one?


Assume some sort of eLearning site, created with Drupal 7, with lessons using video tutorials and quizzes related to them.

Students taking courses shouldn't be able to access any videos related to subsequent lessons until they passed some quiz related to the preceding lesson.

How to implement something similar in a Drupal 7 site? Is there any contributed Drupal module that can be used to enforce this kind of workflow?



1 answer

This one is the BEST answer!

Have a look at either of these modules, which are typically used for purposes similar to what this question seems to be about (quotes included are from their project pages, which include quite AbitMORE details.):

Create Drupal e-learning courses with any number of requirements for completion.

The Quiz module lets you create graded assessments in Drupal. A Quiz is given as a series of questions. Answers are then stored in the database. Scores and results are displayed during or after the quiz. Administrators can provide automatic or manual feedback. See all the features below!

  • Exam (note the "predefined order" ...):

Enables you to use your Drupal site to hold exams. Integrates with the Organic Groups module so that all group members will be put into exam mode when the time for exam arrives. In exam mode the users can only access a predefined set of pages in a predefined order, and all blocks are hidden except those you want to be visible in exam mode. Exam pages are only visible when taking exams.

Note: When using the Course module, you may also want to use the Course Requirements module. For more details about how to configure this module, refer to the answer to How to use / configure the Course Requirements module?