{# # One or zero ModelForm with one or multiple one to many related inline formsets #} {% from 'bs_form_body.htm' import bs_form_body with context -%} {% macro bs_inline_formsets(related_form, formsets, action, html) -%} {% if formsets|get_type != 'list' -%} {{ raise('"formsets" argument should be the list of formsets') }} {% endif -%} {% set wrapper_atts = { 'class': 'formsets panel panel-default default-padding' } -%} {% if not html.layout_classes -%} {% do html.update({'layout_classes': layout_classes}) -%} {% endif -%} {% if html.class -%} {% do tpl.add_css_classes_to_dict(wrapper_atts, html.class) -%} {% endif -%} {% if action == '' -%} {% do tpl.add_css_classes_to_dict(wrapper_atts, 'display-only') -%} {% endif -%} {% set table_classes = 'table table-bordered table-responsive' -%} {% if html.title is defined -%}

{{ html.title }}

{% endif -%} {% if action != '' -%} {% if html.is_ajax -%} {% set atts = {'data-url': action, 'class': 'ajax-form'} -%} {% else -%} {% set atts = {'action': action} -%} {% endif -%} {% do atts.update({ 'method': 'post', 'enctype': "multipart/form-data", 'role': 'form' }) -%} {% endif -%} {% if related_form -%}
{% if action == '' -%} {# DisplayText fields use tr/td #} {% endif -%} {% if caller -%} {{ caller({'related_form_begin': related_form, 'html': html}) }} {% endif -%} {{ bs_form_body(related_form, html.layout_classes) }} {% if caller -%} {{ caller({'related_form_end': related_form, 'html': html}) }} {% endif -%} {% if action == '' -%}
{% endif -%}
{% endif -%} {% for formset in formsets -%} {% if formset.inline_title is defined -%} {% do html.update({'inline_title': formset.inline_title}) -%} {% else -%} {% do html.update({'inline_title': formset.model._meta.verbose_name}) -%} {% endif -%} {% if caller -%} {{ caller({'formset_begin': formset, 'html': html}) }} {% endif -%}
{{ formset.management_form }}
{% if formset.total_error_count() -%}
{% for error in formset.errors -%}
{{ error }}
{% endfor -%}
{% endif -%} {% if action == '' -%} {% endif -%} {% for form in formset -%} {% if caller -%} {{ caller({'inline_form_begin': form, 'html': html}) }} {% endif -%} {% set formset_index = loop.index0 -%} {% if formset.can_delete -%} {% if formset_index < formset.min_num -%} {% do html.update({'formset_form_class': 'form-required'}) -%} {% else -%} {% do html.update({'formset_form_class': 'form-optional'}) -%} {% endif -%} {% endif -%} {% include 'bs_formset_form.htm' -%} {% if caller -%} {{ caller({'inline_form_end': form, 'html': html}) }} {% endif -%} {% endfor -%} {% if action == '' -%}
{% endif -%} {% if formset.knockout_template -%}
{% endif -%}
{% if caller -%} {{ caller({'formset_end': formset, 'html': html}) }} {% endif -%} {% endfor -%} {% if html.submit_text is defined -%} {% endif -%} {% if caller -%} {{ caller({'buttons': True}) }} {% endif -%} {% if action != '' -%} {% endif -%} {% for formset in formsets -%} {% if formset.knockout_template -%} {% endif -%} {% endfor -%} {% endmacro -%} {% if _render_ -%} {% call(kwargs) bs_inline_formsets(form, formsets, action, html) -%} {% endcall -%} {% endif -%}