The most important new feature is the addition of a question randomisation capability. This allows authors to set questions with in-built variability so that different students see different variants of a question. For details see the Randomising Questions section of the documentation.
Another new feature requested by several users is the addition of a Reset answer button to questions that have preloaded content in the answerbox. A student who has modified and submitted the initial contents, but who now wishes to revert to the original supplied skeleton answer (say) can simply click the Reset answer button.
The full set of changes is as follows:
28 April 2018. 3.4.0
- Add randomisation capabilities so that students can be presented with a randomly generated question variant when they start a question in a quiz. Randomisation is achieved by the use of Twig expansion of the template parameters field (assumed to include at least one call to the Twig random function) followed by Twig expansion of all other question fields using the expanded template parameters as a Twig environment. For details see here.
- Add a Reset answer button to the student question answer page if the answer box contains preloaded content.
- Add function set_random_seed to Twig for use with the question randomisation, e.g. to ensure that a student always sees the same variant of a question no matter how often they attempt it.
- Add id field to the Twig STUDENT variable, e.g. for use with the above.
- Use Ace editor for template-parameters field.
- Add Twig All and Hoist template parameters checkboxes to the authoring interface for use with randomisation and to simplify template authoring in general.
- Add fontsize parameter to the GraphUI plugin.
- Fix a long-standing bug that caused questions to be flagged as incomplete after earlier having been marked correct even though the answer had not been altered. This turned out to occur if the student's answer began with a blank line.
- Improve question author feedback in the event of Twig errors.
- Miscellaneous code-cleaning and minor bug fixes.