Refine planner filters and compact selection cards
This commit is contained in:
@@ -14,90 +14,53 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="two-column">
|
||||
<article class="panel">
|
||||
<div class="panel-head">
|
||||
<h2>Tagesvorlagen</h2>
|
||||
<a href="{{ url_for('main.day_template_create', source_date=selected_date.isoformat()) }}">Als Vorlage speichern</a>
|
||||
</div>
|
||||
{% if day_templates %}
|
||||
<div class="stack-sections">
|
||||
{% for template in day_templates %}
|
||||
<form method="post" action="{{ url_for('main.day_template_apply', template_id=template.id) }}" class="inline-form template-apply-form">
|
||||
{{ csrf_input() }}
|
||||
<input type="hidden" name="target_date" value="{{ selected_date.isoformat() }}">
|
||||
<div class="template-card">
|
||||
<strong>{{ template.name }}</strong>
|
||||
<small>{{ template.visibility_label }} · {{ template.owner_label }}</small>
|
||||
</div>
|
||||
<button type="submit">Vorlage anwenden</button>
|
||||
</form>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% else %}
|
||||
<p class="empty-state">Wenn du einen Tag öfter wiederverwenden möchtest, kannst du ihn hier als Tagesvorlage speichern.</p>
|
||||
{% endif %}
|
||||
</article>
|
||||
|
||||
{% if day_hints %}
|
||||
<article class="panel">
|
||||
<div class="panel-head">
|
||||
<h2>Heute im Blick</h2>
|
||||
</div>
|
||||
<div class="hint-list">
|
||||
{% for hint in day_hints %}
|
||||
<p class="hint-chip">{{ hint }}</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</article>
|
||||
{% endif %}
|
||||
</section>
|
||||
|
||||
<section class="planner-day-stack">
|
||||
{% set hidden_snack_sections = sections | selectattr('is_snack_daypart') | rejectattr('visible_by_default') | list %}
|
||||
{% if hidden_snack_sections %}
|
||||
<section class="panel compact-form-panel snack-reveal-panel" data-day-snack-actions>
|
||||
<div class="panel-head">
|
||||
<h2>Zwischenmahlzeit hinzufügen</h2>
|
||||
</div>
|
||||
<div class="chip-row snack-reveal-actions">
|
||||
{% for section in hidden_snack_sections %}
|
||||
<button
|
||||
class="ghost-button snack-reveal-button"
|
||||
type="button"
|
||||
data-day-snack-open
|
||||
data-target="#daypart-{{ section.daypart.id }}"
|
||||
>
|
||||
{{ section.daypart.name }}
|
||||
</button>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</section>
|
||||
{% endif %}
|
||||
|
||||
{% for section in sections %}
|
||||
<details
|
||||
class="day-tile{% if section.entries %} has-entries{% endif %}{% if section.selected_quick_action %} has-selection{% endif %}"
|
||||
id="daypart-{{ section.daypart.id }}"
|
||||
{% if section.is_snack_daypart and not section.visible_by_default %}hidden data-day-snack-tile{% endif %}
|
||||
{% if section.is_open %}open{% endif %}
|
||||
>
|
||||
<summary class="day-tile-summary">
|
||||
<div class="day-tile-summary-main">
|
||||
<div class="day-tile-icon"><span class="ui-icon {{ daypart_icon_class(section.daypart.slug) }}"></span></div>
|
||||
<div>
|
||||
<h2>{{ section.daypart.name }}</h2>
|
||||
{% if section.summary_items %}
|
||||
<p class="day-tile-summary-text">{{ section.summary_items|join(', ') }}</p>
|
||||
{% else %}
|
||||
<p class="muted">Noch offen. Öffnen, wenn du etwas eintragen möchtest.</p>
|
||||
{% endif %}
|
||||
<section class="planner-day-layout">
|
||||
<div class="planner-day-main">
|
||||
<section class="planner-day-stack">
|
||||
{% set hidden_snack_sections = sections | selectattr('is_snack_daypart') | rejectattr('visible_by_default') | list %}
|
||||
{% if hidden_snack_sections %}
|
||||
<section class="panel compact-form-panel snack-reveal-panel" data-day-snack-actions>
|
||||
<div class="panel-head">
|
||||
<h2>Zwischenmahlzeit hinzufügen</h2>
|
||||
</div>
|
||||
</div>
|
||||
<span class="status-pill{% if section.entries %} status-home{% endif %}">{{ section.entries|length }} geplant</span>
|
||||
</summary>
|
||||
<div class="chip-row snack-reveal-actions">
|
||||
{% for section in hidden_snack_sections %}
|
||||
<button
|
||||
class="ghost-button snack-reveal-button"
|
||||
type="button"
|
||||
data-day-snack-open
|
||||
data-target="#daypart-{{ section.daypart.id }}"
|
||||
>
|
||||
{{ section.daypart.name }}
|
||||
</button>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</section>
|
||||
{% endif %}
|
||||
|
||||
<div class="day-tile-body">
|
||||
{% for section in sections %}
|
||||
<details
|
||||
class="day-tile{% if section.entries %} has-entries{% endif %}{% if section.selected_quick_action %} has-selection{% endif %}"
|
||||
id="daypart-{{ section.daypart.id }}"
|
||||
{% if section.is_snack_daypart and not section.visible_by_default %}hidden data-day-snack-tile{% endif %}
|
||||
{% if section.is_open %}open{% endif %}
|
||||
>
|
||||
<summary class="day-tile-summary">
|
||||
<div class="day-tile-summary-main">
|
||||
<div class="day-tile-icon"><span class="ui-icon {{ daypart_icon_class(section.daypart.slug) }}"></span></div>
|
||||
<div>
|
||||
<h2>{{ section.daypart.name }}</h2>
|
||||
{% if section.summary_items %}
|
||||
<p class="day-tile-summary-text">{{ section.summary_items|join(', ') }}</p>
|
||||
{% else %}
|
||||
<p class="muted">Noch offen. Öffnen, wenn du etwas eintragen möchtest.</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<span class="status-pill{% if section.entries %} status-home{% endif %}">{{ section.entries|length }} geplant</span>
|
||||
</summary>
|
||||
|
||||
<div class="day-tile-body">
|
||||
{% if section.selected_quick_action %}
|
||||
<div class="suggestion-card selected-quick-action">
|
||||
<span class="status-pill status-home">Schon ausgewählt</span>
|
||||
@@ -301,8 +264,49 @@
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
</details>
|
||||
{% endfor %}
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<aside class="planner-day-sidebar">
|
||||
<article class="panel">
|
||||
<div class="panel-head">
|
||||
<h2>Tagesvorlagen</h2>
|
||||
<a href="{{ url_for('main.day_template_create', source_date=selected_date.isoformat()) }}">Als Vorlage speichern</a>
|
||||
</div>
|
||||
</details>
|
||||
{% endfor %}
|
||||
{% if day_templates %}
|
||||
<div class="stack-sections">
|
||||
{% for template in day_templates %}
|
||||
<form method="post" action="{{ url_for('main.day_template_apply', template_id=template.id) }}" class="inline-form template-apply-form">
|
||||
{{ csrf_input() }}
|
||||
<input type="hidden" name="target_date" value="{{ selected_date.isoformat() }}">
|
||||
<div class="template-card">
|
||||
<strong>{{ template.name }}</strong>
|
||||
<small>{{ template.visibility_label }} · {{ template.owner_label }}</small>
|
||||
</div>
|
||||
<button type="submit">Vorlage anwenden</button>
|
||||
</form>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% else %}
|
||||
<p class="empty-state">Wenn du einen Tag öfter wiederverwenden möchtest, kannst du ihn hier als Tagesvorlage speichern.</p>
|
||||
{% endif %}
|
||||
</article>
|
||||
|
||||
{% if day_hints %}
|
||||
<article class="panel">
|
||||
<div class="panel-head">
|
||||
<h2>Heute im Blick</h2>
|
||||
</div>
|
||||
<div class="hint-list">
|
||||
{% for hint in day_hints %}
|
||||
<p class="hint-chip">{{ hint }}</p>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</article>
|
||||
{% endif %}
|
||||
</aside>
|
||||
</section>
|
||||
{% endblock %}
|
||||
|
||||
Reference in New Issue
Block a user