44 lines
2.0 KiB
HTML
44 lines
2.0 KiB
HTML
{% extends "base.html" %}
|
|
|
|
{% block title %}Tasks - Hermes{% endblock %}
|
|
|
|
{% block content %}
|
|
<h2>📋 Tasks</h2>
|
|
|
|
<div class="filter-buttons">
|
|
<a href="/tasks" class="btn {% if not current_status %}active{% endif %}">All ({{ counts.get('ready', 0) + counts.get('running', 0) + counts.get('done', 0) + counts.get('blocked', 0) + counts.get('failed', 0) }})</a>
|
|
<a href="/tasks?status=ready" class="btn {% if current_status == 'ready' %}active{% endif %}">Ready ({{ counts.get('ready', 0) }})</a>
|
|
<a href="/tasks?status=running" class="btn {% if current_status == 'running' %}active{% endif %}">Running ({{ counts.get('running', 0) }})</a>
|
|
<a href="/tasks?status=done" class="btn {% if current_status == 'done' %}active{% endif %}">Done ({{ counts.get('done', 0) }})</a>
|
|
<a href="/tasks?status=blocked" class="btn {% if current_status == 'blocked' %}active{% endif %}">Blocked ({{ counts.get('blocked', 0) }})</a>
|
|
<a href="/tasks?status=failed" class="btn {% if current_status == 'failed' %}active{% endif %}">Failed ({{ counts.get('failed', 0) }})</a>
|
|
</div>
|
|
|
|
<div class="card">
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>ID</th>
|
|
<th>Title</th>
|
|
<th>Status</th>
|
|
<th>Assignee</th>
|
|
<th>Started</th>
|
|
<th>Completed</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for task in tasks %}
|
|
<tr>
|
|
<td><a href="/tasks/{{ task.id }}">#{{ task.id }}</a></td>
|
|
<td>{{ task.title[:80] }}</td>
|
|
<td><span class="status-badge status-{{ task.status }}">{{ task.status }}</span></td>
|
|
<td>{{ task.assignee or 'N/A' }}</td>
|
|
<td>{% if task.started_at %}{{ task.started_at|int|rel }}{% else %}N/A{% endif %}</td>
|
|
<td>{% if task.completed_at %}{{ task.completed_at|int|rel }}{% else %}N/A{% endif %}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
{% endblock %}
|