{% extends "showcase/cabinet/booking/base_booking.html" %} {% block title %}Booking — Schedule{% endblock %} {% block extra_css %} {% endblock %} {% block cabinet_content %}
{# ── Date navigation bar ── #}
{# Mini date picker dropdown #}
March 2026
MoTuWeThFrSaSu
{{ staff_list|length }} specialists · {{ slot_height }}px / 30 min New booking
{# ── Calendar grid ── #}
{# ── Time label column ── #}
{% for slot in time_slots %}
{% if slot.is_hour %}{{ slot.label }}{% else %}30{% endif %}
{% endfor %}
{# ── Staff columns ── #} {% for staff in staff_list %}
{# Staff header #}
{{ staff.initials }}
{{ staff.name }}
{{ staff.appointments|length }} appts.
{# Slots + cards — calc(var(--slot-h) * N) ── #}
{% for slot in time_slots %}
{% endfor %} {% for appt in staff.appointments %}
{% if appt.card_size == 'mini' %}
{{ appt.client }}{{ appt.status_short }}
{% elif appt.card_size == 'mid' %}
{{ appt.client }}{{ appt.status_short }}
{{ appt.service }}
{% else %}
{{ appt.client }}{{ appt.status_short }}
{{ appt.service }}
{{ appt.price }}
{% endif %}
{% endfor %}
{% endfor %}
{# ── Card detail modal ── #}
{# Header: client avatar + name + close #}
{# Service info block #}
{# Action buttons #}
{# ── New booking hint modal (placeholder) ── #}

Here the booking constructor will open with the selected specialist and time.

{% endblock %} {% block extra_js %} {% endblock %}