Artifex/templates/projects/dashboard.html
2026-08-15 13:50:24 +07:00

49 lines
1.9 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Artifex</title>
<style>
body { font-family: system-ui, sans-serif; margin: 2rem; color: #172033; background: #f7f4ed; }
header { display: flex; justify-content: space-between; align-items: center; }
.card { background: white; border: 1px solid #ddd4c6; border-radius: 12px; padding: 1rem; margin: 1rem 0; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 1rem; }
.status { font-size: .8rem; letter-spacing: .08em; color: #6f4e37; }
a, button { color: #172033; }
</style>
</head>
<body>
<header>
<div>
<h1>ARTIFEX</h1>
<p>Deterministic control plane for autonomous engineering.</p>
</div>
<a href="/admin/">Admin</a>
</header>
<section class="grid">
<div class="card"><strong>{{ summary.project_count }}</strong><br>Projects</div>
<div class="card"><strong>{{ summary.ready_tasks }}</strong><br>Ready tasks</div>
<div class="card"><strong>{{ summary.blocked_tasks }}</strong><br>Blocked tasks</div>
</section>
<section>
<h2>Projects</h2>
{% for project in projects %}
<article class="card">
<div class="status">{{ project.project_type }} / {{ project.status }}</div>
<h3>{{ project.name }}</h3>
<p>{{ project.goal }}</p>
</article>
{% empty %}
<div class="card">No projects yet. Create one in the admin to begin M1 validation.</div>
{% endfor %}
</section>
<section>
<h2>Activity</h2>
{% for event in recent_events %}
<div class="card"><span class="status">{{ event.created_at }} / {{ event.event_type }}</span><br>{{ event.actor }}</div>
{% empty %}
<div class="card">No events yet.</div>
{% endfor %}
</section>
</body>
</html>