Question Configuration ====================== Contains the configuration of a question. The configuration of a Question is only part of the :doc:`/configuration/questionnaire`. .. seealso:: :class:`configuration.configuration.QuestionnaireQuestion` +-----------------+----------------------------------------------------+ | Parent element: | :doc:`/configuration/questiongroup` | +-----------------+----------------------------------------------------+ | Child element: | :doc:`/configuration/key` | +-----------------+----------------------------------------------------+ Format ------ The basic format of the configuration is as follows:: { # The keyword of the key of the question. "keyword": "KEY", # (optional) "view_options": { # Default: "default" "template": "TEMPLATE_NAME", # Default: "" "label_position": "", # Default: "h5" "label_tag": "h5", # Default: "" "layout": "stacked", # Default: false "with_raw_values": true, # Default: false "in_list": true, # Default: false "is_name": true, }, # (optional) "form_options": { # Default: "default" "template": "TEMPLATE_NAME", # Default: None "max_length": 500, # Default: 3 "num_rows": 5, # Default: "" "helptext_position": "tooltip", # Default: "" "label_position": "placeholder", # Default: false "conditional": true, # Default: [] "questiongroup_conditions": [], }, # (optional) "filter_options": { "order": 1 } } .. seealso:: For more information on the configuration of its child elements, please refer to their respective documentation: * :doc:`/configuration/key` * :doc:`/configuration/value` Also refer to the :ref:`configuration_questionnaire_example` of a Questionnaire configuration. ``keyword`` ^^^^^^^^^^^ The keyword of the key of this question. ``view_options`` ^^^^^^^^^^^^^^^^ (Optional). An optional object containing configuration options for the view representation of the question. * ``template``: An optional template name. Must be a valid file name with ``.html`` ending in folder ``templates/details/question/``. * ``label_position`` (str): An optional indication for the label placement. Possible values are: ``none`` (no label displayed). * ``label_tag`` (str): Specifies the HTML tag used for the label (eg. ``h3``). By default, the tag ``
`` is used. * ``layout`` (str): Additional indications used for the layout of the question. Known values are ``stacked`` for stacked measure bars. * ``with_raw_values`` (bool): Allows to also add the raw values (the keywords) to the list of values. This works for field types "checkbox", "cb_bool" and "radio". Defaults to ``false``. * ``in_list``: An optional boolean indicating whether this question should appear in the list representation of questionnaires or not. Defaults to ``False``, meaning that this question is not shown in the list. * ``is_name``: An optional boolean indicating whether this question represents the name of the entire Questionnaire. .. important:: Only one question of the entire Questionnaire can have this flag. If the key is inside a repeating questiongroup, only the first appearance of the key will be used as name. * ``filter``: An optional boolean indicating whether this question is filterable or not. If set to ``True``, the question will appear in the filter dropdown. ``form_options`` ^^^^^^^^^^^^^^^^ (Optional). An optional object containing configuration options for the form representation of the question. * ``template``: An optional template name. Must be a valid file name with ``.html`` ending in folder ``templates/form/question/``. * ``max_length``: An optional integer to specify the maximum length of characters for this value. Renders as a validator for text fields. This is only meaningful for key types ``char`` (default value: 200) and ``text`` (default value: 500). * ``num_rows``: An optional integer to define the number of rows to be shown for textarea fields. This is only meaningful for key type ``text``. The default is 3. * ``row_class`` (str): CSS class name added to the ``
`` element containing both the label and the field. * ``label_columns_class`` (str): CSS class name added to the ``
`` element containing the label. * ``field_columns_class`` (str). CSS class name added to the ``
`` element containing the field. * ``helptext_position``: An optional name for the placement of helptext related to the question. Possible values are ``tooltip`` (showing the helptext as a tooltip on the question label) * ``helptext_length`` (int): Overwrite the default length (number of words) of the helptext shown initially (without the "See more" button). * ``label_position``: An optional name for the display and positioning of the label. Possible values are: ``placeholder`` (showing the label as a placeholder inside the input field) * ``has_other`` (str): A name to be used by questions with key type "radio" to indicate that there is an additional option "other" with a textfield to specify. The name must be unique and must be the same as used by ``other_radio`` of the other radio key. * ``other_radio`` (str): A name to be used by the char key which acts as "other" radio button. Must be unique and match the name specified in ``has_other`` of the radio key and must be unique. * ``field_options`` (dict): A dictionary containing options which are directly passed as attributes to the input field. This is currently only used for types ``int`` and ``float`` and allows for example to directly set the minimum or maximum values of the field. Example:: { "field_options": { "min": 1900, "max": "now" } } Please note that "now" is a special keyword and should only used with type ``int``. This will be converted to the current year. For ``float`` values, there exists an additional ``field_option`` named ``decimals`` which is an integer specifying the number of decimal places in the output (details). * ``question_conditions`` (list): An optional list of conditions triggering conditional questions within the same questiongroup. Each condition must have the format ``"expresssion|condition_name"`` where ``expression`` is part of a valid (Python and Javascript!) boolean expression and ``condition_name`` is the name of a Question's ``question_condition`` option. * ``question_condition`` (str): The name of the condition to be triggered (as specified in ``question_conditions``). Must be unique throughout the configuration. * ``questiongroup_conditions``: An optional list of conditions triggering conditional questiongroups. Each condition must have the format ``"expresssion|condition_name"`` where ``expression`` is part of a valid (Python and Javascript!) boolean expression and ``condition_name`` is the name of a Questiongroup's ``questiongroup_condition`` option. Example:: "questiongroup_conditions": [">1|questiongroup_17", "<3|questiongroup_17"] .. seealso:: :doc:`/configuration/questiongroup`