{# ---------- PAC-INFO MACROS ---------- #}
{# These macros render semantic HTML with light class hooks. #}
{%- macro key_value_table(pairs) -%}
{# pairs: dict-like object #}
{%- for k, v in pairs.items() -%}
{%- if k != "key" -%}
{{ k }}
{{ v }}
{%- endif -%}
{%- endfor -%}
{%- endmacro -%}
{%- macro category_block(category) -%}
{{ category.__class__.__name__ }}
{{ key_value_table(category.segments_as_dict()) }}
{%- endmacro -%}
{%- macro service_table_section(services) %}
{%- endmacro -%}
{%- macro services_table(user_handover_group) -%}
from {{ user_handover_group.origin }}
{{ service_table_section(user_handover_group.services)}}
{%- endmacro -%}
{%- macro reference(value, label=None, card_request_params=dict(), target_class=None, display_label=True) %}
{% if display_label %}
{% if route_pac_id_url_for is defined %}
{{ label or value }}
{% else %}
{{ label or value }}
{% endif %}
{% endif %}
{% if pac_card_url_for is defined %}
{% endif %}
{%- endmacro %}
{%- macro attribute_row(a) -%}
{% if is_reference(a.key) %}
{{ reference(a.key, a.label)}}
{% elif is_url(a.key) %}
{{ a.label }}
{% else %}
{{ a.label }}
{% endif %}
{{a.key}}
{% for value in a.value_list%}
{%- if is_image(value) -%}
{{ label }}
{%- elif is_url(value) -%}
{{ value }}
{%- elif is_reference(value) -%}
{{ reference(value)}}
{%- else -%}
{{ value }}
{%- endif -%}
{% if not loop.last %} {% endif %}
{% endfor%}
{%- endmacro -%}
{%- macro attribute_group_block(ag) -%}
{{ ag.label }} (from {{ ag.origin }})
{%- for a in ag.attributes.values() -%}
{{ attribute_row(a) }}
{%- endfor -%}
{%- endmacro -%}
{%- macro data_table_inline(dt) -%}
{# Renders your DataTable structure; expects filters: is_data_table(dt) #}
{%- if dt.data | length == 1 -%}
{%- for i in range(dt.col_names | length) -%}
{{ dt.col_names[i] }}
{{ dt.data[0][i] }}
{%- endfor -%}
{%- else -%}
{%- for rn in dt.col_names -%}
{{ rn }}
{%- endfor -%}
{%- for row in dt.data -%}
{%- for e in row -%}
{{ e }}
{%- endfor -%}
{%- endfor -%}
{%- endif -%}
{%- endmacro -%}
{%- macro attached_data_block(attached_data) -%}
{%- for name, trex in attached_data.items() -%}
{{ attached_data_trex(name, trex) }}
{%- endfor -%}
{%- endmacro -%}
{%- macro attached_data_trex(name, trex) %}
{{ name }}
{%- for k, v in trex.items() -%}
{{ k }}
{%- if is_data_table(v) -%}
{{ data_table_inline(v) }}
{%- else -%}
{{ v }}
{%- endif -%}
{%- endfor -%}
{% endmacro %}