{% extends "projects/base.html" %} {% import "site_shell/_macros.html" as ui %} {% block title %}Projects Dashboard - Pychestrate{% endblock %} {% block content %}

Needs attention

{% if dashboard_attention_runs %}
{% for run in dashboard_attention_runs %} {% endfor %}
RunProjectStateWhen
{{ run.name or run.kind }}{% if run.name %} {{ run.kind }}{% endif %} {% if run.project_legacy_id %}{{ run.project_name }}{% else %}{{ run.project_name }}{% endif %} {{ run.state_label }} {{ run.at | format_datetime('%Y-%m-%d %H:%M', '') }}
{% elif dashboard_recent_runs %}

Nothing needs attention: no run has failed in the last 7 days.

{% else %}

No runs yet. Runs appear here when a test, build or job runs in one of your projects; start from the Test catalog.

{% endif %}
Projects ({{ project_total }}) {{ ui.icon("add") }} New Project
{% if projects %} {% if dashboard_attention_counts %}

Projects with runs that need attention (failed, lost or needing a look in the last 7 days) are listed first.

{% endif %}
{% for project in projects %} {% endfor %}
Name Description Owner Last Activity Last run Actions
{{ project.name }} {{ project.description[:50] }}{% if project.description|length > 50 %}...{% endif %} {{ project.owner_username }} {{ project.last_activity_at | format_datetime('%Y-%m-%d %H:%M', '—') }} {% set last = dashboard_last_runs.get(project.id) %} {% if last %} {{ last.state_label }} {{ last.at | format_datetime('%Y-%m-%d %H:%M', '') }} {% else %} — {% endif %} {% set needing = dashboard_attention_counts.get(project.id, 0) %} {% if needing %}
{{ needing }} {{ 'needs' if needing == 1 else 'need' }} attention
{% endif %}
View
{% if project_total > projects | length %}

Showing {{ projects | length }} of {{ project_total }} projects. View all {{ project_total }}

{% endif %} {% else %}

No projects yet. Create your first project

{% endif %}

Recent runs

{% if dashboard_recent_runs %}
{% for run in dashboard_recent_runs %} {% endfor %}
RunProjectStateWhen
{{ run.name or run.kind }}{% if run.name %} {{ run.kind }}{% endif %} {% if run.project_legacy_id %}{{ run.project_name }}{% else %}{{ run.project_name }}{% endif %} {{ run.state_label }} {{ run.at | format_datetime('%Y-%m-%d %H:%M', '') }}

All runs

{% else %} {{ ui.empty_state("No runs yet. Runs appear here when a test, build or job runs in one of your projects.") }} {% endif %}
{% if recent_builds or recent_tests %}
{% if recent_builds %}

Recent Builds

{% for build in recent_builds %} {% endfor %}
BuildSpecificationProjectStatusCreated
#{{ build.id }} {{ build.spec_name }} {{ dashboard_project_names.get(build.project_id) or ('Project ' ~ build.project_id) }} {{ ui.status_badge(build.status) }} {{ build.created_at | format_datetime('%Y-%m-%d %H:%M', '') }}
{% endif %} {% if recent_tests %}

Recent Tests

{% for test in recent_tests %} {% endfor %}
JobSpecificationProjectStatusCreated
#{{ test.id }} {{ test.spec_name }} {{ dashboard_project_names.get(test.project_id) or ('Project ' ~ test.project_id) }} {{ ui.status_badge(test.status) }} {{ test.created_at | format_datetime('%Y-%m-%d %H:%M', '') }}
{% endif %}
{% endif %} {{ ui.icon("list") }} View All Projects {% endblock %}