Researcher / src /web /templates /weeks.html
amarck's picture
Add HF Spaces support, preference seeding, archive search, tests
430d0f8
{% extends "base.html" %}
{% block title %}Archive — Research Intelligence{% endblock %}
{% block content %}
<div class="page-header">
<h1>Weekly Archives</h1>
<div class="subtitle">Search past papers and browse weekly reports</div>
</div>
<div class="filter-bar" style="margin-bottom:1.5rem">
<form hx-get="/weeks" hx-target="#archive-results" hx-push-url="true"
hx-trigger="submit" hx-indicator="#page-loader"
style="display:flex; gap:0.5rem; align-items:center; flex-wrap:wrap; width:100%">
<input type="search" name="q" placeholder="Search all papers..." value="{{ q }}"
class="filter-input" style="flex:1; min-width:200px">
<select name="domain" class="filter-select">
<option value="">All domains</option>
<option value="aiml" {% if domain == 'aiml' %}selected{% endif %}>AI/ML</option>
<option value="security" {% if domain == 'security' %}selected{% endif %}>Security</option>
</select>
<select name="sort" class="filter-select">
<option value="rank" {% if sort == 'rank' %}selected{% endif %}>Relevance</option>
<option value="score" {% if sort == 'score' %}selected{% endif %}>Score</option>
<option value="date" {% if sort == 'date' %}selected{% endif %}>Date</option>
</select>
<button type="submit" class="btn btn-primary btn-sm">Search</button>
</form>
</div>
<div id="archive-results">
{% if q %}
{% include "partials/archive_results.html" %}
{% endif %}
</div>
{% if archives %}
<div class="section-header">
<h2>Reports</h2>
</div>
<table class="paper-table" style="margin-bottom:2.5rem">
<thead>
<tr>
<th>Week</th>
<th>Domain</th>
<th>File</th>
</tr>
</thead>
<tbody>
{% for a in archives %}
<tr>
<td style="font-family:var(--font-mono); font-size:0.82rem">{{ a.date }}</td>
<td>
{% if a.domain == 'aiml' %}
<span class="badge badge--accent">AI/ML</span>
{% elif a.domain == 'security' %}
<span class="badge badge--red">SECURITY</span>
{% else %}
<span class="badge" style="background:var(--bg-surface); color:var(--text-muted)">{{ a.domain | upper }}</span>
{% endif %}
</td>
<td><a href="/weeks/{{ a.filename }}">{{ a.filename }}</a></td>
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
<div class="empty-state" style="padding:2rem">
<h2>No archives yet</h2>
<p>Weekly reports will appear here after pipeline runs.</p>
</div>
{% endif %}
{% if runs %}
<div class="section-header">
<h2>Recent Runs</h2>
</div>
<table class="paper-table">
<thead>
<tr>
<th>ID</th>
<th>Domain</th>
<th>Date Range</th>
<th>Papers</th>
<th>Status</th>
<th>Started</th>
</tr>
</thead>
<tbody>
{% for r in runs %}
<tr>
<td style="font-family:var(--font-mono); font-size:0.82rem">{{ r.id }}</td>
<td>
{% if r.domain == 'aiml' %}
<span class="badge badge--accent">AI/ML</span>
{% elif r.domain == 'security' %}
<span class="badge badge--red">SECURITY</span>
{% else %}
<span class="badge" style="background:var(--bg-surface); color:var(--text-muted)">{{ r.domain | upper }}</span>
{% endif %}
</td>
<td style="font-size:0.82rem">{{ r.date_start }} to {{ r.date_end }}</td>
<td style="font-family:var(--font-mono)">{{ r.paper_count }}</td>
<td class="status-{{ r.status }}">{{ r.status }}</td>
<td style="font-size:0.82rem; color:var(--text-muted)">{{ r.started_at[:16] }}</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endif %}
{% endblock %}