{% extends "base.html" %} {% block title %} {{ project.name }} Issue Tracker {% endblock %} {% block head %} {{ super() }} {% endblock %} {% block content %}

{{ self.title() }}

{% set released = project.releases|selectattr("released") %} {% set upcoming = project.releases|rejectattr("released") %}

Upcoming Releases

{% if upcoming %} {% for release in upcoming %} {% set relissues = release|issues %} {% set total = relissues|count %} {% set done = relissues|selectattr("closed")|list|count %} {% set open = total - done %} {% endfor %}
{{ release|link }} {% if not total %} no issues {% elif not open %} ready for release! {% else %} {% set frac = (total - open) / total|float %} {% set percent = frac * 100.0 %} {{ frac|progressmeter }} {{ "%.0f%%"|format(percent) }} complete
{{ done }} / {{ total }} issues. {{ release|link("See issues") }} {% endif %}
{% else %}

No upcoming releases.

{% endif %}

Past Releases

{% if released %} {% for release in released|sort(reverse=True, attribute="name") %} {% endfor %}
{{ release|link() }} on {{ release.release_time|dateformat }}
{% else %}

No past releases.

{% endif %}

Unassigned Issues

{% set unassigned = issues|rejectattr("release")|list %}

{% if unassigned %} {% set open = unassigned|rejectattr("closed")|list %} {{ unassigned|count }} unassigned issues ({{ open|count }} open). {% else %} No unassigned issues. {% endif %}

{% if project.components|count > 1 %}

Open Issues by component

{% for comp in project.components %} {% set open = comp|issues|rejectattr("closed")|list|count %} {% set class = "" if open else "dimmed" %} {% endfor %}
{{ comp|link }} {{ open }} open issues
{% endif %}

Recent Activity

{% from 'macros.html' import recent_activity %} {{ recent_activity(activity) }}
{% endblock %}