166 lines
7.5 KiB
HTML
166 lines
7.5 KiB
HTML
{% extends "base.html" %}
|
|
{% block title %}Vorlagen | Nouri{% endblock %}
|
|
{% block content %}
|
|
<section class="page-intro">
|
|
<div>
|
|
<p class="eyebrow">Vorlagen</p>
|
|
<h1>Bewährtes ruhig wiederverwenden</h1>
|
|
<p class="lead">Tagesvorlagen, Wochenvorlagen und kleine Pakete helfen dabei, vertraute Muster mit wenig Tipparbeit erneut zu nutzen.</p>
|
|
</div>
|
|
<div class="hero-actions">
|
|
<a class="button" href="{{ url_for('main.day_template_create') }}">Neue Tagesvorlage</a>
|
|
<a class="button secondary" href="{{ url_for('main.week_template_create') }}">Neue Wochenvorlage</a>
|
|
<a class="button secondary" href="{{ url_for('main.item_set_create') }}">Neues Paket</a>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="panel compact-form-panel">
|
|
<form method="get" class="filter-form">
|
|
<label class="wide">
|
|
Suche
|
|
<input type="text" name="q" value="{{ query }}" placeholder="Nach Namen suchen">
|
|
</label>
|
|
<label>
|
|
Sichtbarkeit
|
|
<select name="visibility">
|
|
{% for value, label in visibility_options %}
|
|
<option value="{{ value }}" {% if selected_visibility == value %}selected{% endif %}>{{ label }}</option>
|
|
{% endfor %}
|
|
</select>
|
|
</label>
|
|
<div class="filter-actions">
|
|
<button type="submit">Filtern</button>
|
|
<a class="ghost-button" href="{{ url_for('main.template_library') }}">Zurücksetzen</a>
|
|
</div>
|
|
</form>
|
|
</section>
|
|
|
|
{% if template_hints %}
|
|
<section class="panel">
|
|
<div class="panel-head">
|
|
<h2>Gerade passend</h2>
|
|
</div>
|
|
<div class="hint-list">
|
|
{% for hint in template_hints %}
|
|
<p class="hint-chip">{{ hint }}</p>
|
|
{% endfor %}
|
|
</div>
|
|
</section>
|
|
{% endif %}
|
|
|
|
<section class="template-library-grid">
|
|
<article class="panel">
|
|
<div class="panel-head">
|
|
<h2>Tagesvorlagen</h2>
|
|
<a href="{{ url_for('main.day_template_create') }}">Neu anlegen</a>
|
|
</div>
|
|
{% if day_templates %}
|
|
<div class="stack-sections">
|
|
{% for template in day_templates %}
|
|
<article class="template-list-card">
|
|
<div>
|
|
<strong>{{ template.name }}</strong>
|
|
{% if template.description %}
|
|
<p class="muted">{{ template.description }}</p>
|
|
{% endif %}
|
|
<div class="chip-row">
|
|
<span class="chip">{{ template.visibility_label }}</span>
|
|
<span class="chip status-soft">{{ template.owner_label }}</span>
|
|
{% if template.last_used_at %}
|
|
<span class="chip">Zuletzt genutzt</span>
|
|
{% endif %}
|
|
</div>
|
|
</div>
|
|
<div class="row-actions">
|
|
<form method="post" action="{{ url_for('main.day_template_apply', template_id=template.id) }}">
|
|
{{ csrf_input() }}
|
|
<input type="hidden" name="target_date" value="{{ today.isoformat() }}">
|
|
<button type="submit">Heute anwenden</button>
|
|
</form>
|
|
{% if template.can_edit %}
|
|
<a class="ghost-button" href="{{ url_for('main.day_template_edit', template_id=template.id) }}">Bearbeiten</a>
|
|
{% endif %}
|
|
</div>
|
|
</article>
|
|
{% endfor %}
|
|
</div>
|
|
{% else %}
|
|
<p class="empty-state">Noch keine passende Tagesvorlage. Du kannst eine Vorlage direkt neu anlegen oder aus einem Tagesplan speichern.</p>
|
|
{% endif %}
|
|
</article>
|
|
|
|
<article class="panel">
|
|
<div class="panel-head">
|
|
<h2>Wochenvorlagen</h2>
|
|
<a href="{{ url_for('main.week_template_create') }}">Neu anlegen</a>
|
|
</div>
|
|
{% if week_templates %}
|
|
<div class="stack-sections">
|
|
{% for template in week_templates %}
|
|
<article class="template-list-card">
|
|
<div>
|
|
<strong>{{ template.name }}</strong>
|
|
{% if template.description %}
|
|
<p class="muted">{{ template.description }}</p>
|
|
{% endif %}
|
|
<div class="chip-row">
|
|
<span class="chip">{{ template.visibility_label }}</span>
|
|
<span class="chip status-soft">{{ template.owner_label }}</span>
|
|
</div>
|
|
</div>
|
|
<div class="row-actions">
|
|
<form method="post" action="{{ url_for('main.week_template_apply', template_id=template.id) }}">
|
|
{{ csrf_input() }}
|
|
<input type="hidden" name="target_week" value="{{ today.isoformat() }}">
|
|
<button type="submit">Diese Woche anwenden</button>
|
|
</form>
|
|
{% if template.can_edit %}
|
|
<a class="ghost-button" href="{{ url_for('main.week_template_edit', template_id=template.id) }}">Bearbeiten</a>
|
|
{% endif %}
|
|
</div>
|
|
</article>
|
|
{% endfor %}
|
|
</div>
|
|
{% else %}
|
|
<p class="empty-state">Noch keine Wochenvorlage. Eine gute Woche lässt sich später hier ganz leicht wiederverwenden.</p>
|
|
{% endif %}
|
|
</article>
|
|
</section>
|
|
|
|
<section class="panel">
|
|
<div class="panel-head">
|
|
<h2>Kleine Pakete</h2>
|
|
<a href="{{ url_for('main.item_set_create') }}">Neues Paket</a>
|
|
</div>
|
|
{% if item_sets %}
|
|
<div class="stack-sections">
|
|
{% for item_set in item_sets %}
|
|
<article class="template-list-card">
|
|
<div>
|
|
<strong>{{ item_set.name }}</strong>
|
|
{% if item_set.description %}
|
|
<p class="muted">{{ item_set.description }}</p>
|
|
{% endif %}
|
|
<div class="chip-row">
|
|
<span class="chip">{{ item_set.visibility_label }}</span>
|
|
<span class="chip status-soft">{{ item_set.owner_label }}</span>
|
|
</div>
|
|
</div>
|
|
<div class="row-actions">
|
|
<form method="post" action="{{ url_for('main.item_set_apply', set_id=item_set.id) }}">
|
|
{{ csrf_input() }}
|
|
<button type="submit">Auf Einkaufsliste</button>
|
|
</form>
|
|
{% if item_set.can_edit %}
|
|
<a class="ghost-button" href="{{ url_for('main.item_set_edit', set_id=item_set.id) }}">Bearbeiten</a>
|
|
{% endif %}
|
|
</div>
|
|
</article>
|
|
{% endfor %}
|
|
</div>
|
|
{% else %}
|
|
<p class="empty-state">Pakete eignen sich gut für kleine Bündel wie schnelles Frühstück, sicherer Snack oder Einkauf für zwei Tage.</p>
|
|
{% endif %}
|
|
</section>
|
|
{% endblock %}
|