Files
hamprint/templates/dashboard/my_prints.html

91 lines
4.2 KiB
HTML

{% extends "base.html" %}
{% load humanize %}
{% block title %}My prints — hamprint{% endblock %}
{% block content %}
<header class="mb-6 flex items-end justify-between flex-wrap gap-3">
<div>
<h1 class="text-2xl font-bold tracking-tight">My prints</h1>
<p class="text-slate-600 mt-1">
All prints submitted with
<span class="font-medium text-slate-800">{{ user.email|default:user.get_username }}</span>.
</p>
</div>
<div class="text-sm text-slate-500">
<span class="font-medium text-slate-900">{{ counts.total }}</span> total
{% if counts.queued %}· <span class="font-medium text-blue-700">{{ counts.queued }}</span> queued{% endif %}
{% if counts.printing %}· <span class="font-medium text-orange-700">{{ counts.printing }}</span> printing{% endif %}
{% if counts.completed %}· <span class="font-medium text-emerald-700">{{ counts.completed }}</span> completed{% endif %}
</div>
</header>
{% if submissions %}
<div class="bg-white border border-slate-200 rounded-lg overflow-hidden">
<table class="w-full text-sm">
<thead class="bg-slate-50 border-b border-slate-200 text-slate-600">
<tr class="text-left">
<th class="px-4 py-2.5 font-medium">Codename</th>
<th class="px-4 py-2.5 font-medium">Source</th>
<th class="px-4 py-2.5 font-medium">Status</th>
<th class="px-4 py-2.5 font-medium hidden sm:table-cell">Submitted</th>
</tr>
</thead>
<tbody class="divide-y divide-slate-100">
{% for sub in submissions %}
<tr class="hover:bg-slate-50">
<td class="px-4 py-3">
<span class="mono text-amber-700 font-medium">{{ sub.slug }}</span>
</td>
<td class="px-4 py-3 text-slate-600">{{ sub.source_label }}</td>
<td class="px-4 py-3">
<span class="inline-flex items-center gap-1.5 px-2 py-0.5 rounded-full {{ sub.status_badge_class }} text-xs font-medium">
{{ sub.get_status_display }}
</span>
</td>
<td class="px-4 py-3 hidden sm:table-cell text-slate-500">{{ sub.created_at|naturaltime }}</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
{% if is_paginated %}
<div class="flex items-center justify-between mt-4 text-sm">
<p class="text-slate-500">
Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}
&middot; {{ page_obj.paginator.count }} total
</p>
<div class="flex items-center gap-1">
{% if page_obj.has_previous %}
<a href="?page={{ page_obj.previous_page_number }}" class="px-3 py-1.5 rounded-md border border-slate-300 bg-white text-slate-700 hover:bg-slate-100">← Previous</a>
{% else %}
<span class="px-3 py-1.5 rounded-md border border-slate-200 text-slate-400 cursor-not-allowed">← Previous</span>
{% endif %}
{% if page_obj.has_next %}
<a href="?page={{ page_obj.next_page_number }}" class="px-3 py-1.5 rounded-md border border-slate-300 bg-white text-slate-700 hover:bg-slate-100">Next →</a>
{% else %}
<span class="px-3 py-1.5 rounded-md border border-slate-200 text-slate-400 cursor-not-allowed">Next →</span>
{% endif %}
</div>
</div>
{% endif %}
{% else %}
<div class="rounded-lg border border-slate-200 bg-white p-8 text-center">
<p class="text-slate-700 font-medium">No prints yet.</p>
<p class="text-slate-500 text-sm mt-1">Once you submit one, it'll show up here.</p>
<a href="{% url 'submissions:create' %}" class="inline-block mt-5 px-4 py-2 rounded-md bg-amber-500 text-white hover:bg-amber-600 font-medium text-sm">+ Submit a print</a>
</div>
{% endif %}
<div class="mt-6 flex items-center justify-between text-sm">
<a href="{% url 'submissions:create' %}" class="text-amber-700 hover:underline font-medium">+ Submit another print</a>
<div class="flex items-center gap-4">
{% if not user.is_staff %}
<a href="{% url 'accounts:close' %}" class="text-red-600 hover:underline">Close account</a>
{% endif %}
<a href="{% url 'account_logout' %}" class="text-slate-500 hover:underline">Sign out</a>
</div>
</div>
{% endblock %}