byceps/byceps

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

Summary

Maintainability
Test Coverage
{% extends 'layout/base.html' %}
{% from 'macros/icons.html' import render_icon %}
{% from 'macros/misc.html' import render_progress_bar %}
{% from 'macros/seating.html' import render_area %}
{% from 'macros/subnav.html' import render_subnav_for_menu_id %}
{% set current_page = 'seating' %}
{% set page_title = [_('Seat management') if manage_mode else _('Seating plan'), area.title] %}

{% block head %}
    <link rel="stylesheet" href="{{ url_for('static', filename='style/seating.css') }}">
{%- endblock %}

{% block subnav %}
  {%- if subnav_menu_id|default %}
{{ render_subnav_for_menu_id(subnav_menu_id, current_page) }}
  {%- endif %}
{% endblock %}

{% block body %}

  {%- if manage_mode %}
  <nav class="breadcrumbs">
    <ol>
      <li><a href="{{ url_for('.view_area', slug=area.slug) }}">{{ _('Seating plan') }}</a></li>
    </ol>
  </nav>
  {%- endif %}
  <h1 class="title">{{ _('Seat management') if manage_mode else _('Seating plan') }} – {{ area.title }}</h1>

  <form action="{{ url_for('attendance.attendees') }}" class="single-row unobtrusive block">
    <input type="search" name="search_term" placeholder="{{ _('Username') }}" class="form-control">
    <button type="submit" class="button" title="{{ _('Search') }}">{{ render_icon('search') }}</button>
  </form>

  <div class="main-body-box">

  {%- if seat_management_enabled and g.user.authenticated %}
    {%- if manage_mode %}
{% include 'site/seating/_ticket_selector.html' %}
    {%- else %}
    <div class="button-row is-right-aligned">
      <a class="button" href="{{ url_for('.manage_seats_in_area', slug=area.slug) }}">{{ _('Manage seats') }}</a>
    </div>
    {%- endif %}
  {%- endif %}

    <div class="block">
{{ render_area(area, seats_and_tickets) }}
    </div>

    <div class="row row--space-between">
      <div>
{% include 'site/seating/_legend.html' %}
      </div>
      <div>
        <small>
          <p><strong>{{ _('Utilization') }}</strong></p>
          <div class="progress">
            {{ render_progress_bar(seat_utilization.occupied, seat_utilization.total) }}
          </div>
          {{ seat_utilization.occupied|numberformat }} / {{ seat_utilization.total|numberformat }} {{ _('seats occupied') }}
        </small>
      </div>
    </div>

  </div>

{%- endblock %}

{% block scripts %}
    <script src="{{ url_for('static', filename='behavior/seating.js') }}"></script>
    <script>
      onDomReady(() => {
        {%- if seat_management_enabled %}
        const selected_ticket_id = {% if selected_ticket_id|default %}'{{ selected_ticket_id }}'{% else %}null{% endif %};
        init_seat_management(selected_ticket_id);
        {%- endif %}

        init_seat_tooltips();
      });
    </script>
{%- endblock %}