CIMAC-CIDC/cidc-schemas

View on GitHub
docs/templates/template.j2

Summary

Maintainability
Test Coverage
{% import "macros.j2" as macros %}
{% extends "base.j2" %}

{% macro worksheet_tables(name, schema, required) -%}
    {% set pyname = name.replace(" ", "_") %}

    <div class="accordion" id="{{ pyname }}_accordion">
        <div class="card">
            <div class="card-header" id="{{ pyname }}">
                <h2 class="mb-0">
                    <button class="btn btn-link" type="button" data-toggle="collapse" data-target="#{{ pyname }}_card" aria-expanded="false" aria-controls="{{ pyname }}_card">
                        Worksheet - {{ name }}
                    </button>
                </h2>
            </div>
            <div id="{{ pyname }}_card" class="collapse" aria-labelledby="{{ pyname }}" data-parent="#{{ pyname }}_accordion">
                <div class="card-body">
                    {% if 'preamble_rows' in schema %}
                        <div class="accordion" id="{{ pyname }}_preamble_accordion">
                            <div class="card">
                                <div class="card-header" id="{{ pyname }}_preamble">
                                    <h2 class="mb-0">
                                        <button class="btn btn-link" type="button" data-toggle="collapse" data-target="#{{ pyname }}_preamble_card" aria-expanded="false" aria-controls="{{ pyname }}_preamble_card">
                                            Preamble Rows
                                        </button>
                                    </h2>
                                </div>
                                <div id="{{ pyname }}_preamble_card" class="collapse" aria-labelledby="{{ pyname }}_preamble" data-parent="#{{ pyname }}_preamble_accordion">
                                    <div class="card-body">
                                        {{ macros.properties_table(schema['preamble_rows'], required) }}
                                    </div>
                                </div>
                            </div>
                        </div>
                    {% endif %}
                    {% if 'data_columns' in schema %}
                        <div class="accordion" id="{{ pyname }}_body_accordion">
                            <div class="card">
                                <div class="card-header" id="{{ pyname }}_body">
                                    <h2 class="mb-0">
                                        <button class="btn btn-link" type="button" data-toggle="collapse" data-target="#{{ pyname }}_body_card" aria-expanded="false" aria-controls="{{ pyname }}_body_card">
                                            Data Columns
                                        </button>
                                    </h2>
                                </div>
                                <div id="{{ pyname }}_body_card" class="collapse" aria-labelledby="{{ pyname }}_body" data-parent="#{{ pyname }}_body_accordion">
                                    <div class="card-body">
                                        {% for table_name, table_schema in schema['data_columns'].items() %}
                                            <h5 class="text-muted">{{ table_name }}</h4>
                                            {{ macros.properties_table(table_schema, required) }}
                                        {% endfor %}
                                    </div>
                                </div>
                            </div>
                        </div>
                    {% endif %}
                </div>
            </div>
        </div>
    </div>
{%- endmacro %}

{% block content %}

    {{ macros.header(schema.schema, {}, name) }}

    <div class="container">
        {% for name, worksheet_schema in schema.schema['properties']['worksheets'].items() %}
            {{ worksheet_tables(name, worksheet_schema, schema.required) }}
        {% endfor %}
    </div>

{% endblock %}