Feature Wiki
Tabs
Enrolment Object
Page Overview
[Hide]Next Workshop: https://doodle.com/poll/bcpvcawb8iqixa8k
Please add your use cases: -> 2.2 Use Cases
1 Initial Problem
In several cases it should be possible to allow self registration to an ILIAS object AND it should be possible to check this self registration by different responsible. ILIAS Object with not self registrations like Organisational Units should also have the posibility to use a registration processes.
In corporate context there are often more than one responsible for checking a single registration e.g. superior > superior of superior > HR > Course Administration
In educational context a registration to a module is a registration to several courses simultaneously.
2 Conceptual Summary
The Enrolment can be combined with ILIAS Objects like Courses, Study Programs, Organisational Units but the object works also in a standalone aproach. In combination with the Catalogue Object it has an outstanding functionality.
We have conceptet this object in several iterations. And now we consider most of the use cases of the User Defaults Plugin: https://git.studer-raimann.ch/ILIAS/Plugins/UserDefaults; many use cases of our corporate customoers and many uses cases we know from managing further education.
We think the most important step ist the sequencing approach for visualize the steps from one status to an other status. We hope that with this approach it is possible to use this object without knowledge in process modeling.
2.1 New Centralized Service
With this object and the Catalogue object we would like to introduce a new service for the rule evaluation: https://github.com/ILIAS-eLearning/ILIAS/blob/c0ffbbed2293143facd6279511e28b5b5549175a/src/RuleEngine/README.md
2.2 Use Cases
Please add your use cases here!
Tödt, Alexandra [atoedt] 2019-06-11:
- User that select certain entries in Custom User Data Fields get a local role (Courses, org Units) according to their Custom User Data Fields.
- User that select certain entries in Custom User Data Fields get on the waiting list to get a local role (Courses, org Units) according to their Custom User Data Fields.
- Users are presented with a survey and are assigned to local roles according to the results of the survey
Strassner, Denis [dstrassner] 2019-06-14:
- With this object, we would automate our allocation of students to certain exam cyles and rooms. Students are enrolled in the respective course of their exam cycle. Then ILIAS informs them about the allocation, the respective time and the respective room.
Wessels, Karin [karin.wessels] 2019-06-25
In business companies there are numerous processes of approving. They differ in the number of involved approvers and also in the kind of relationship between applicant and approver(s).
A recurring demand of companies deals with the problem of deputies. Deputies of supervisors also need access to the requests so that he/she can also give the required approval.
Furthermore, the whole process is not only about starting an application but also about cancelling an application when the approval process has already started.
Here are the use cases:
- Employee registers/applies for a training, registration has to pass 2 or more superiors in his organizational unit (deputies of these superiors should be able to approve as welll)
- Employee registers for a training, registration has to be confirmed by someone of another organizational unit (e.g. work council)
- Employee registers for a training, registration requires the upload of a certificate/document/letter of reference etc., confirmation requires review and acceptance of qualification by one or more superiors, persons of other organizational unit or an administrator (or their deputies)
- Employee has registered for a training and wants to cancel his request (while approval process has already started or request has been approved) - for the defined approvers (superiors and deputies) the former request should not be visible anymore
2.3 Previous Versions
![](./data/docu/mobs/mm_63510/Screen_Shot_2018-09-04_at_13.45.49.jpg?il_wac_token=cf78282e8c2ff540bee9e2597581656c8860154d&il_wac_ttl=5&il_wac_ts=1725755424)
![](./data/docu/mobs/mm_63512/conditionsets.png?il_wac_token=cf78282e8c2ff540bee9e2597581656c8860154d&il_wac_ttl=5&il_wac_ts=1725755424)
![](./data/docu/mobs/mm_63514/create_conditionset.png?il_wac_token=cf78282e8c2ff540bee9e2597581656c8860154d&il_wac_ttl=5&il_wac_ts=1725755424)
![](./data/docu/mobs/mm_63515/table_conditions.png?il_wac_token=cf78282e8c2ff540bee9e2597581656c8860154d&il_wac_ttl=5&il_wac_ts=1725755424)
![](./data/docu/mobs/mm_63516/add_condition.png?il_wac_token=cf78282e8c2ff540bee9e2597581656c8860154d&il_wac_ttl=5&il_wac_ts=1725755424)
![](./data/docu/mobs/mm_63517/table_events.png?il_wac_token=cf78282e8c2ff540bee9e2597581656c8860154d&il_wac_ttl=5&il_wac_ts=1725755424)
![](./data/docu/mobs/mm_63518/add_event_1_.png?il_wac_token=cf78282e8c2ff540bee9e2597581656c8860154d&il_wac_ttl=5&il_wac_ts=1725755424)
View Nr 1.:
Additional button in the administration tab, which refers to the Automated Enrollment.
View Nr.2:
- A new page where the automated enrollment settings start. The view includes a table and a button. The button "add conditionset" directs to View Nr.3.
- In the table there is a dropdown button with a few options.
- "Activate" activates the conditionset
- "Deactivate" deactivates the conditionset
- "Copy" creates a copy of the conditionset
- "Conditions" is a link to View Nr. 4. Where it is possible to add conditions to the conditionset
- "Events" is a link to View Nr. 6. Where it is possible to add events which trigger the conditionset
- "Delete" deletes the conditionset.
This view is a form that can create new conditionsets, there are only two inputs needed.
- A title -> text input
- A condition if the conditionset is active or not -> checkbox
This view is similiar to View Nr. 2. It also includes a table and a button above the table.
- The button "add condition" redirects to View Nr. 4 where we can add a new condition
- The table consists of five columns. (type, field value, negation, operator)
This view is similar to View Nr. 3. It is a form where we can add new conditions. The following inputs are needed:
- type: RadioInputGUI
- field: InputGUI with multiple options, this is a new UI element. We have a similiar one in one of our plugins. (vgl. CtrlMainMenu)
- value: TextInputGUI
- operator: Dropdown or Option field
- negate: Checkbox
This view is a table and a button above the table.
- The button "add event" redirects to View Nr.7 where we can add a new event
- The consitst of four columns(type, courses, role, unsubscribe)
View Nr.7
Here we can add events. We have the following UI elements:
- type: RadioInputGUI
- Courses: InputGUI with multiple options, this is a new UI element. We have a similiar one in one of our plugins. (vgl. CtrlMainMenu)
- Role: Dropdown
- Unsubscribe if conditions do not match: Checkbox
We need to introduce a new UI element which we already referred to. The UI element consists of an InputGUI where we can select not just one, but multiple options from the selection. We have something very similiar in a plugin of ours (https://git.studer-raimann.ch/ILIAS/Plugins/CtrlMainMenu). Under the settings -> restricted to role, you see the UI element we would like to implement.
Discussion
Jackisch, Ingo [jackisch] 2018-11-16: Since we very much rely on UserDefauls to automate Processes in ILIAS, I absolutely like the Idea to have some functionality of the plugin in Core ILIAS. Some suggestions for the structure of the feature:
- We could consider two tabs on the feature screen, one to manage the condition sets and one to manage eventsets. Thus we could create an option to re-use configured elements (e.g. Conditionset 1 triggers Events a and b, or Event c ist triggered by Conditionset 1 and 2)
- The admin interface should give a complete view and management of the enrolments. Additionally we shoud develop interfaces on Object-level (e.g. Course, Group,...), where users with appropriate rights are able to configure enrolment for objects they manage. Maybe we need several steps (means ILIAS versions) to finalize that.
- We need to define/configure the way ILIAS processes the conditionsets, like UserDefault does ("On creation, on update, on login of a user account", manually triggered, maybe additionally a cronjob)
- Whenever we present a list of configurable options (conditionsets, eventsets) we should have checkboxes and the possibility to do some actions (activate, deactivate, delete, copy) multiple items simultaneously
- I would title the "Typ"-Field in the conditions as a "source". Since ILIAS differentiates between Stadard user Datafields and self defined UDFs, both sources should be available. As a new option, I would like to see a rola-membership as a condition source (as well as a target in the event-list, but in some cases we have to avoid circular references here).
- In the event-configuration, at least courses and groups need an option to be placed on User's desktop (or not).
3 User Interface Modifications
3.1 List of Affected Views
3.1.2 Advanced Usages e.g. for corporate users
3.2 User Interface Details
3.3 New User Interface Concepts
4 Technical Information
We have dependencies on quite a few components, including but not limited to:
- User
- Course
- Group
- Organizational Unit
5 Contact
- Author of the Request: Martin Studer, sr.solutions
- 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.}
6 Funding
If you are interest in funding this feature, please add your name and institution to this list.
- DHBW
7 Discussion
Kiegel, Colin [kiegel] 2019-05-09 I like the generic approach. But why a repository object? These enrollment workflows have "global side effects", IMO it should be a global feature.
Studer, Martin [mstuder] 2019-05-13 ...because there are many use cases for enrolments with no global use cases. e.g.
- Enrol to a further education which contains serveral sub courses. e.g. CAS Evaluation
- 1 Grundlagen der Evaluation 23. - 24.02.2019
- Planung von Evaluationen 23. - 24.03.2019
- Wirkungsmodelle und Programmtheorien 26. - 28.04.2019
With the enrolment object a furher education resonsible could create an enrolment possibility for those courses.
- Enrolments with no further enrolment to ILIAS objects. e.g.
- ... for exams. With the enrolment object it would be possible to configure an exam registration.
- ... for conferences.
- ...
Tödt, Alexandra [atoedt] @service vs. object: Several services apply only to specific SCOPES. The scope of the service can be set to apply only to certain subtrees i.e. Setting Scopes helps to define boundaries within which a service is apllied, while other parts of the repsoitory are not affected by the service.
Killing, Alexander [alex], 14 May 2019: Looking at the "sequence settings" mockup, this seems to be mainly a workflow engine (Verification of process status, Determine the authority of users, Execute Task), right? How would this relate to the existing one in ILIAS? Could this work together (maybe on the base of the envisaged API alignment)?
Workshop 22.05.2019, Studer, Martin [mstuder]:
- We had a long discussion about should this feature be a ILIAS Object or a "Service" like comptences placed in the ILIAS Aministration. There are several use cases (decentralized college) for implent this as an ILIAS Object. But the configurable Worfklows seems to be to complicated for a normal ILIAS user. Therefore this should placed in the ILIAS Administration.
- The Workflow Element (https://test54.ilias.de/goto_test54_stys_21_ListingWorkflowLinearLinear_default_delos.html) is linear. But the workflows here a also non linear.
- The implementation should of this feature and the implementation of the workflow engine should benefit each other.
- We should collect further use cases together. -> 2.2 Use Cases
Workshop 14.06.2019, Studer, Martin [mstuder]
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: 15. Dec 2021, 09:09, Schmid, Fabian [fschmid]