{% extends "base.html" %} {% block content %}

⚙️ Verwaltung & Orga-Cockpit

Portal: {{ tenant.name }}

🛒 Zur Einkaufs- & Kassenansicht {% if event %} 📅 Outlook (.ics) {% endif %}
{% if success %}
✓ {{ success }}
{% endif %} {% if error %}
⚠️ {{ error }}
{% endif %} {% if bulk_count %}
✓ Erfolgreich {{ bulk_count }} Einladungen generiert! Die Links sind unten aufgeführt.
{% endif %} {% if active_tab == 'orders' %} {% if event %}

{{ event.title }}

Termin: {{ event.event_date.strftime('%d.%m.%Y') }} | Bestellschluss: {{ event.deadline.strftime('%d.%m. um %H:%M Uhr') }}
{% if event.status != 'completed' %}
{% else %} 🏁 Abgeschlossen & Gastkonten archiviert {% endif %}
{% if event.sponsor_name %} {% endif %}
Gesamtsumme Einkauf
{{ "%.2f"|format(total_revenue) }} €
Bereits bezahlt
{% if event.sponsor_name %}Gesponsert{% else %}{{ "%.2f"|format(total_paid) }} €{% endif %}
Noch offen
{% if event.sponsor_name %}0,00 €{% else %}{{ "%.2f"|format(total_revenue - total_paid) }} €{% endif %}
Teilnehmer
{{ orders|length }} Personen
{% if event and event.status == 'open' %}
{% endif %}

🛒 Sammelliste für Metzger & Bäcker

Aufsummierte Gesamtmengen für den Einkauf:

{% for name, data in item_sums.items() %} {% else %} {% endfor %}
Artikel Gesamtmenge
{{ name }} {{ data.quantity }} {{ data.unit }}
Noch keine Bestellungen eingegangen.

👥 Wer hat bestellt? (Strichliste)

Einzelübersicht mit Artikeln und Kassenstatus:

{% for order in orders %} {% else %} {% endfor %}
Kollege / Gast Bestellung Betrag Status
{{ order.display_name }} {% if order.user and order.user.role == 'guest' %} Gast {% elif not order.user and order.guest_display_name %} Archivierter Gast {% endif %} {% if order.user %}
{{ order.user.email }} {% endif %}
    {% for item in order.items %}
  • {{ item.quantity }}x {{ item.product.name }}
  • {% endfor %}
{{ "%.2f"|format(order.total_price) }} € {% if event.sponsor_name %}
von Sponsor{% endif %}
{% if event.sponsor_name %} {% else %}
{% endif %}
Noch keine Bestellungen vorhanden.
{% else %}

Keine Runde ausgewählt

Wähle oben eine Runde aus oder erstelle eine neue.

{% endif %} {% elif active_tab == 'event' %} {% if warn_active_event %}

⚠️ Aktives Event läuft bereits!

Es gibt aktuell noch das geplante Event {{ warn_active_event.title }} am {{ warn_active_event.event_date.strftime('%d.%m.%Y') }}. Möchtest du das bisherige Event bearbeiten oder wirklich ein neues, paralleles Event starten?

Zum bisherigen Event
{% endif %}
{% if event %}

✏️ Event bearbeiten

Aktuelle Runde: {{ event.title }}

Der ausgewählte Kollege sieht diese Runde direkt in der Einkaufs-Zentrale.
{% endif %}

➕ Neue Brotzeitrunde planen

Erstelle einen neuen Termin für dein Team:

{% elif active_tab == 'products' %}

🥨 Sortiment verwalten ({{ products|length }} Artikel)

Artikel für die Bestellkarte anpassen, aktivieren oder deaktivieren:

⚡ Standard-Bayerisch vorladen
{% for prod in products %} {% else %} {% endfor %}
Artikel Beschreibung Preis Einheit Status Aktionen
{{ prod.name }} {% if prod.id in locked_product_ids %} 🔒 Gesichert {% endif %} {{ prod.description }} {{ "%.2f"|format(prod.price) }} € {{ prod.unit }} {% if prod.is_active %} Aktiv {% else %} Inaktiv {% endif %}
{% if prod.id in locked_product_ids and prod.is_active %} {% else %}
{% endif %}
Noch keine Produkte angelegt. Nutze das Formular unten oder lade das Standard-Sortiment!

➕ Neues Produkt hinzufügen

{% elif active_tab == 'team' %}

✉️ Team einladen

⚡ Massen-Einladung (Mehrere E-Mails)

Füge mehrere Adressen kommagetrennt oder zeilenweise ein (z. B. aus Outlook/Slack kopiert):


🔗 Offenen Einladungslink generieren

Dauerhafter Link für das ganze Team (z. B. Pinned Message im Chat):

{% if pending_invitations %}

Aktive Einladungslinks ({{ pending_invitations|length }})

{% for inv in pending_invitations %}
{% if inv.email %}{{ inv.email }}{% else %}Dauerhafter Team-Link{% endif %} {{ inv.role }} {% if inv.is_reusable %} Dauerhaft {% endif %}
{% if inv.expires_at %}Gültig bis {{ inv.expires_at.strftime('%d.%m.%Y') }}{% else %}Unbegrenzt gültig{% endif %}
{% endfor %}
{% endif %}

👥 Registrierte Teammitglieder ({{ team_members|length }})

Feste Teamkonten dieses Portals:

{% for member in team_members %} {% endfor %}
Name & E-Mail Rolle Guthaben Aktionen
{{ member.first_name }} {{ member.last_name }}
{{ member.email }}
{% if current_user.role == 'admin' and member.id != current_user.id %}
{% else %} {% if member.role == 'admin' %} 👑 Admin {% elif member.role == 'organizer' %} 📋 Organisator {% else %} 👤 Mitarbeiter {% endif %} {% endif %}
{{ "%.2f"|format(member.balance) }} €
{% if current_user.role == 'admin' %} {% if member.id != current_user.id %}
{% endif %} {% endif %}
{% if active_guests %}

👤 Aktive Gäste (für anstehende Events)

Werden beim Klick auf „Event abschließen & aufräumen“ automatisch archiviert:

{% for guest in active_guests %} {% endfor %}
Name E-Mail / Kennung Rolle
{{ guest.first_name }} {{ guest.last_name }} {{ guest.email }} Gast
{% endif %}
{% endif %}
{% endblock %}