P2: Typografie-Hierarchie — Seiten-/Karten-/Tabellen-Header
- h1: text-2xl font-bold text-slate-900 - Karten-h2: text-base font-semibold text-slate-800 - th: text-xs font-medium uppercase tracking-wider text-slate-500
This commit is contained in:
@@ -1,7 +1,7 @@
|
|||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{% block titel %}{{ titel }} — Spiele-Redaktion{% endblock %}
|
{% block titel %}{{ titel }} — Spiele-Redaktion{% endblock %}
|
||||||
{% block inhalt %}
|
{% block inhalt %}
|
||||||
<h1 class="text-2xl font-bold mb-2">{{ titel }}</h1>
|
<h1 class="text-2xl font-bold text-slate-900 mb-2">{{ titel }}</h1>
|
||||||
<p class="text-slate-600 max-w-3xl mb-4">
|
<p class="text-slate-600 max-w-3xl mb-4">
|
||||||
Sicherungsdatei der Redaktion: Titel, deren Erscheinungs- bzw. Eintragsdatum
|
Sicherungsdatei der Redaktion: Titel, deren Erscheinungs- bzw. Eintragsdatum
|
||||||
mehr als 12 Monate zurückliegt, werden täglich automatisch aus den
|
mehr als 12 Monate zurückliegt, werden täglich automatisch aus den
|
||||||
@@ -112,16 +112,16 @@
|
|||||||
<table class="w-full text-sm">
|
<table class="w-full text-sm">
|
||||||
<thead class="text-left text-slate-500 sticky top-0 z-10 [&>tr>th]:bg-slate-50 [&>tr>th]:shadow-[inset_0_-1px_0_0_#e2e8f0]">
|
<thead class="text-left text-slate-500 sticky top-0 z-10 [&>tr>th]:bg-slate-50 [&>tr>th]:shadow-[inset_0_-1px_0_0_#e2e8f0]">
|
||||||
<tr>
|
<tr>
|
||||||
<th class="px-4 py-3 font-medium">Cover</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Cover</th>
|
||||||
<th class="px-4 py-3 font-medium">Spieltitel</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Spieltitel</th>
|
||||||
<th class="px-4 py-3 font-medium">Herkunft</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Herkunft</th>
|
||||||
<th class="px-4 py-3 font-medium">Verlag</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Verlag</th>
|
||||||
<th class="px-4 py-3 font-medium">Jahr / Ausgabe</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Jahr / Ausgabe</th>
|
||||||
<th class="px-4 py-3 font-medium">Status</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Status</th>
|
||||||
<th class="px-4 py-3 font-medium">Rezensent</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Rezensent</th>
|
||||||
<th class="px-4 py-3 font-medium">Archiviert am</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Archiviert am</th>
|
||||||
<th class="px-4 py-3 font-medium">Grund</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Grund</th>
|
||||||
<th class="px-4 py-3 font-medium">Aktionen</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Aktionen</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="divide-y divide-slate-100">
|
<tbody class="divide-y divide-slate-100">
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{% block titel %}{{ titel }} — {{ app_name }}{% endblock %}
|
{% block titel %}{{ titel }} — {{ app_name }}{% endblock %}
|
||||||
{% block inhalt %}
|
{% block inhalt %}
|
||||||
<h1 class="text-2xl font-bold mb-1">{{ titel }}</h1>
|
<h1 class="text-2xl font-bold text-slate-900 mb-1">{{ titel }}</h1>
|
||||||
<p class="text-slate-600 mb-4 text-sm">
|
<p class="text-slate-600 mb-4 text-sm">
|
||||||
Protokoll aller relevanten Ereignisse — nur für Administratoren sichtbar.
|
Protokoll aller relevanten Ereignisse — nur für Administratoren sichtbar.
|
||||||
</p>
|
</p>
|
||||||
@@ -65,12 +65,12 @@
|
|||||||
<table class="w-full text-sm">
|
<table class="w-full text-sm">
|
||||||
<thead class="text-left text-slate-500 sticky top-0 z-10 [&>tr>th]:bg-slate-50 [&>tr>th]:shadow-[inset_0_-1px_0_0_#e2e8f0]">
|
<thead class="text-left text-slate-500 sticky top-0 z-10 [&>tr>th]:bg-slate-50 [&>tr>th]:shadow-[inset_0_-1px_0_0_#e2e8f0]">
|
||||||
<tr>
|
<tr>
|
||||||
<th class="px-4 py-2 font-medium whitespace-nowrap">Zeitpunkt</th>
|
<th class="px-4 py-2 font-medium whitespace-nowrap text-xs uppercase tracking-wider">Zeitpunkt</th>
|
||||||
<th class="px-4 py-2 font-medium">Benutzer</th>
|
<th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Benutzer</th>
|
||||||
<th class="px-4 py-2 font-medium">Aktion</th>
|
<th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Aktion</th>
|
||||||
<th class="px-4 py-2 font-medium">Objekt</th>
|
<th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Objekt</th>
|
||||||
<th class="px-4 py-2 font-medium">Änderung / Details</th>
|
<th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Änderung / Details</th>
|
||||||
<th class="px-4 py-2 font-medium">IP</th>
|
<th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">IP</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="divide-y divide-slate-100">
|
<tbody class="divide-y divide-slate-100">
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{% block titel %}{{ titel }} — {{ app_name }}{% endblock %}
|
{% block titel %}{{ titel }} — {{ app_name }}{% endblock %}
|
||||||
{% block inhalt %}
|
{% block inhalt %}
|
||||||
<h1 class="text-2xl font-bold mb-1">Benachrichtigungen — Einstellungen</h1>
|
<h1 class="text-2xl font-bold text-slate-900 mb-1">Benachrichtigungen — Einstellungen</h1>
|
||||||
<p class="text-slate-600 mb-4">
|
<p class="text-slate-600 mb-4">
|
||||||
Wählen Sie, über welche Kanäle Sie Benachrichtigungen erhalten.
|
Wählen Sie, über welche Kanäle Sie Benachrichtigungen erhalten.
|
||||||
Mehrere Kanäle sind gleichzeitig möglich.
|
Mehrere Kanäle sind gleichzeitig möglich.
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
{% block titel %}{{ titel }} — {{ app_name }}{% endblock %}
|
{% block titel %}{{ titel }} — {{ app_name }}{% endblock %}
|
||||||
{% block inhalt %}
|
{% block inhalt %}
|
||||||
<div class="flex flex-wrap items-center gap-3 mb-1">
|
<div class="flex flex-wrap items-center gap-3 mb-1">
|
||||||
<h1 class="text-2xl font-bold">{{ titel }}</h1>
|
<h1 class="text-2xl font-bold text-slate-900">{{ titel }}</h1>
|
||||||
<span class="inline-flex items-center rounded-full px-2.5 py-0.5 text-sm font-medium
|
<span class="inline-flex items-center rounded-full px-2.5 py-0.5 text-sm font-medium
|
||||||
{% if ungelesen %}bg-red-100 text-red-700{% else %}bg-slate-200 text-slate-500{% endif %}">
|
{% if ungelesen %}bg-red-100 text-red-700{% else %}bg-slate-200 text-slate-500{% endif %}">
|
||||||
{{ ungelesen }} ungelesen
|
{{ ungelesen }} ungelesen
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{% block titel %}{{ titel }} — Spiele-Redaktion{% endblock %}
|
{% block titel %}{{ titel }} — Spiele-Redaktion{% endblock %}
|
||||||
{% block inhalt %}
|
{% block inhalt %}
|
||||||
<h1 class="text-2xl font-bold mb-2">{{ titel }}</h1>
|
<h1 class="text-2xl font-bold text-slate-900 mb-2">{{ titel }}</h1>
|
||||||
<p class="text-slate-600 mb-4">
|
<p class="text-slate-600 mb-4">
|
||||||
Die Prüfung läuft automatisch bei jeder Eintragung in die Planungsliste.
|
Die Prüfung läuft automatisch bei jeder Eintragung in die Planungsliste.
|
||||||
Hier kann sie auch von Hand für einen Titel ausgeführt werden.
|
Hier kann sie auch von Hand für einen Titel ausgeführt werden.
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="bg-white border border-slate-200 rounded-xl shadow-sm p-4 mb-6">
|
<div class="bg-white border border-slate-200 rounded-xl shadow-sm p-4 mb-6">
|
||||||
<h2 class="font-semibold mb-3">Titel prüfen</h2>
|
<h2 class="text-base font-semibold text-slate-800 mb-3">Titel prüfen</h2>
|
||||||
<form method="post" action="/dedup/pruefen" class="flex flex-wrap items-end gap-3">
|
<form method="post" action="/dedup/pruefen" class="flex flex-wrap items-end gap-3">
|
||||||
<div>
|
<div>
|
||||||
<label for="titel" class="block text-xs font-medium text-slate-500 mb-1">Spieltitel *</label>
|
<label for="titel" class="block text-xs font-medium text-slate-500 mb-1">Spieltitel *</label>
|
||||||
@@ -83,16 +83,16 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="bg-white border border-slate-200 rounded-xl shadow-sm overflow-x-auto">
|
<div class="bg-white border border-slate-200 rounded-xl shadow-sm overflow-x-auto">
|
||||||
<h2 class="font-semibold px-4 pt-4 pb-2">Letzte Prüfungen</h2>
|
<h2 class="text-base font-semibold text-slate-800 px-4 pt-4 pb-2">Letzte Prüfungen</h2>
|
||||||
<table class="w-full text-sm">
|
<table class="w-full text-sm">
|
||||||
<thead class="bg-slate-50 text-left text-slate-500">
|
<thead class="bg-slate-50 text-left text-slate-500">
|
||||||
<tr>
|
<tr>
|
||||||
<th class="px-4 py-2 font-medium">Zeitpunkt</th>
|
<th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Zeitpunkt</th>
|
||||||
<th class="px-4 py-2 font-medium">Titel</th>
|
<th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Titel</th>
|
||||||
<th class="px-4 py-2 font-medium">Verlag</th>
|
<th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Verlag</th>
|
||||||
<th class="px-4 py-2 font-medium">BGG-ID</th>
|
<th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">BGG-ID</th>
|
||||||
<th class="px-4 py-2 font-medium">Geprüft von</th>
|
<th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Geprüft von</th>
|
||||||
<th class="px-4 py-2 font-medium">Befund</th>
|
<th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Befund</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="divide-y divide-slate-100">
|
<tbody class="divide-y divide-slate-100">
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{% block titel %}{{ titel_headline }} — Spiele-Redaktion{% endblock %}
|
{% block titel %}{{ titel_headline }} — Spiele-Redaktion{% endblock %}
|
||||||
{% block inhalt %}
|
{% block inhalt %}
|
||||||
<h1 class="text-2xl font-bold mb-2">Ausgabe bearbeiten</h1>
|
<h1 class="text-2xl font-bold text-slate-900 mb-2">Ausgabe bearbeiten</h1>
|
||||||
<p class="text-slate-600 mb-4">„{{ ausgabe.name }}“ · Redaktionsschluss:
|
<p class="text-slate-600 mb-4">„{{ ausgabe.name }}“ · Redaktionsschluss:
|
||||||
{{ ausgabe.redaktionsschluss.strftime('%d.%m.%Y') }}
|
{{ ausgabe.redaktionsschluss.strftime('%d.%m.%Y') }}
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
{% block titel %}{{ titel }} — Spiele-Redaktion{% endblock %}
|
{% block titel %}{{ titel }} — Spiele-Redaktion{% endblock %}
|
||||||
{% block inhalt %}
|
{% block inhalt %}
|
||||||
<div x-data="{ loeschFormular: null, loeschTitel: '' }">
|
<div x-data="{ loeschFormular: null, loeschTitel: '' }">
|
||||||
<h1 class="text-2xl font-bold mb-2">{{ titel }}</h1>
|
<h1 class="text-2xl font-bold text-slate-900 mb-2">{{ titel }}</h1>
|
||||||
<p class="text-slate-600 mb-4">
|
<p class="text-slate-600 mb-4">
|
||||||
Redaktionsschlüsse der kommenden Ausgaben. Vier Wochen vor jedem
|
Redaktionsschlüsse der kommenden Ausgaben. Vier Wochen vor jedem
|
||||||
Redaktionsschluss erhalten alle Rezensenten eine Erinnerung, die noch offene
|
Redaktionsschluss erhalten alle Rezensenten eine Erinnerung, die noch offene
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
{% if ist_admin %}
|
{% if ist_admin %}
|
||||||
<div class="bg-white border border-slate-200 rounded-xl shadow-sm p-4 mb-6">
|
<div class="bg-white border border-slate-200 rounded-xl shadow-sm p-4 mb-6">
|
||||||
<h2 class="font-semibold mb-3">Neue Ausgabe anlegen</h2>
|
<h2 class="text-base font-semibold text-slate-800 mb-3">Neue Ausgabe anlegen</h2>
|
||||||
<form method="post" action="/erinnerung/ausgaben" class="flex flex-wrap items-end gap-3">
|
<form method="post" action="/erinnerung/ausgaben" class="flex flex-wrap items-end gap-3">
|
||||||
<div>
|
<div>
|
||||||
<label for="name" class="block text-xs font-medium text-slate-500 mb-1">Name/Titel der Ausgabe *</label>
|
<label for="name" class="block text-xs font-medium text-slate-500 mb-1">Name/Titel der Ausgabe *</label>
|
||||||
@@ -43,11 +43,11 @@
|
|||||||
<table class="w-full text-sm">
|
<table class="w-full text-sm">
|
||||||
<thead class="bg-slate-50 text-left text-slate-500">
|
<thead class="bg-slate-50 text-left text-slate-500">
|
||||||
<tr>
|
<tr>
|
||||||
<th class="px-4 py-3 font-medium">Ausgabe</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Ausgabe</th>
|
||||||
<th class="px-4 py-3 font-medium">Redaktionsschluss</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Redaktionsschluss</th>
|
||||||
<th class="px-4 py-3 font-medium">Restzeit</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Restzeit</th>
|
||||||
<th class="px-4 py-3 font-medium">Erinnerungen</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Erinnerungen</th>
|
||||||
{% if ist_admin %}<th class="px-4 py-3 font-medium">Aktionen</th>{% endif %}
|
{% if ist_admin %}<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Aktionen</th>{% endif %}
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="divide-y divide-slate-100">
|
<tbody class="divide-y divide-slate-100">
|
||||||
@@ -100,7 +100,7 @@
|
|||||||
{% if ist_admin %}
|
{% if ist_admin %}
|
||||||
<div class="bg-white border border-slate-200 rounded-xl shadow-sm p-4 mb-6 flex flex-wrap items-center gap-3">
|
<div class="bg-white border border-slate-200 rounded-xl shadow-sm p-4 mb-6 flex flex-wrap items-center gap-3">
|
||||||
<div class="mr-auto">
|
<div class="mr-auto">
|
||||||
<h2 class="font-semibold">Sofort prüfen</h2>
|
<h2 class="text-base font-semibold text-slate-800">Sofort prüfen</h2>
|
||||||
<p class="text-xs text-slate-500">Führt denselben Check aus wie der tägliche Hintergrund-Job ({{ fenster_tage }} Tage vor dem Redaktionsschluss). Doppelerinnerungen sind ausgeschlossen.</p>
|
<p class="text-xs text-slate-500">Führt denselben Check aus wie der tägliche Hintergrund-Job ({{ fenster_tage }} Tage vor dem Redaktionsschluss). Doppelerinnerungen sind ausgeschlossen.</p>
|
||||||
</div>
|
</div>
|
||||||
<form method="post" action="/erinnerung/pruefen">
|
<form method="post" action="/erinnerung/pruefen">
|
||||||
@@ -112,16 +112,16 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="bg-white border border-slate-200 rounded-xl shadow-sm p-4 mb-6">
|
<div class="bg-white border border-slate-200 rounded-xl shadow-sm p-4 mb-6">
|
||||||
<h2 class="font-semibold mb-3">Erinnerungsstatus</h2>
|
<h2 class="text-base font-semibold text-slate-800 mb-3">Erinnerungsstatus</h2>
|
||||||
<p class="text-xs text-slate-500 mb-3">Wer wurde für welche Ausgabe wann erinnert? Pro Ausgabe und Benutzer wird höchstens einmal erinnert.</p>
|
<p class="text-xs text-slate-500 mb-3">Wer wurde für welche Ausgabe wann erinnert? Pro Ausgabe und Benutzer wird höchstens einmal erinnert.</p>
|
||||||
<div class="overflow-x-auto">
|
<div class="overflow-x-auto">
|
||||||
<table class="w-full text-sm">
|
<table class="w-full text-sm">
|
||||||
<thead class="bg-slate-50 text-left text-slate-500">
|
<thead class="bg-slate-50 text-left text-slate-500">
|
||||||
<tr>
|
<tr>
|
||||||
<th class="px-4 py-3 font-medium">Ausgabe</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Ausgabe</th>
|
||||||
<th class="px-4 py-3 font-medium">Rezensent</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Rezensent</th>
|
||||||
<th class="px-4 py-3 font-medium">Kanäle</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Kanäle</th>
|
||||||
<th class="px-4 py-3 font-medium">Erinnert am</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Erinnert am</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="divide-y divide-slate-100">
|
<tbody class="divide-y divide-slate-100">
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{% block titel %}{{ titel }} — Spiele-Redaktion{% endblock %}
|
{% block titel %}{{ titel }} — Spiele-Redaktion{% endblock %}
|
||||||
{% block inhalt %}
|
{% block inhalt %}
|
||||||
<h1 class="text-2xl font-bold mb-2">{{ titel }}</h1>
|
<h1 class="text-2xl font-bold text-slate-900 mb-2">{{ titel }}</h1>
|
||||||
<p class="text-slate-600 mb-4 max-w-3xl">
|
<p class="text-slate-600 mb-4 max-w-3xl">
|
||||||
Redaktionslisten als Datei herunterladen:
|
Redaktionslisten als Datei herunterladen:
|
||||||
<strong>CSV</strong> (Semikolon-getrennt, UTF-8 mit BOM — direkt in Excel
|
<strong>CSV</strong> (Semikolon-getrennt, UTF-8 mit BOM — direkt in Excel
|
||||||
|
|||||||
@@ -55,10 +55,10 @@
|
|||||||
<table class="w-full text-sm">
|
<table class="w-full text-sm">
|
||||||
<thead class="text-left text-slate-500 sticky top-0 z-10 [&>tr>th]:bg-slate-50 [&>tr>th]:shadow-[inset_0_-1px_0_0_#e2e8f0]">
|
<thead class="text-left text-slate-500 sticky top-0 z-10 [&>tr>th]:bg-slate-50 [&>tr>th]:shadow-[inset_0_-1px_0_0_#e2e8f0]">
|
||||||
<tr>
|
<tr>
|
||||||
<th class="px-4 py-3 font-medium">Cover</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Cover</th>
|
||||||
{% set basis = '/neuheiten?q=' ~ (q | urlencode) ~ '&status=' ~ (status_filter | urlencode) %}
|
{% set basis = '/neuheiten?q=' ~ (q | urlencode) ~ '&status=' ~ (status_filter | urlencode) %}
|
||||||
{% for key, label in [('titel', 'Spieltitel'), ('verlag', 'Verlag'), ('autor', 'Autor'), ('jahr', 'Erscheinungsjahr'), ('status', 'Status'), ('aktualisiert', 'Aktualisiert')] %}
|
{% for key, label in [('titel', 'Spieltitel'), ('verlag', 'Verlag'), ('autor', 'Autor'), ('jahr', 'Erscheinungsjahr'), ('status', 'Status'), ('aktualisiert', 'Aktualisiert')] %}
|
||||||
<th class="px-4 py-3 font-medium whitespace-nowrap">
|
<th class="px-4 py-3 font-medium whitespace-nowrap text-xs uppercase tracking-wider">
|
||||||
{% if sort == key %}
|
{% if sort == key %}
|
||||||
<a href="{{ basis }}&sort={{ key }}&richtung={{ 'auf' if richtung == 'ab' else 'ab' }}"
|
<a href="{{ basis }}&sort={{ key }}&richtung={{ 'auf' if richtung == 'ab' else 'ab' }}"
|
||||||
class="inline-flex items-center gap-1 hover:text-emerald-700">{{ label }}
|
class="inline-flex items-center gap-1 hover:text-emerald-700">{{ label }}
|
||||||
@@ -71,7 +71,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
</th>
|
</th>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
<th class="px-4 py-3 font-medium">Aktion</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Aktion</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="divide-y divide-slate-100">
|
<tbody class="divide-y divide-slate-100">
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{% block titel %}{{ titel }} — Spiele-Redaktion{% endblock %}
|
{% block titel %}{{ titel }} — Spiele-Redaktion{% endblock %}
|
||||||
{% block inhalt %}
|
{% block inhalt %}
|
||||||
<h1 class="text-2xl font-bold mb-2">{{ titel }}</h1>
|
<h1 class="text-2xl font-bold text-slate-900 mb-2">{{ titel }}</h1>
|
||||||
<p class="text-slate-600 mb-4">
|
<p class="text-slate-600 mb-4">
|
||||||
Neuheitenliste aus der <a href="https://boardgamegeek.com" class="text-emerald-700 underline">BoardGameGeek</a>-Datenbank.
|
Neuheitenliste aus der <a href="https://boardgamegeek.com" class="text-emerald-700 underline">BoardGameGeek</a>-Datenbank.
|
||||||
Erweiterungen und Prototypen werden beim Sync automatisch gefiltert.
|
Erweiterungen und Prototypen werden beim Sync automatisch gefiltert.
|
||||||
@@ -57,13 +57,13 @@
|
|||||||
<table class="w-full text-xs">
|
<table class="w-full text-xs">
|
||||||
<thead class="text-left text-slate-400">
|
<thead class="text-left text-slate-400">
|
||||||
<tr>
|
<tr>
|
||||||
<th class="px-2 py-1.5 font-medium">Quelle</th>
|
<th class="px-2 py-1.5 font-medium text-xs uppercase tracking-wider">Quelle</th>
|
||||||
<th class="px-2 py-1.5 font-medium">Status</th>
|
<th class="px-2 py-1.5 font-medium text-xs uppercase tracking-wider">Status</th>
|
||||||
<th class="px-2 py-1.5 font-medium">Letzter Lauf</th>
|
<th class="px-2 py-1.5 font-medium text-xs uppercase tracking-wider">Letzter Lauf</th>
|
||||||
<th class="px-2 py-1.5 font-medium text-right">Neu</th>
|
<th class="px-2 py-1.5 font-medium text-right text-xs uppercase tracking-wider">Neu</th>
|
||||||
<th class="px-2 py-1.5 font-medium text-right">Aktualisiert</th>
|
<th class="px-2 py-1.5 font-medium text-right text-xs uppercase tracking-wider">Aktualisiert</th>
|
||||||
<th class="px-2 py-1.5 font-medium text-right">Gefiltert</th>
|
<th class="px-2 py-1.5 font-medium text-right text-xs uppercase tracking-wider">Gefiltert</th>
|
||||||
<th class="px-2 py-1.5 font-medium">Hinweis</th>
|
<th class="px-2 py-1.5 font-medium text-xs uppercase tracking-wider">Hinweis</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="divide-y divide-slate-100">
|
<tbody class="divide-y divide-slate-100">
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{% block titel %}{{ titel_headline }} — Spiele-Redaktion{% endblock %}
|
{% block titel %}{{ titel_headline }} — Spiele-Redaktion{% endblock %}
|
||||||
{% block inhalt %}
|
{% block inhalt %}
|
||||||
<h1 class="text-2xl font-bold mb-2">Eintrag bearbeiten</h1>
|
<h1 class="text-2xl font-bold text-slate-900 mb-2">Eintrag bearbeiten</h1>
|
||||||
<p class="text-slate-600 mb-4">„{{ eintrag.titel }}“ · Rezensent:
|
<p class="text-slate-600 mb-4">„{{ eintrag.titel }}“ · Rezensent:
|
||||||
{% if user.id == eintrag.rezensent_id %}du{% else %}{{ user.display_name }}{% endif %}
|
{% if user.id == eintrag.rezensent_id %}du{% else %}{{ user.display_name }}{% endif %}
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
{% block titel %}{{ titel }} — Spiele-Redaktion{% endblock %}
|
{% block titel %}{{ titel }} — Spiele-Redaktion{% endblock %}
|
||||||
{% block inhalt %}
|
{% block inhalt %}
|
||||||
<div x-data="{ loeschFormular: null, loeschTitel: '' }">
|
<div x-data="{ loeschFormular: null, loeschTitel: '' }">
|
||||||
<h1 class="text-2xl font-bold mb-2">{{ titel }}</h1>
|
<h1 class="text-2xl font-bold text-slate-900 mb-2">{{ titel }}</h1>
|
||||||
<p class="text-slate-600 mb-4">
|
<p class="text-slate-600 mb-4">
|
||||||
Planungsliste der Redaktion: wer reviewt welches Spiel für welche Ausgabe.
|
Planungsliste der Redaktion: wer reviewt welches Spiel für welche Ausgabe.
|
||||||
Jede Eintragung — aus den Neuheiten verschoben oder händisch nachgetragen —
|
Jede Eintragung — aus den Neuheiten verschoben oder händisch nachgetragen —
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div class="bg-white border border-slate-200 rounded-xl shadow-sm p-4 mb-6">
|
<div class="bg-white border border-slate-200 rounded-xl shadow-sm p-4 mb-6">
|
||||||
<h2 class="font-semibold mb-3">Titel händisch nachtragen</h2>
|
<h2 class="text-base font-semibold text-slate-800 mb-3">Titel händisch nachtragen</h2>
|
||||||
<!-- Mobil: Felder untereinander vollbreit; ab sm: flexibel nebeneinander -->
|
<!-- Mobil: Felder untereinander vollbreit; ab sm: flexibel nebeneinander -->
|
||||||
<form method="post" action="/planung/neu" class="grid grid-cols-1 gap-3 sm:flex sm:flex-wrap sm:items-end">
|
<form method="post" action="/planung/neu" class="grid grid-cols-1 gap-3 sm:flex sm:flex-wrap sm:items-end">
|
||||||
<div class="sm:w-64 lg:w-72">
|
<div class="sm:w-64 lg:w-72">
|
||||||
@@ -137,14 +137,14 @@
|
|||||||
<table class="w-full text-sm">
|
<table class="w-full text-sm">
|
||||||
<thead class="text-left text-slate-500 sticky top-0 z-10 [&>tr>th]:bg-slate-50 [&>tr>th]:shadow-[inset_0_-1px_0_0_#e2e8f0]">
|
<thead class="text-left text-slate-500 sticky top-0 z-10 [&>tr>th]:bg-slate-50 [&>tr>th]:shadow-[inset_0_-1px_0_0_#e2e8f0]">
|
||||||
<tr>
|
<tr>
|
||||||
<th class="px-4 py-3 font-medium">Cover</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Cover</th>
|
||||||
<th class="px-4 py-3 font-medium">Spieltitel</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Spieltitel</th>
|
||||||
<th class="px-4 py-3 font-medium">Verlag</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Verlag</th>
|
||||||
<th class="px-4 py-3 font-medium">Ausgabe</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Ausgabe</th>
|
||||||
<th class="px-4 py-3 font-medium">Rezensent</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Rezensent</th>
|
||||||
<th class="px-4 py-3 font-medium">Status</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Status</th>
|
||||||
<th class="px-4 py-3 font-medium">Aktualisiert</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Aktualisiert</th>
|
||||||
<th class="px-4 py-3 font-medium">Aktionen</th>
|
<th class="px-4 py-3 font-medium text-xs uppercase tracking-wider">Aktionen</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="divide-y divide-slate-100">
|
<tbody class="divide-y divide-slate-100">
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{% block titel %}{{ titel_headline }} — Spiele-Redaktion{% endblock %}
|
{% block titel %}{{ titel_headline }} — Spiele-Redaktion{% endblock %}
|
||||||
{% block inhalt %}
|
{% block inhalt %}
|
||||||
<h1 class="text-2xl font-bold mb-2">{{ titel_headline }}</h1>
|
<h1 class="text-2xl font-bold text-slate-900 mb-2">{{ titel_headline }}</h1>
|
||||||
<p class="text-slate-600 mb-4">
|
<p class="text-slate-600 mb-4">
|
||||||
Die automatische Dedup-Prüfung hat Treffer ergeben. Bitte prüfen, bevor
|
Die automatische Dedup-Prüfung hat Treffer ergeben. Bitte prüfen, bevor
|
||||||
der Eintrag angelegt wird.
|
der Eintrag angelegt wird.
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
<input type="hidden" name="{{ name }}" value="{{ wert }}">
|
<input type="hidden" name="{{ name }}" value="{{ wert }}">
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
<h2 class="font-semibold mb-3">Welcher Verlag soll geführt werden?</h2>
|
<h2 class="text-base font-semibold text-slate-800 mb-3">Welcher Verlag soll geführt werden?</h2>
|
||||||
<div class="space-y-2 mb-4 text-sm">
|
<div class="space-y-2 mb-4 text-sm">
|
||||||
{% for option in verlags_optionen %}
|
{% for option in verlags_optionen %}
|
||||||
<label class="flex items-center gap-2 cursor-pointer">
|
<label class="flex items-center gap-2 cursor-pointer">
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{% block titel %}{% if aktion == 'neu' %}Neuer Benutzer{% else %}Benutzer bearbeiten{% endif %} — {{ app_name }}{% endblock %}
|
{% block titel %}{% if aktion == 'neu' %}Neuer Benutzer{% else %}Benutzer bearbeiten{% endif %} — {{ app_name }}{% endblock %}
|
||||||
{% block inhalt %}
|
{% block inhalt %}
|
||||||
<h1 class="text-2xl font-bold mb-4">
|
<h1 class="text-2xl font-bold text-slate-900 mb-4">
|
||||||
{% if aktion == 'neu' %}Neuer Benutzer{% else %}Benutzer „{{ ziel.username }}“ bearbeiten{% endif %}
|
{% if aktion == 'neu' %}Neuer Benutzer{% else %}Benutzer „{{ ziel.username }}“ bearbeiten{% endif %}
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
{% block titel %}Benutzerverwaltung — {{ app_name }}{% endblock %}
|
{% block titel %}Benutzerverwaltung — {{ app_name }}{% endblock %}
|
||||||
{% block inhalt %}
|
{% block inhalt %}
|
||||||
<div class="flex items-center justify-between mb-4">
|
<div class="flex items-center justify-between mb-4">
|
||||||
<h1 class="text-2xl font-bold">Benutzerverwaltung</h1>
|
<h1 class="text-2xl font-bold text-slate-900">Benutzerverwaltung</h1>
|
||||||
<a href="/admin/benutzer/neu"
|
<a href="/admin/benutzer/neu"
|
||||||
class="bg-emerald-600 hover:bg-emerald-700 active:bg-emerald-800 text-white rounded-lg px-3 py-2 text-sm font-medium min-h-[44px] inline-flex items-center">
|
class="bg-emerald-600 hover:bg-emerald-700 active:bg-emerald-800 text-white rounded-lg px-3 py-2 text-sm font-medium min-h-[44px] inline-flex items-center">
|
||||||
+ Neuer Benutzer
|
+ Neuer Benutzer
|
||||||
@@ -13,12 +13,12 @@
|
|||||||
<table class="w-full text-sm">
|
<table class="w-full text-sm">
|
||||||
<thead class="bg-slate-50 text-left text-slate-500">
|
<thead class="bg-slate-50 text-left text-slate-500">
|
||||||
<tr>
|
<tr>
|
||||||
<th class="px-4 py-2 font-medium">Benutzername</th>
|
<th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Benutzername</th>
|
||||||
<th class="px-4 py-2 font-medium">Anzeigename</th>
|
<th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Anzeigename</th>
|
||||||
<th class="px-4 py-2 font-medium">Rolle</th>
|
<th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Rolle</th>
|
||||||
<th class="px-4 py-2 font-medium">Status</th>
|
<th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Status</th>
|
||||||
<th class="px-4 py-2 font-medium">Erstellt am</th>
|
<th class="px-4 py-2 font-medium text-xs uppercase tracking-wider">Erstellt am</th>
|
||||||
<th class="px-4 py-2"></th>
|
<th class="px-4 py-2 text-xs uppercase tracking-wider"></th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="divide-y divide-slate-100">
|
<tbody class="divide-y divide-slate-100">
|
||||||
|
|||||||
Reference in New Issue
Block a user