Feature Wiki

Information about planned and released features

Tabs

Adaptive Learning Paths: Input Conditions

1 Initial Problem

An adaptive Learning Sequence must be able to decide whether an object may be entered by a learner. Without Input Conditions, every object would either be reachable linearly or would have to be controlled outside the Learning Sequence. This prevents flexible learning paths with branches, prerequisites, point thresholds or logical combinations.

2 Conceptual Summary

Input Conditions define which prerequisites must be fulfilled before an object may be entered. They are created on the target object. During navigation, the Learning Sequence checks whether the conditions for this target object are fulfilled.

The implemented Input Conditions are:

  • Learning Progress Input: Checks the learning progress of another selected object. Supported variants are Not Attempted, In Progress, Completed and Failed.
  • Points Input: Checks whether at least a configured score has been reached through selected source objects. The source objects must provide matching Points Output Conditions.
  • Subset Input: Checks whether at least a configured number from a selected set of source objects has been completed. This condition evaluates LP Completed on the selected source objects.
  • Logic Gate Input: Logically combines several referenced conditions or objects. AND, OR and NOT are supported. When source objects are evaluated, this is based on LP Completed.

Input Conditions not only control the release of an object, but also shape adaptive navigation. Some conditions form direct edges between objects, while others describe dependencies on several sources.

3 User Interface Modifications

3.1 List of Affected Views

  • Learning Sequence > Content > Manage
  • Condition drilldown for adding input conditions
  • Misconfiguration badges and popovers
  • Player navigation in Adaptive Mode

3.2 User Interface Details

Input Conditions are created in adaptive content management through the action "Conditions" of an object. The condition belongs to the object that is to be entered.

When adding a condition, a drilldown with the available Input Conditions opens. Conditions with subtypes, such as Learning Progress or Logic Gate, show their variants as subentries.

S1: Select action "Condition" to get directed to Conditions Table of the specific object.
S2: With "Add Condition" Button you can add a condition to the specific object.
S3: Selecting Input Conditions.
S4: All LP states as Input Conditions.
S5: Logic based Input Conditions.

Many Input Conditions require configuration:

  • Learning Progress Input: selection of the referenced object and selection of the learning progress status.
  • Points Input: selection of one or more source objects and entry of the required score.
  • Subset Input: selection of several source objects and entry of how many of them must be completed.
  • Logic Gate Input: selection of the logical variant and the related sources.
S6: Screen after adding a condition. With "Select" you can select the required object.
S7: Tree for selecting objects.

Adaptive content management displays misconfigurations with badges and popovers. This makes it visible when conditions point to deleted objects or objects no longer present in the Learning Sequence, or when a Points Input Condition lacks a matching Points Output Condition.

S8: Badges and misconfiguration popover. More details in Adaptive Learning Paths: Misconfiguration Badge for Adaptive Learning Sequences.

In addition to normal condition configuration, Input Conditions use additional quality information:

  • static misconfiguration detection,
  • badges on affected objects,
  • popovers with detailed information,
  • filters by Input Conditions.

This information helps check adaptive paths already in management before learners encounter blocked or unreachable paths in the Player.

3.3 New User Interface Concepts

No new UI concepts.

3.4 Accessibility Implications

The display must explain misconfigurations textually. Badges must not be the only source of information. Popover content should contain clear titles, descriptions and referenced object lists so that it is also understandable with assistive technologies.

4 Additional Information

4.1 Involved Authorities

4.2 Technical Aspects

Input Conditions are discovered automatically and registered in lso_condition_types. Each created condition receives an entry in lso_conditions; additional configuration data is stored in condition-specific tables.

Examples of condition-specific tables:

  • Learning Progress Input: lso_c_learning_progress_input
  • Points Input: lso_c_points_input and lso_c_points_input_items
  • Subset Input: lso_c_subset and lso_c_subset_items
  • Logic Gate Input: lso_c_logic_gate_input and lso_c_logic_gate_items

For adaptive navigation, certain Input Conditions implement a navigation-aware interface. It distinguishes, among other things:

  • Edge: The condition describes a direct relationship to a referenced object.
  • Dependency: The condition depends on several source objects or values.
  • Global: Intended for global conditions if a condition cannot be reduced to concrete sources.

