Feature Wiki

Information about planned and released features

Tabs

Revision of ILIAS Test Question Creation Process

If you need any help in filling out this wiki page, please visit our ILIAS Community FAQ. And please complete the metadata information in the right column after having created the page.

1 Initial Problem

Currently, for every one of the 15 question types in the ILIAS core, the creation works differently in sometimes very subtle ways. This is the product of the long history of the Test & Assessment. Some questions types are older than others. Features have been added over time and changing paradigms have never been backported to existing questions.

This culminates in many problems:

  • Not every form is reachable by keyboard.
  • The inputs must be sanitized individiually and often this goes wrong (I look at you --> Cloze Question).
  • We have 3 different editor options: Unformatted input field, TinyMCE and IPE.
  • We have different ways to integrate pictures into answer-options.
  • aso.

Maintaining this is nearly impossible.

Additionally the coupling of the Test- and the TestQuestionPool-Components and the questions themselves is far to strong, requiring changes in many places for every improvement and creating doubt about the places where the actual "source of truth" is. This makes it currently impossible to implement specialised Components for different use cases, e.g. a Quiz-Component for formative assessments or an Exams-Component to only run exams, leading to a Test-Component that is over complex and conducive to configuration- and other errors.

Finally all forms in the test are still based on the unmaintained Legacy-Forms and are getting harder and harder to keep in synch with the look and feel of the rest of ILIAS. We won't be able to change this in one fell swoop, but we would like to start this process by moving the creation- and edit-forms of the questions to UI-Forms.

2 Conceptual Summary

The following changes are proposed:

  • Questions are moved to their own Component called Questions. The questions in this component are modular, i.e. they can have points for answers or not, they can have feedbacks or not. They will in this way be designed to make them usable across multiple scenarios.
  • The creation- and edit-forms of the questions will be moved to UI-Forms. If new Inputs are needed to achieve this, they will be implemented and coordinated with the UI-Coordinators.
  • The way to edit questions will be unified, replacing the three different editors by a single one per use case. The ILIAS Page Editor will be used to create the question itself and to input the question-text. For all other inputs Markdown will be used. The current input field "Question" will be removed from the create/edit form. Current data will be frozen and kept for the foreseeable future, i.e. it will be displayed as long as no changes are required, but will need to be moved to the new implementation to be updated.
  • Clicking on the title of a question in a list of questions will enable the question-editing-mode.
    • The Main Bar will be emptied and will only present two buttons:
      • A first one "List of Questions" toggeling a list of questions in the slate.
      • A second button labeled "Create question" showing a minimal form to create a question in the slate containing
        • a text-field "Title",
        • a dropdown to select the question type,
        • a text-field to enter the author prefilled with the name of the current user,
        • a dropdown to select the lifecycle set to "Draft",
        • and a textarea "Remarks", containing the information currently in the text-field labeled "Description".
      • The option to directly add a question to a pool when creating it in a test will be removed. The option to select the editor will be unnecessary. Creating a question will open the edit-view of the ILIAS Page Editor. The Main Bar stays as it is.
    • Clicking on the question titles in the list in the slate will let you move from one question to the other. The main content will contain a primary button "Edit Question Page" that will open the question-page for editing (analogous to the current button "Edit Page"), a button "Edit Feedback", a button "Edit Content for Recaptiulation", and a button "Show Statistics". The button "Edit Question" will be removed. No Tabs will be shown. Below the buttons the form to edit the basic properties of the form, will be shown directly containing the same fields as the form to create a question. The input to select the question type will be disabled, but still shown. Underneath the form the question will be previewed in a panel. The action to reset the preview will be added to the panel.
    • When you open the question edit view, the feedback, the content for recapitulation, or the statistics the tabs only contain a back-link. This link always leads back to whence you came, so if you are accessing these views directly from a list of  questions it will bring you back to this list, if you opened them from the preview page, you are brought back to the preview page. You can always close the mode-view to get back to the list of questions.
    • On all these pages the Main Bar always contains the buttons to toggle the list of questions, to edit the question properties, and to show the create form and nothing else.
  • Creating/Editing a question will always start in the ILIAS Page Editor. Inserting the answer-options and configuring them will be similar as it currently is in the Learning Module.

Additional Changes:

  • We suggest to move the ids of questions to UUIDs, this would allow to identify questions more or less uniquely accross platform.

3 User Interface Modifications

3.1 List of Affected Views

  • … { Please list titles of all views (screens) of ILIAS that should be modified, newly introduced or removed. }

3.2 User Interface Details

{ For each of these views please list all user interface elements that should be modified, added or removed. Please provide the textual appearance of the UI elements and their interactive behaviour. }

3.3 New User Interface Concepts

  • We would like to expand the KS-Forms with the option to add multiple buttons, defining the action happening after the form hast been saved. This would hugely improve the user experience e.g. for creating questions as it would allow to add an action "Save and Create new" and it would allow to keep the current behavior that allows for questions being saved with a return to the question page or staying on the edit form.

3.4 Accessibility Implications

{ If the proposal contains potential accessibility issues that are neither covered by existing UI components nor clarified by guidelines, please list them here. For every potential issue please either propose a solution or write down a short risk assessment about potential fallout if there would be no solution for the issue. }

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 Privacy

{ Please list all personal data that will need to be stored or processed to implement this feature. For each date give a short explanation why it is necessary to use that date. }

6 Security

{ Does the feature include any special security relevant changes, e.g. the introducion of new endpoints or other new possible attack vectors. If yes, please explain these implications and include a commitment to deliver a written security concept as part of the feature development. This concept will need an additional approvement by the JourFixe. }

7 Contact

  • Author of the Request: {Please add your name.}
  • Maintainer: {Please add your name before applying for an initial workshop or a Jour Fixe meeting.}
  • Implementation of the feature is done by: {The maintainer must add the name of the implementing developer.}

8 Funding

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

9 Discussion

10 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}

Privacy

Information in privacy.md of component: updated on {date} by {user} | no change required

Approval

Approved at {date} by {user}.

Last edited: 12. Aug 2025, 17:30, Kergomard, Stephan [skergomard]