{% extends "base.html" %} {% block title %}Estimation {{ estimation.public_id }} of your ✈ travel footprint{% endblock %} {% block hero %}
{% if estimation.has_failed() %}

{{ content.estimation.failure.hero.title | safe }}

{{ content.estimation.failure.hero.description | markdown | safe }}

{% else %}

{{ content.estimation.hero.title | safe }}

{{ content.estimation.hero.description | markdown | safe }}

{% endif %}
{% endblock %} {% macro render_footprint(footprint) %} {% if footprint > 1000 %} {{ "%.1f" | format((footprint/1000.0) | round(1)) }} tons CO2EQ {% else %} {{ "%.1f" | format((footprint) | round(1)) }} kg CO2EQ {% endif %} {% endmacro %} {% macro render_cities(cities) %} {% endmacro %} {% block body %}

{{ estimation.get_display_name() }} ({{ estimation.status.name }})

{% if estimation.errors %}

Errors

{{ estimation.errors }}
            

{% endif %} {% if estimation.warnings %}

Warnings

{{ estimation.warnings }}
            

{% endif %} {% if not estimation.has_failed() %}
Using {% for model in estimation.get_models() %} {{ model.name }}{{ ',' if not loop.last }} {% endfor %} {% if estimation.use_train_below_km > 0 %} and train travel assumed for distances below {{ estimation.use_train_below_km }} km {% endif %} . {#

Total CO2 footprint (in kilograms-equivalent) of each city

#} {#
#}
{# This MUST stay empty (because Simg uses svg.getparentnode.innerhtml) #}
{#
#} {#

A Legend here

#}

{# EMISSIONS PER DISTANCE HISTOGRAM ##########################################} {# That plot makes no sense with our many to many data. #} {% if not estimation.is_many_to_many() %}

{% endif %} {#############################################################################} {# SORTED EMISSIONS INEQUALITY ##########################################} {# That plot makes no sense with our many to many data. #} {% if not estimation.is_many_to_many() %}

{% endif %} {#############################################################################} {% endif %}{# not estimation.has_failed() #} {# LIST OF CITIES ############################################################}
{% if not estimation.has_failed() %}
{# The estimation sum is only meaningful when there's a single origin or a single destination. #} {% if not estimation.is_many_to_many() %}

Total: {{ render_footprint(estimation_sum) }}

{% endif %} {% if estimation.is_one_to_one() %} {{ content.estimation.lolliplot.one_to_one | markdown | safe }} {{ render_cities(estimation_output.cities) }} {% elif estimation.is_many_to_one() %} {{ content.estimation.lolliplot.many_to_one | markdown | safe }} {{ render_cities(estimation_output.cities) }} {% elif estimation.is_one_to_many() %} {{ content.estimation.lolliplot.one_to_many | markdown | safe }} {{ render_cities(estimation_output.cities) }} {% elif estimation.is_many_to_many() %} {{ content.estimation.lolliplot.many_to_many | markdown | safe }} {{ render_cities(estimation_output.cities) }} {% endif %}


{#
#} {#
#} {#

Raw Output (YAML)

#} {#
#}
{#{{ estimation.output_yaml }}#}
{#        
#} {#
#} {#
#}
{{ content.estimation.footer | markdown | safe }}
{# Buffer to drop the PNG image into, to trick firefox into downloading the PNG #}
{% endif %}{# not estimation.has_failed() #} {% endblock %} {#############################################################################} {#############################################################################} {% block js %} {% if not estimation.has_failed() %} {# Eventually, once we're done with plots, use flask's asset minifier #} {% endif %} {% endblock %}