Static misconfiguration detection collects issues from the Input Conditions, merges details and marks affected objects in the table. It is especially important that a condition can mark not only its own object as faulty, but also referenced source objects if a required counterpart condition is missing there.

4.3 Privacy

Input Conditions can evaluate learning progress and derived values such as achieved points. No new categories of personal data are introduced.

4.4 Security

No special security-relevant changes. Referenced objects are checked through existing object and reference IDs; missing or invalid references are treated as misconfigurations.

4.5 Contact

Person to be contacted in case of questions about the feature or for funding offers: Auerbach, Jeanine [jeanine.auerbach]

4.6 Funding

Funding status and funding parties are listed in the block 'Status of Feature' in the right column of this page.

If you are interested to give funding for this feature, please get into contact with the person mentioned above as 'Contact'.

5 Discussion

Kunkel, Matthias [mkunkel], 28 SEP 2026: Thank you for this feature request. I have some questions:

  1. Chap. 2, Logic Gate Input: does "Logically combines several referenced conditions ..." mean e.g. that I combine points/score and completion status of one selected object? If I understand the combination of objects correctly, an input condition would be the completion of two or more selected objects (when using AND) or the completion of one of a group of objects (when using OR), right?
  2. Chap. 2: Wouldn't it be possible to go straight to the 3rd mockup when clicking on "Logic Gate" in the 1st mockup? This "underworld" screen inserted in between (2nd mockup) is ugly and irritating.
  3. Chap. 2, 3rd mockup: what happens when I click on the + of one of the presented objects? And why is "Select" not placed before "Close" (IMHO it is a "Save" action, right?)
  4. Chap. 2: Is there a screen that shows all input conditions that has been configured?
  5. Chap. 3.3: Unfortunately, I do not understand the text in this chapter. Are new UI elements needed to implement this FR? Or are you using existing ones from the Kitchen Sink?

Auerbach, Jeanine [jeanine.auerbach], 30 SEP 2026:

  1. It is based on LP completed. This means for example "Object A AND Object B" results in "Object A must have LP status complete AND Object B must have LP status complete". Hope that explains it better.
  2. I added some mockups. Can you please asked your question again with mentioning the right mockups, so we don't misunderstand each other?
  3. Clicking on + adds the object to the list and the + turns into a checkmark. We're using the KitchenSink element "Tree Multi Select" from Input > Field where the examples all have the button "Close" before "Select". Same with the label for the Select button.
  4. Yeah. The mockup where the "Add Condition" Button is highlighted there is a table underneath where all Input Conditions made for the specific object are shown.
  5. Thanks for the hint! We do not use new UI concepts, so I put that part in 3.2.

Kunkel, Matthias [mkunkel], 30 SEP 2026: Thanks for your feedback and the answers. I have added numbers to the screenshots to ease their identifcation

  • ad question 2: I am talking about screenshot S6. Is this screen necessary? Wouldn't it be possible to trigger the tree to select objecs (screenshot S7) already when clicking on AND, OR or NOT in screenshot 5?

Auerbach, Jeanine [jeanine.auerbach], 02 OCT 2026: Even if it were possible, it wouldn't be a good idea; you shouldn't open one modal from within another. Furthermore, it would be inconsistent—both in terms of UX and programming—to sometimes open a configuration page and sometimes not. And besides, the first KS element—where you select "AND," for example—can only contain links or buttons.

JourFixe, ILIAS [jourfixe], 19 OCT 2026: We highly appreciate this suggestion and accept the feature for trunk.

6 Implementation

Feature has been implemented by {Please add related profile link of this person}

6.1 Description and Screenshots

{ Description of the final implementation and screenshots if possible. }

6.2 Test Cases

Test cases completed at {date} by {user}

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

6.3 Privacy

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

6.4 Approval

Approved at 21 OCT 2026 by Vorkauf, Klaus [KlausVorkauf].

Last edited: 21. Oct 2026, 11:39, Vorkauf, Klaus [KlausVorkauf]