Hi,
I too have the same issue as described by original poster with the extra requirement of allowing users who completed a now-outdated version of the quiz, to still have access to their attempt (in other words, I can't completely hide it).
As I cannot state a circular condition "only see old_quiz if old_quiz is complete" (old_quiz cannot reference itself) what was useful was to place my old quiz in it's own topic and then apply the condition to the topic " only see this topic is old_quiz is complete".
This enabled a kind of versioning but the issue I now face is that the course completion never reaches 100% as no user will ever see both versions of the quiz (if I figure out how to fix this, I will update the post).
The above is not too major but my versioning approach is still problematic because:
- it is cumbersome, for the gradebook to work, I need to place both versions in the same gradebook folder and set it to select the higher grade (since one version will never be seen by some users and will always be null)
- all of the manipulations I make lead to 3 or 4 gradebook recalculation while the course is still ongoing (not ideal, I take the course offline while I do the change, but there is always the chance I insert a mistake)
- mistakes always slip-in: having a second version of the quiz set up, a mistake with a wrong category getting called was inserted (and despite QAing, the mistake still got through). This was only realized after it went live with attempts already made. Now I need to create a third version and do the same thing and split my users into three visibility groups based on conditions
All this to say, I think automated quiz versioning is essential especially for ongoing courses (not a session based course) that have a long life span and cannot be versioned at each end of session for instance. Even with versioning every 3-4 months, you can't wait for weeks to pass in order to version the course and fix an issue in a quiz.
If this is ever on the table, I would be happy to help with the front-end design of the versioning. I am not aware of all the implications in the back-end and the bugs generated but there is hopefully a way around it if a quiz instance is versioned along with a gradebook instance (?). So the calculation of the grade of a specific user gets calculated based on the quiz instance he/she did and the gradebook instance that quiz is attached to. The gradebook gets archived when the quiz does, and the new current gradebook is updated only for users who will attempt the new version of the quiz associated to this new version of the gradebook.
Just some thoughts, I'll keep daydreaming of quiz versioning
Thanks