byceps/blueprints/admin/seating/templates/admin/seating/area_view.html
{% extends 'layout/admin/seating.html' %}
{% from 'macros/icons.html' import render_icon %}
{% set current_page_party = party %}
{% set current_tab = 'areas' %}
{% set page_title = [_('Area'), area.title] %}
{% macro render_area(area, seats_and_tickets) -%}
{%- set avatar_url_fallback = url_for('static', filename='avatar_fallback.svg') %}
<div class="area" style="background-color: #111111; background-image: url(/data/parties/{{ area.party_id }}/seating/areas/{{ area.image_filename }}); height: {{ area.image_height }}px; width: {{ area.image_width }}px;">
{%- for seat, ticket in seats_and_tickets|sort(attribute='0.coord_y')|sort(attribute='0.coord_x') %}
{{ render_seat_with_tooltip(seat, ticket, avatar_url_fallback) }}
{%- endfor %}
</div>
{%- endmacro %}
{% macro render_seat_with_tooltip(seat, ticket, avatar_url_fallback) -%}
<div id="seat-{{ seat.id }}" class="seat-with-tooltip" style="left: {{ seat.coord_x }}px; top: {{ seat.coord_y }}px;" data-seat-id="{{ seat.id }}" data-label="{{ seat.label }}"
{%- if ticket %}
{{- ' ' }}data-ticket-id="{{ ticket.id }}"
{%- if ticket.user %}
{%- with occupier = ticket.user %}
{{- ' ' }}data-occupier-avatar="{{ occupier.avatar_url or avatar_url_fallback }}" data-occupier-name="{{ occupier.screen_name }}"
{%- endwith %}
{%- endif %}
{%- endif -%}
>
<div class="seat{% if seat.type_ %} seat-type--{{ seat.type_ }}{% endif %}{% if ticket %} seat--occupied{% endif %}"{% if seat.rotation %} style="transform: rotate({{ seat.rotation }}deg);"{% endif %}></div>
</div>
{%- endmacro %}
{% block head %}
<link rel="stylesheet" href="{{ url_for('static', filename='style/seating.css') }}">
{%- endblock %}
{% block body %}
<div class="row row--space-between">
<div>
<h1 class="title">{{ area.title }}</h1>
</div>
{%- if has_current_user_permission('seating.administrate') %}
<div>
<div class="button-row is-right-aligned">
<a class="button" href="{{ url_for('.area_update_form', area_id=area.id) }}">{{ render_icon('edit') }} <span>{{ _('Update') }}</span></a>
</div>
</div>
{%- endif %}
</div>
{{ render_area(area, seats_and_tickets) }}
{%- endblock %}
{% block scripts %}
<script src="{{ url_for('static', filename='behavior/seating.js') }}"></script>
<script>
onDomReady(() => {
init_seat_tooltips();
});
</script>
{%- endblock %}