byceps/byceps

View on GitHub
byceps/blueprints/site/seating/templates/macros/seating.html

Summary

Maintainability
Test Coverage
{% macro render_seat_link(seat) -%}
  <a href="{{ url_for('seating.view_area', slug=seat.area.slug, _anchor='seat-%s'|format(seat.id)) }}">{{ seat.label|fallback(_('unnamed')) }}</a>
{%- endmacro %}


{% macro render_area(area, seats_and_tickets) -%}
  {%- set avatar_url_fallback = url_for('static', filename='avatar_fallback.svg') %}
  <div class="area" style="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 %}