{% macro render_widget(widget, content) %}

{{ widget.title }}

{% if widget.description %} {% endif %}
{{ content | safe }}
{% endmacro %} {% macro render_widget_content(widget, widget_key, stats) %} {% if widget.type == 'map_panel' %} {% set content = render_map_content(widget, widget_key) %} {% elif widget.type == 'info_panel' %} {% set content = render_info_panel_content(widget, stats[widget_key]|from_json, stats) %} {% elif '_chart' in widget.type %} {% set content = render_chart_content(widget, widget_key) %} {% elif widget.type == 'gauge' %} {% set content = render_gauge_content(widget, widget_key) %} {% endif %} {{ render_widget(widget, content) }} {% endmacro %} {% macro render_info_panel_content(widget, data, stats) %}
{% for item in widget.fields %} {# Get the value - check if external data source is specified #} {% if item.data_source %} {% set value_data = stats[item.data_source]|from_json %} {% set value_data = value_data[item.source] if value_data[item.source] is defined else none %} {% else %} {% set value_data = data[item.source] if data[item.source] is defined else none %} {% endif %} {# Vérifier si la donnée existe et que sa valeur n'est pas null, None ou 'None' #} {% if value_data is defined and value_data is not none and value_data.value is defined and value_data.value is not none and value_data.value != 'None' and value_data.value != 'null' %}
{{ item.label }} {% if item.format == 'range' %} {{ value_data.min }} - {{ value_data.max }} {{ value_data.units or '' }} {% elif item.format == 'number' %} {{ value_data.value | numberformat }} {{ value_data.units or '' }} {% elif item.format == 'map' %} {% set value = value_data.value %} {% if item.mapping %} {% set mapping_key = value|string %} {% if mapping_key in item.mapping %} {{ item.mapping[mapping_key] }} {% else %} {{ value }} {% endif %} {% else %} {{ value }} {% endif %} {% elif item.format == 'link' %} {% if item.display_text %}{{ item.display_text }}{% else %}{{ item.label }}{% endif %} {% elif item.format == 'image' %} {% if value_data.value %} {% if item.source == 'images' %} {% set unique_id = item.source|replace('.', '_') ~ '_' ~ loop.index0 %}
Chargement des images...
{# Modal dialog #}

{% else %} {# Single image #} {{ item.label }} {% endif %} {% else %} --- {% endif %} {% else %} {{ value_data.value }} {{ value_data.units or '' }} {% endif %}
{% endif %} {% endfor %}
{% endmacro %} {% macro render_chart_content(widget, widget_key) %}
{% endmacro %} {% macro render_gauge_content(widget, widget_key) %}
{% endmacro %} {% macro render_map_content(widget, widget_key) %}
{% endmacro %} {% macro render_geography_field(field_key) %}
{% endmacro %} {% macro render_info_widget(title, name, data) %}

{{ title }}

{{ name }}

{% for item in data %}
{{ item.label }}: {{ item.value }}
{% endfor %}
{% endmacro %} {% macro render_chart(transformation, field_key) %} {% if transformation.chart_type == 'text' %}

{% elif transformation.chart_type == 'pie' %}
{% elif transformation.chart_type == 'gauge' %}
{% elif transformation.name == 'temporal_phenology' %}
{% elif transformation.chart_type == 'bar' %}
{% endif %} {% endmacro %} {% macro render_field(field_key, field) %} {% if field.bins and field.bins.values is defined %}

{{ field.bins.chart_options.title }}

{% if field.description %} {% endif %}
{% endif %} {% for transformation in field.transformations %} {% if transformation.chart_options is defined and transformation.chart_type != 'text' %}

{{ transformation.chart_options.title }}

{% if field.description %} {% endif %}
{{ render_chart(transformation, field_key) }}
{% endif %} {% endfor %} {% endmacro %}