| 1 | = Brainstorm on MOLGENIS settings = |
| 2 | |
| 3 | I was thinking on something like this: |
| 4 | |
| 5 | As an administrator I want to have a user interface that lists all possible options and allows me to change their settings. |
| 6 | As an administrator I want to add new user options. |
| 7 | As a user I want to keep my settings between user settings. (e.g. filters on forms). |
| 8 | |
| 9 | The basic data structure may be: |
| 10 | |
| 11 | <entity name="MolgenisOption" implements="Identifiable,Nameable"> |
| 12 | <description>Options that one can set on a MOLGENIS system (open ended). E.g. 'db_user', 'db_password', ". But in the future also more fancy settings like 'ui_theme'.</description> |
| 13 | <field name="Description" nillable="true"/> |
| 14 | <field name="adminOnly" type="boolean" default="true"/> |
| 15 | </entity> |
| 16 | |
| 17 | <entity name="MolgenisSettings" implements="Identifiable"> |
| 18 | <description>Values that have been set on the options. Can be global or user specific</description> |
| 19 | <field name="option" type="xref" xref_entity="MolgenisOption" description="Setting is for this option"/> |
| 20 | <field name="user" type="xref" nillable="true" xref_entity="MolgenisUser" description="This setting is specific for this user. If null this is a global setting."/> |
| 21 | <field name="value"/> |
| 22 | </entity> |
| 23 | |
| 24 | N.B. |
| 25 | Actually what we need is almost like a 'Measurement' and 'ObservedValue' ;-) |
| 26 | Because setting an option is almost like applying a protocol? |
| 27 | And each protocol would be a screen in the admin panel? |
| 28 | Seems we may need to make them extend from a more general interface ;-) |