{% extends 'base.html' %} {% block title %}IvoryOS | Design execution{% endblock %} {% block body %} {# socket.io is loaded once, globally, from base.html #} {% if no_deck_warning and not dismiss %} {# auto pop import when there is no deck#} {% endif %} {# Last screen before a run: say plainly which steps cannot succeed against the deck that is loaded. Steps whose module or method is gone will raise; the rest are worth a look but may still run. #} {% if compat_steps %} {% set blocking = compat_steps | selectattr('blocking') | list %}
{% if blocking %} {{ blocking | length }} step{{ 's' if blocking | length != 1 }} will fail against the current deck {% else %} {{ compat_steps | length }} step{{ 's' if compat_steps | length != 1 }} may not run as designed {% endif %}
{# One line per step. The full sentences are the title, so the detail is a hover away rather than a wall of text above the run controls. #}
{% endif %}
{% include 'components/run_panel.html' %}
{% include 'components/progress_panel.html' %} {% include 'components/logging_panel.html' %}
{% endblock %}