{% extends 'base.html' %} {% block head %} {% include 'rota/partials/flatpickr_includes.html' %} {% endblock %} {% block content %}

{{ rota.name }}

Edit rota

{{ rota.description }}

Period: {{ rota.start_date }} → {{ rota.end_date }}

Solver settings

Solver
{% if solver %}{{ solver }}{% else %}(default){% endif %}
Ratio
{% if solver_ratio is not None %}{{ solver_ratio }}{% else %}{% endif %}
{% if solver_options %}

Solver options

{{ solver_options }}
{% endif %}

RotaBuilder summary

Weeks
{{ weeks_to_rota|default:'—' }}
Shifts
{{ shift_count|default:'—' }}
Workers
{{ worker_count|default:'—' }}
{# constraints sample intentionally omitted here; keep summary compact #}
{% include 'rota/partials/worker_list.html' %}

All leave requests

Constraint options

Configure typed rota constraint options. Click Edit to open the form showing typed fields and descriptions.


Configured constraint values{% if configured_constraints %} ({{ configured_constraints|length }}){% endif %}
{% if configured_constraints %} {% for key, info in configured_constraints.items %} {% endfor %}
KeyValue
{{ key }} {% if info.typed and info.default is not None %} {% if info.value == info.default %}
{{ info.pretty }}
default {% else %}
{{ info.pretty }}
Default: {{ info.default }}
{% endif %} {% else %}
{{ info.pretty }}
{% endif %}
Edit
{% csrf_token %}
{% else %}

No typed constraint options have been configured for this rota.

{% endif %}
{# Run controls and historic runs moved to the bottom of the page. #}
{% include 'rota/partials/shift_list.html' %}

{# Load form via HTMX when user clicks 'Add shift' - initial empty state #}

{% csrf_token %}
Historic runs
{% csrf_token %}
    {% for run in rota.runs.all %}
  • Run {{ run.id }} — {{ run.get_status_display }} {% if run.finished_at %} — finished {{ run.finished_at }}{% endif %} Export
  • {% empty %}
  • No previous runs
  • {% endfor %}
{% endblock %}