Feature Wiki

Information about planned and released features

Tabs

Lifecycle and Versioning Support in Test Questions

This feature request is part of the initiative for an [[[Project] Improved test question sharing]]. It relies on the feature request Introduction of Lifecycle Service.

1 Initial Problem

At the time being it is not possible to indicate and identify the status of a question within ILIAS itself. You need an extra document to save and edit the information if a question is still in preparation, if it already can be used or if it should not no longer be used and needs a revision. This missing lifecycle support in the question pool is not a big problem if one works on his own. But when questions are created collaboratively and shared among several partners, such information becomes very important and the workaround with an external document is risky and even not manageable.

2 Conceptual Summary

Provided a general lifecycle support is available in ILIAS (see Introduction of Lifecycle Service), the test question pool should implement this service to support easy and safe processes for collaborative editing and for sharing test questions.

Handling newly created test question pools

  • Lifecycle support can be enabled for every test question pool in ILIAS. Default setting for existing and new pools is 'disabled'. Reason: not every test author needs lifecycle support for test questions. If support is not needed it should not extend UI complexity.
    • Open: Shall we introduce a general setting in Administration » Test to enable this service in general for new pools and manually for selected pools that already exists?
    • Neumann, Heyser: It would be sufficient to activate the service per pool.
  • If lifecycle support is enabled, a lifecycle status is stored for every single question.
    • Status information is presented as dropdown in a dedicated column 'Status', see here.
    • Status information can be changed per single question with the dropdown or by selecting several questions and executing the new action 'Change Status' in the table commands.
    • Default for new questions is 'draft'.

Handling of existing pools that include already questions

  • Default for questions in existing pools where lifecycle support has been activated afterwards is 'Drafted'. too.
  • If a question pool already has questions and lifecycle support is enabled, a sub-setting is offered with a check box and the option 'Change status of all existing questions to:' followed by a dropdown with the five existing status. If one of the status is selected, all question get the selected status no matter if they already have status information or not.

Lifecycle support in tests

  • A new column 'Status' is shown in Test » Questions » List View. Status of each question is shown as simple text. If no status is available, a notice 'n.a.' is displayed instead. Column can be hidden like other columns, too. 
  • Lifecycle status of a question can only be changed on the 'Edit question' screen.

Using Lifecycle Information

  • Lifecycle status as a table filter: A new filter 'Lifecycle Status' allows to reduce the number of shown questions in a pool to one or more status.
  • Lifecycle status as an export filter: If lifecycle support is activated, the export screen of a question pool gets a new option 'Export only questions with status 'Distribute'. If selected by a user and 'Create Export File' is clicked, only questions with status 'Distribute' are added to the export file. Checkbox is activated by default.
  • Lifecycle status as a filter for inserting questions: If lifecycle support is activated for a pool, only questions with status 'Final' and 'Distribute' can be taken from the pool and copied into a test. When creating a random test, only questions that have one of these both status are taken for the question set.
  • Lifecycle status as a filter for editing questions: If lifecycle support is activated, test questions with status 'Draft' and 'Review' can be edited immediately while test questions with status 'Final', 'Distribute' and 'Outdated' have a 'freezed' Edit Question screen to avoid changes. A related info message is shown over the edit form as well as a button 'Modify Question' to derestrict this page freeze. If a user clicks on this button, the question status is automatically preset to 'Draft' in the edit form. If no 'Save' action is performed to store the modified question, the status is kept like before.

3 User Interface Modifications

3.1 List of Affected Views

  • Test question pool » Questions
  • Test question pool » Questions » Edit Question
  • Test question pool » Settings
  • Test question pool » Export

3.2 User Interface Details

Test question pool » Questions

  • A new column 'Status' is introduced left of column 'Question Type'. Data is presented as dropdown.
  • A new filter 'Lifecycle Status' is shown left of filter 'Question Type'. Values are 'All' and the five possible status. Multiple status can be chosen.
  • A new option 'Change Status' is added to table's Actions dropdown. Position is on top of the list when lifecycle support is enabled.

Test question pool » Questions » Edit Question

  • A new option 'Lifecycle Status' is shown on the Edit screen of every test question type. Status data is presented as dropdown. Position of option is a distinct block called 'Lifecycle' as last block of an Edit screen. This block can be used for future lifecycle related options, too.

Test question pool » Settings

  • A new option 'Lifecycle Support' is added to a new block 'Additional Features' (like already known from other components) and enabled by checkbox.
  • If option is enabled, a sub-setting is offered with a check box and the option 'Change status of all existing questions to:' followed by a dropdown with the five existing status.

Test question pool » Export

  • If lifecycle support is activated, the command line of the export screen of a question pool gets a checkbox with option 'Export only questions with status 'Distribute''

3.3 New User Interface Concepts

No new UI concepts suggested. Only existing UI components are reused.

4 Technical Information

{The maintainer has to provide necessary technical information, e.g. dependencies on other ILIAS components, necessary modifications in general services/architecture, potential security or performance issues.}

5 Contact

6 Funding

If you are interested in funding this feature, please add your name and institution to this list.

  • Universität Leipzig, C. Jobst

7 Discussion

Kunkel, Matthias [mkunkel]&Heyser, Björn [bheyser]&Neumann, Fred [fneumann], April 26, 2017: Today, we discussed this suggestion.

  • We would like to have the setting to activate the Lifecycle service on the settings page that should be presented after a pool is created (changed behaviour of question pool).
  • If the service is deactivated (confirmation message!), all lifecycle information will be deleted. This will avoid inconsistent lifecycle data. If the service is reactivated again, lifecycle information is started again with draft.
  • Concerning 'filter for inserting questions': we don't like this strict behaviour as described above and prefer to have a filter that can be modified manually and allow to add questions with other status, too (e. g. to present questions with 'review' status). Nevertheless, default options of the filter should be 'final' and 'distribute'. Random tests should only pick questions with 'final' and 'distribute' (a notification on the Questions screen is necessary to show this behaviour).

Workshop at June 23, 2017 with Heyser, Björn [bheyser], Neumann, Fred [fneumann] and Kunkel, Matthias [mkunkel]: In our VC meeting today we discussed the current concept for Introduction of Lifecycle Service and the comments made in and since the last Jour Fixe. We decided to postpone both requests for general services due to missing time for completing a sound concept and implementation, see comments in Introduction of Lifecycle Service. Instead, we would like to see a first version for versioning and lifecycle support in test questions. This could be a prototype for a general solution that fits to all content object types. Therefore, we merge the suggestions for lifecycle support and versioning support and make it one feature request to be discussed. The page has been renamed accordingly.

Kergomard, Stephan [skergomard], 2022 Mar 9: We close this as part of the cleaning up effort undertaken in the Splitting-Up Test & Assessment Workinggroup.

8 Implementation

{The maintainer has to give a description of the final implementation and add screenshots if possible.}

Test Cases

Test cases completed at {date} by {user}

  • {Test case number linked to Testrail} : {test case title}

Approval

Approved at {date} by {user}.

Last edited: 18. Oct 2024, 15:32, Kunkel, Matthias [mkunkel]