Retake Entire Class When Required Course Not Passed?

I have the following scenario: A Class with several Courses, each course (except the first) requires the previous course; by way of example: Course 1 (first course, no requirements) Course 2 (requires Course 1) Course 3 (requires Course 2) ... etc... Under normal conditions, a user that takes and passes all of the lessons in Course 1 will be granted access to Course 2 by the default Opigno rule "Activate membership when required course is passed" and they will continue through the Class until the end. All is clear there. Now, if the user fails a quiz/lesson in a Course - let's say in Course 2 - once they reach the end of Course 2 they will not meet the conditions in the "membership" rule described above and will not be granted access to Course 3. Instead, they will find that trying to continue the class after Course 2 will send them back to the beginning of Course 1. Now further imagine this happening not in Course 2 of 3, but Course 11 of 12 - the user is sent back to retake the Class from Course 1 even if they passed Courses 1 through 10, which is quite frustrating! The most reasonable default I can imagine is for the user to only have to retake the Course that was not passed, if not just the lesson(s)/quiz(zes) that were not passed within. (by analogy, I know of no academic program that would force you to retake, say, Calculus 1 & 2 when you fail Calculus 3) Honestly, the best solution in my particular case would be to have the user retake a lesson/quiz immediately after they fail it presuming that there are unlimited or sufficient remaining attempts. I've looked over the resume / take mechanisms in both the Quiz module and Opigno Quiz App module and it would seem that the only reliable way to trigger a retake would be to manipulate the quiz_node_results and/or opigno_quiz_app_course_latest_viewed database tables in concert with a Rule triggered by a failed quiz. I've searched through the Support forum and haven't found mention of this "feature" - has anyone else noticed this and/or managed to overcome the problem?

One more detail...

To explain the reason why users are sent back to the beginning of the Class per the above scenario: In Opigno Quiz App, the resume function cycles through the required Courses _that the user currently has access to_ in order to find the next lesson. Once the user reaches the end of the Course that they have not passed, all of the lessons are considered complete, regardless of passing state. However, they still won't have access to the next Course in the sequence and the resume function gives up and sends them back to the beginning of the Class.


To get around this problem I ended up creating a Rule that fires on quiz failure that is supported on the backed by a custom Rules action. This custom action resets the entry for the failed quiz in the opigno_quiz_app_course_latest_viewed table to a result_id of "0"; because "0" doesn't exist, the system will create a new attempt against the same quiz when the resume function is processed.