{% extends "base.html" %} {% block title %}Tabulkový manažer — {{ me.name }} — MedCover{% endblock %} {% block extra_head %} {% endblock %} {% from 'macros/badges.html' import badge_status %} {% set status_colors = { 'Koncept': 'secondary', 'Zveřejněná': 'primary', 'Přihlášky otevřeny': 'success', 'Přihlášky uzavřeny': 'warning', 'Dokončena': 'dark', 'Zrušena': 'danger' } %} {% block content %}

Tabulkový manažer

{{ me.name }}

{% if current_user.has_permission('event.create') %} + Nová akce {% endif %} ← Zpět
{% if not rows %}

Tato nadřazená akce neobsahuje žádné akce.

{% else %} {# ── Status filter bar ──────────────────────────────────────────────────── #}
Stav:
{# ── Event type filter bar ────────────────────────────────────────────────── #}
Typ:
{% for i in range(max_spot_cols) %} {% endfor %} {% set ns = namespace(prev_event_id=None, prev_date=None) %} {% for row in rows %} {% set event = row.event %} {% set row_date = event.start_datetime | localdt('%Y-%m-%d') %} {% if ns.prev_date is not none and row_date != ns.prev_date %} {% set row_class = "tm-sep-day" %} {% elif ns.prev_event_id is not none and event.id != ns.prev_event_id %} {% set row_class = "tm-sep-event" %} {% else %} {% set row_class = "" %} {% endif %} {% set ns.prev_event_id = event.id %} {% set ns.prev_date = row_date %} {% if loop.first or rows[loop.index0 - 1].event.id != event.id %} {% endif %} {% set ec = row.event_color or '' %} {# ── Od ── #} {# ── Do ── #} {# ── Hod. ── #} {# ── Pozic ── #} {# ── Spot cells ── #} {% for spot in row.spots %} {% endfor %} {# ── Empty padding cells ── #} {% for _ in range(max_spot_cols - (row.spots | length)) %} {% endfor %} {% endfor %}
Datum Akce Kvalifikace Od Do Hod. Pozic{{ i + 1 }}
{% if can_create_event %} {% endif %} {% if can_archive_draft and event.status.name == 'DRAFT' %} {% endif %} {% if can_edit_event %} {% endif %} {{ badge_status(event.status.value, status_colors) }} {% if (event.status.name == 'DRAFT' and can_publish) or (event.status.name == 'PUBLISHED' and can_open_assignments) %} {% endif %} {% if can_edit_event %}
{{ event.start_datetime | localdt('%d.%m.') }} {{ event.start_datetime | czechday }}
{% else %} {{ event.start_datetime | localdt('%d.%m.') }} {{ event.start_datetime | czechday }} {% endif %}
{{ event.name }} {% if can_edit_event %} {% endif %} {% for q in row.qual_objs %} {{ q.name }} {% else %} {% endfor %} {% if can_edit_event %}
{{ event.start_datetime | localdt('%H:%M') }}
{% else %} {{ event.start_datetime | localdt('%H:%M') }} {% endif %}
{% if can_edit_event %}
{{ event.end_datetime | localdt('%H:%M') }}
{% else %} {{ event.end_datetime | localdt('%H:%M') }} {% endif %}
{{ event.scheduled_hours | cznum }} {% if can_edit_event %}
{{ row.spots | length }}
{% else %} {{ row.spots | length }} {% endif %}
{% if spot.assignment %} {{ spot.assignment.user.name }} {% if row.can_manage %} {% endif %} {% elif row.can_manage %} {% endif %}

Žádné akce neodpovídají aktivním filtrům.

{# ── Inline time-edit popover (shared, moved into DOM as needed) ── #} {# ── Color picker popover ── #} {# ── Advance-status confirmation popup ── #} {# ── Inline name-edit popover ── #} {# ── Inline spots-count error toast ── #} {% endif %} {% endblock %}