{% extends "pretixcontrol/event/base.html" %} {% load i18n %} {% load static %} {% block title %}{% trans "SolverForge Seat Planner" %}{% endblock %} {% block custom_header %} {{ block.super }} {% endblock %} {% block content %} {% if request.event.has_subevents %}
{% trans "Event date" %} {% include "pretixcontrol/event/fragment_subevent_choice_simple.html" %}
{% endif %} {% if not scope_ready %}
{% trans "Select one date in this event series to plan its seating." %}
{% elif input_error %} {% endif %} {% if proposal_is_stale or proposal.status == "stale" %} {% elif proposal.status == "committed" %}
{% blocktrans trimmed with id=proposal.pk %} Proposal {{ id }} is committed. The map now reflects persisted pretix order-position seats. {% endblocktrans %}
{% elif proposal.status == "proposed" %}
{% blocktrans trimmed with id=proposal.pk %} Proposal {{ id }} is a preview only. No pretix seat assignment has changed. {% endblocktrans %}
{% endif %} {% if snapshot %}
{{ snapshot.summary.parties }} {% trans "parties" %}
{{ snapshot.summary.positions }} {% trans "ticket positions" %}
{{ snapshot.summary.available }} {% trans "available" %}
{{ snapshot.summary.blocked }} {% trans "blocked" %}
{{ snapshot.summary.occupied }} {% trans "occupied" %}
{{ proposed_seat_count }} {% if proposal.status == "committed" %} {% trans "committed" %} {% else %} {% trans "proposed" %} {% endif %}
{% endif %} {% if snapshot %}

{% trans "Visual seat map" %}

{{ seat_map|json_script:"solverforge-seat-map-data" }}
{% endif %} {% if proposal %}

{% trans "Solver status and score" %}

{% trans "Status" %}
{{ proposal.get_status_display }}
{% trans "Native score" %}
{{ proposal.score.levels.0 }} hard / {{ proposal.score.levels.1 }} soft
{% trans "Hard violations" %}
{{ proposal.score_explanation.hard_violations }}
{% trans "Changed parties" %}
{{ changed_assignment_count }}
{% trans "Snapshot" %}
{{ proposal.snapshot_fingerprint|slice:":12" }}…

{% trans "Hard-score explanation" %}

    {% for name, count in proposal.score_explanation.hard.items %}
  • {{ name }}: {{ count }}
  • {% endfor %}

{% trans "Soft-score explanation" %}

    {% for name, value in proposal.score_explanation.soft_rewards.items %}
  • {{ name }}: +{{ value }}
  • {% endfor %} {% for name, value in proposal.score_explanation.soft_penalties.items %}
  • {{ name }}: −{{ value }}
  • {% endfor %}

{% if proposal.status == "committed" %} {% trans "Committed placements" %} {% else %} {% trans "Proposed placements" %} {% endif %}

{% for assignment in assignments %} {% empty %} {% endfor %}
{% trans "Order / product" %} {% trans "Seats" %} {% trans "Change" %} {% trans "Lock" %}
{{ assignment.order_code }}
{{ assignment.product_name }} · {{ assignment.position_ids|length }} {% if assignment.requires_wheelchair %} {% endif %}
{{ assignment.zone }} / {{ assignment.row }}: {{ assignment.seat_guids|join:", " }} {% if assignment.preferences %}
{% trans "Preferences:" %} {{ assignment.preferences|join:", " }} {% endif %}
{% if assignment.changed %} {% trans "Changed" %} {% if assignment.current_seat_guids %}
{% trans "Was:" %} {{ assignment.current_seat_guids|join:", " }} {% endif %} {% else %} {% trans "Unchanged" %} {% endif %}
{% if assignment.currently_locked %} {% trans "Locked" %} {% elif can_write and proposal.status == "proposed" and not proposal_is_stale %}
{% csrf_token %}
{% else %} — {% endif %}
{% trans "This proposal has no placements." %}
{% endif %} {% if current_parties %}

{% trans "Existing pretix assignments" %}

{% for party in current_parties %} {% endfor %}
{% trans "Order / product" %} {% trans "Current seats" %} {% trans "Hard lock" %}
{{ party.order_code }}
{{ party.product_name }} · {{ party.position_count }}
{{ party.seat_guids|join:", " }} {% if party.currently_locked %} {% trans "Locked" %} {% elif can_write %}
{% csrf_token %} {% if subevent %} {% endif %}
{% else %} — {% endif %}
{% endif %} {% if locks %}

{% trans "Organizer locks" %}

{% for lock in locks %} {% endfor %}
{% trans "Party" %} {% trans "Locked seats" %} {% trans "Action" %}
{{ lock.party_key }} {{ lock.seat_guids|join:", " }} {% if can_write %}
{% csrf_token %} {% if subevent %} {% endif %}
{% endif %}
{% endif %} {% endblock %}