{% extends "base.html" %} {% block title %}{{ project.title }} · Projects · {{ project.owner }}{% endblock %} {% block mainclass %} class="wide"{% endblock %} {% macro burnup(v) %}{% endmacro %} {% macro card(c, colid) %}
  • {% if c.card.kind == "note" %}

    {{ c.title }}

    {% else %}{{ c.title }}

    {{ c.reference }} · {{ c.state }}{% for a in c.assignees %} · @{{ a }}{% endfor %}

    {% if compact %}{% if !c.labels.is_empty() %}

    {% for l in c.labels %}{% endfor %}

    {% endif %}{% else if !c.labels.is_empty() %}

    {% for l in c.labels %}{{ l.name }}{% endfor %}

    {% endif %}{% endif %} {% if let Some(t) = c.card.archived_ms %}

    archived

    {% endif %} {% if can_edit && archived %}
    {% else if can_edit %}
    {% endif %}
  • {% endmacro %} {% block content %}

    {{ project.title }} {{ project.owner }}'s projects · #{{ project.number }}{% if !project.public %} · private{% endif %}{% if project.closed %} · closed{% endif %}

    {% if !project.description.is_empty() %}

    {{ project.description }}

    {% endif %}
    {% if let Some(n) = notice %}

    {{ n }}

    {% endif %} {% if let Some(e) = error %}

    {{ e }}

    {% endif %} {% if let Some(v) = shown_iteration %}

    {{ v.it.name }}

    {{ v.first }} to {{ v.last }} · {{ v.done }} card{% if v.done != 1 %}s{% endif %} done, archived when it closed{% if can_edit %}; restore one to put it back on the board{% endif %} · back to the board

    {% call burnup(v) %}
    {% else if archived %}

    Archived cards: off the board, kept and searchable{% if can_edit %}; restore one to put it back at the end of its column{% endif %}. Back to the board

    {% else %}
    {% if let Some(v) = current %}

    {{ v.it.name }}

    {{ v.first }} to {{ v.last }} · day {{ v.so_far }} of {{ v.days }} · {{ v.done }} card{% if v.done != 1 %}s{% endif %} done

    {% if can_edit %}
    {% endif %}
    {% call burnup(v) %} {% else if can_edit %}
    start an iteration

    Closing it archives the cards in the Done column under it.

    {% endif %} {% if !past.is_empty() %}
    past iterations ({{ past.len() }})
    {% endif %}
    {% endif %} {% if can_edit && !archived %}
    {% if view_name.is_empty() %}save as a view{% else %}save view{% endif %}

    Keeps this layout, filter{% if !lane.is_empty() %}, {% if layout == "table" %}groups{% else %}lanes{% endif %}{% endif %}{% if !sort.is_empty() %} and order{% endif %} as a tab anyone with the board sees; its address can be shared.

    {% for v in views %}{% if v.name == *view_name %}
    {% endif %}{% endfor %}
    {% endif %} {% if layout == "table" %}
    {% for r in rows %} {% if r.starts_group %}{% endif %} {% endfor %}
    TitleReferenceStateColumnAssigneesLabelsMilestoneOpened
    {{ r.group }}
    {% if r.c.url.is_empty() %}{{ r.c.title }}{% else %}{{ r.c.title }}{% endif %} {{ r.c.reference }} {{ r.c.state }} {% if can_edit %}
    {% else %}{{ r.column }}{% endif %}
    {% for a in r.c.assignees %}@{{ a }} {% endfor %} {% for l in r.c.labels %}{{ l.name }}{% endfor %} {{ r.c.milestone }}
    {% if rows.is_empty() %}

    No cards{% if filtered %} match this filter{% endif %}.

    {% endif %} {% if pages > 1 %}{% endif %} {% else if !lanes.is_empty() %} {% for ln in lanes %}

    {{ ln.name }} {{ ln.count }}

    {% for col in ln.columns %}

    {{ col.column.name }} {{ col.cards.len() }}

      {% for c in col.cards %}{% call card(c, col.column.id) %}{% endfor %}
    {% endfor %}
    {% endfor %} {% else %}
    {% for col in columns %}

    {{ col.column.name }} {% if filtered %}{{ col.cards.len() }} of {{ col.total }}{% else %}{{ col.total }}{% endif %}{% if let Some(w) = col.column.wip_limit %} / {{ w }}{% endif %}

    {% if can_edit && !archived %}
    {% endif %} {% if !archived %}{% match col.column.archive_after_days %}{% when Some(-1) %}{% when Some(d) %}

    archives cards {{ d }} day{% if *d != 1 %}s{% endif %} after they reach it

    {% when None %}{% if col.finished %}

    finished cards are archived after {{ crate::db::projects::FINISHED_KEPT_DAYS }} days

    {% endif %}{% endmatch %}{% endif %} {% if col.before_iteration > 0 %}

    {{ col.before_iteration }} done before this iteration, shown when it closes in its archive · archived cards

    {% endif %} {% if col.hidden > 0 && !filtered && !archived %}

    {{ col.hidden }} older card{% if col.hidden != 1 %}s{% endif %} not shown · show all {{ col.total }}

    {% endif %}
      {% for c in col.cards %} {% call card(c, col.column.id) %} {% endfor %}
    {% if can_edit && !archived %}
    add a card
    column
    cards
    days
    {% if col.column.takes_finished %}

    Finished work comes here: a card moves here when its issue closes or its proposal lands or closes.

    {% else %}{% endif %}
    = 0 %} value="{{ d }}"{% endif %}{% endif %}>
    {% endif %}
    {% endfor %} {% if can_edit && !archived %}
    {% endif %}
    {% endif %}

    Keys: j/k move between cards, Enter opens one, m moves it to another column, / filters.

    {% if can_manage %}
    Settings
    {% if !transfer_to.is_empty() %}

    Transfer

    Move this project to another owner. It takes the next number there, with its columns and cards; this address goes on redirecting to it.

    {% endif %}
    {% endif %} {% endblock %}