{% macro digitalmarketplaceQuestionListMultiquestion(params) %} {%- from "govuk_frontend_jinja/components/fieldset/macro.html" import govukFieldset -%} {%- from "govuk_frontend_jinja/components/button/macro.html" import govukButton -%} {%- from "govuk_frontend_jinja/components/error-message/macro.html" import govukErrorMessage -%} {%- from "govuk_frontend_jinja/components/details/macro.html" import govukDetails -%} {%- from "digitalmarketplace_frontend_jinja/components/question/macro.html" import digitalmarketplaceQuestion -%} {%- from "digitalmarketplace_frontend_jinja/components/question-hidden/macro.html" import digitalmarketplaceQuestionHidden -%} {%- from "digitalmarketplace_frontend_jinja/components/summary-content/macro.html" import digitalmarketplaceSummaryContent -%} {% macro questionListMultiquestion(params) %} {% set name = params.question.id %} {% if params.errors and params.errors[name] %} {% set errorMessage = { "text": params.errors[name]["message"] } %} {% endif %}
{% call govukFieldset({ "legend": { "text": params.question.question, "classes": 'govuk-fieldset__legend--m' }, "attributes": { 'data-module': "dm-question-list-multiquestion", 'data-max-number-of-items': params.question.number_of_items } }) %} {% if params.question.question_advice %}
{{ params.question.question_advice | safe }}
{% endif %} {% if errorMessage %} {{ govukErrorMessage({ "id": "input-" + name + "-error", "text": errorMessage.text }) | trim | indent(2) }} {% endif %} {% set column_width_to_number_for_wrap = { 'full': 1, 'one-half': 2, 'one-third': 3, 'one-quarter': 4 } %}
{% set column_width = params.question.column_width | default('one-half') %} {% for multi_question in params.question.questions %} {% if multi_question.questions -%}
{% call govukFieldset({ "legend": { "text": multi_question.question, "classes": 'govuk-fieldset__legend--m' } }) %} {% if multi_question.question_advice %}
{{ multi_question.question_advice | safe }}
{% endif %} {% for question in multi_question.questions %} {% set index = loop.index - 1 %} {% if index % column_width_to_number_for_wrap[column_width] == 0 %}
{% endif %}
{{ digitalmarketplaceQuestion({ "type": question.type, "question": question, "data": params.data, "errors": params.errors, "frameworkReusedFrom": params.frameworkReusedFrom, "list_multi_question_index": index }) }}
{% if index % column_width_to_number_for_wrap[column_width] == column_width_to_number_for_wrap[column_width] - 1 %}
{% endif %} {% endfor %} {% endcall %}
{%- endif %} {% endfor %}
{{ govukButton({ "html": 'Remove item 0', "classes": 'govuk-button--secondary dm-list-multiquestion__item-remove govuk-visually-hidden', "type": 'button' })}}
{{ govukButton({ "html": 'Add item (0 remaining)', "classes": 'govuk-button--secondary dm-list-multiquestion__item-add govuk-visually-hidden', "type": 'button' })}}
{% endcall %}
{% endmacro %} {% macro questionListMultiquestionServerSide(params) %} {% set name = params.question.id %} {% if params.errors and params.errors[name] %} {% set errorMessage = { "text": params.errors[name]["message"] } %} {% endif %}
{% call govukFieldset({ "legend": { "text": params.question.question, "classes": 'govuk-fieldset__legend--m' } }) %} {% if params.question.question_advice %}
{{ params.question.question_advice | safe }}
{% endif %} {% if errorMessage %} {{ govukErrorMessage({ "id": "input-" + name + "-error", "text": errorMessage.text }) | trim | indent(2) }} {% endif %} {% set number_of_items_added = (params.get('data', {}).get(params.question.id) or []) | length %} {% if number_of_items_added > 0 %}
{% for index in range(0, number_of_items_added)%} {% set multi_question = params.question.questions[index] %} {% if multi_question.questions -%}
{% call govukDetails({ "summaryText": multi_question.question }) %} {% for question in multi_question.questions %}

{{ question.name if question.name else question.question }}

{{ digitalmarketplaceSummaryContent({ "type": question.type, "value": params.data[params.question.id][index][question.id.split('-')[0]] }) }}
{% endfor %} {% endcall%}
{{ govukButton({ "html": 'Edit item {}'.format(index + 1), "classes": 'govuk-button--secondary dm-list-multiquestion__item-edit', "href": url_for(params.server_side_options.add_endpoint, item_number=index, question_id=params.question.id, **params.server_side_options.endpoint_values) })}} {% if number_of_items_added > 1 %} {{ govukButton({ "html": 'Remove item {}'.format(index + 1), "classes": 'govuk-button--warning dm-list-multiquestion__item-remove', "href": url_for(params.server_side_options.remove_endpoint, item_number=index, question_id=params.question.id, **params.server_side_options.endpoint_values) }) }} {% endif %}

{%- endif %} {% endfor %} {{ digitalmarketplaceQuestionHidden({ "type": 'list_multiquestion', "question": params.question, "data": params.data }) }}
{% endif %} {% if number_of_items_added < params.question.number_of_items %}
{{ govukButton({ "html": 'Add item ({} remaining)'.format(params.question.number_of_items - number_of_items_added), "classes": 'govuk-button--secondary dm-list-multiquestion__item-add', "href": url_for(params.server_side_options.add_endpoint, item_number=number_of_items_added, question_id=params.question.id, **params.server_side_options.endpoint_values) })}}
{% endif %} {% endcall %}
{% endmacro %} {% if params.question.questions -%} {% if params.server_side_options %} {{ questionListMultiquestionServerSide(params) }} {% else %} {{ questionListMultiquestion(params) }} {% endif %} {%- endif %} {% endmacro %}