feat: Add dedicated buyer dashboard, buyer role assignment, Bavarian White-Blue light/dark mode and mobile drawer
This commit is contained in:
@@ -87,15 +87,17 @@
|
||||
<div class="no-print">
|
||||
<div class="admin-header">
|
||||
<div>
|
||||
<h1>👨🍳 Einkäufer- & Admin-Cockpit</h1>
|
||||
<h1>⚙️ Verwaltung & Orga-Cockpit</h1>
|
||||
<p class="admin-sub">Portal: <strong>{{ tenant.name }}</strong></p>
|
||||
</div>
|
||||
<div class="admin-actions-top">
|
||||
<a href="/einkauf{% if event %}?event_id={{ event.id }}{% endif %}" class="btn-primary" style="text-decoration: none; display: inline-flex; align-items: center; gap: 6px;">
|
||||
🛒 Zur Einkaufs- & Kassenansicht
|
||||
</a>
|
||||
{% if event %}
|
||||
<button onclick="copyShoppingList()" class="btn-primary">📋 Einkaufsliste kopieren</button>
|
||||
<button onclick="copyGuestPassLink('{{ event.id }}', '{{ event.guest_token or '' }}')" class="btn-secondary" title="Gast-Link für Dienstleister">🔗 Dienstleister-Gastlink</button>
|
||||
<a href="/events/{{ event.id }}/calendar.ics" class="btn-secondary" title="Termin als Outlook/Kalenderdatei (.ics) herunterladen" style="text-decoration: none; display: inline-flex; align-items: center;">📅 Outlook (.ics)</a>
|
||||
<button onclick="openOutlookModal()" class="btn-secondary" title="Outlook Einladungsvorlage anzeigen">✉️ Outlook-Vorlage</button>
|
||||
<a href="/events/{{ event.id }}/calendar.ics" class="btn-secondary" title="Termin als Outlook/Kalenderdatei (.ics) herunterladen" style="text-decoration: none; display: inline-flex; align-items: center;">📅 Outlook (.ics)</a>
|
||||
<button onclick="window.print()" class="btn-secondary">🖨️ Liste drucken (A4)</button>
|
||||
{% endif %}
|
||||
</div>
|
||||
@@ -380,6 +382,18 @@
|
||||
<strong>Gäste- & Dienstleister-Bestellungen erlauben</strong>
|
||||
</label>
|
||||
</div>
|
||||
<div class="input-group" style="margin-top: 14px;">
|
||||
<label for="edit_buyer">🛒 Zugewiesener Einkäufer für diese Runde</label>
|
||||
<select id="edit_buyer" name="buyer_id">
|
||||
<option value="">-- Nicht zugewiesen / Admin übernimmt --</option>
|
||||
{% for member in team_members %}
|
||||
<option value="{{ member.id }}" {% if event.buyer_id == member.id %}selected{% endif %}>
|
||||
{{ member.first_name }} {{ member.last_name }} ({{ member.email }})
|
||||
</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
<small class="field-hint">Der ausgewählte Kollege sieht diese Runde direkt in der Einkaufs-Zentrale.</small>
|
||||
</div>
|
||||
<div class="input-group" style="margin-top: 14px;">
|
||||
<label for="edit_status">Status der Runde</label>
|
||||
<select id="edit_status" name="status_val">
|
||||
@@ -428,6 +442,17 @@
|
||||
<strong>Gäste- & Dienstleister-Bestellungen erlauben</strong>
|
||||
</label>
|
||||
</div>
|
||||
<div class="input-group" style="margin-top: 14px;">
|
||||
<label for="new_buyer">🛒 Zugewiesener Einkäufer für diese Runde (Optional)</label>
|
||||
<select id="new_buyer" name="buyer_id">
|
||||
<option value="">-- Nicht zugewiesen / Admin übernimmt --</option>
|
||||
{% for member in team_members %}
|
||||
<option value="{{ member.id }}">
|
||||
{{ member.first_name }} {{ member.last_name }} ({{ member.email }})
|
||||
</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
<button type="submit" class="btn-primary" style="margin-top: 1rem;">Runde jetzt starten</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user