| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 | {% extends 'bulma.html.twig' %}{% block title %}Administration > Événement > Configurer{% endblock %}{% block content %}    <nav class="breadcrumb has-arrow-separator" aria-label="breadcrumbs">      <ul>        <li><a href="{{ path('app_main') }}">Accueil</a></li>        <li><a href="{{ path('app_admin') }}">Administration</a></li>        <li><a href="{{ path('app_admin_event') }}">Gestion des événements</a></li>        <li class="is-active"><a>Configuration</a></li>      </ul>    </nav>    <div class="box has-text-centered">      <strong class="has-text-primary">{{ event.name }}</strong> du {{ event.startOn|date('d/m/Y H:i', app_timezone) }} au {{ event.endOn|date('d/m/Y H:i', app_timezone) }}    </div>    <div class="tabs is-boxed">        <ul>            <li class="is-active"><a>Accueil</a></li>            <li><a href="{{ path('app_admin_event_config_space', {'id': event.id}) }}">Espaces</a></li>            <li><a href="{{ path('app_admin_event_config_period', {'id': event.id}) }}">Périodes</a></li>            <li><a href="{{ path('app_admin_event_config_slot', {'id': event.id}) }}">Slots</a></li>            <li><a href="{{ path('app_admin_event_config_gamemaster', {'id': event.id}) }}">Meneur(euse)s de jeu</a></li>            <li><a href="{{ path('app_admin_event_config_game', {'id': event.id}) }}">Jeux</a></li>            <li><a href="{{ path('app_admin_event_config_party', {'id': event.id}) }}">Parties</a></li>        </ul>    </div>    <div id="tabs-content">      <div class="box">        <div class="block">          <div class="level">            <div class="level-item has-text-centered">              {% if event.getSpaces()|length > 0 %}                <div>                  <p class="title">{{ event.getSpaces()|length }}</p>                  <p class="heading">espaces</p>                  </div>              {% else %}                <p class="heading has-text-danger">Aucun espace</p>              {% endif %}            </div>            <div class="level-item has-text-centered">              {% if event.getPeriods()|length > 0 %}              <div>                <p class="title">{{ event.getPeriods()|length }}</p>                <p class="heading">périodes</p>              </div>              {% else %}                <p class="heading has-text-danger">Aucune période</p>              {% endif %}            </div>            <div class="level-item has-text-centered">              {% if event.getSlots()|length > 0 %}              <div>                <p class="title">{{ event.getSlots()|filter(slot => slot.isAvailable())|length }}</p>                <p class="heading">slots</p>                </div>              {% else %}                <p class="heading has-text-danger">Aucun slot</p>              {% endif %}            </div>            <div class="level-item has-text-centered">              {% if event.getGamemastersAssigned()|length > 0 %}              <div>                <p class="title">{{ event.getGamemastersAssigned()|length }}</p>                <p class="heading">MJ</p>                </div>              {% else %}                <p class="heading has-text-danger">Aucun(e) MJ</p>              {% endif %}            </div>            <div class="level-item has-text-centered">              {% if event.getGameAssigned()|length > 0 %}              <div>                <p class="title">{{ event.getGameAssigned()|length }}</p>                <p class="heading">jeux</p>                </div>              {% else %}                <p class="heading has-text-danger">Aucun jeu</p>              {% endif %}            </div>            <div class="level-item has-text-centered">              {% if event.getParties()|length > 0 %}              <div>                <p class="title">{{ event.getParties()|length }}</p>                <p class="heading">parties</p>                </div>              {% else %}                <p class="heading has-text-danger">Aucune partie</p>              {% endif %}            </div>            <div class="level-item has-text-centered">              {% if event.getSlots()|length > 0 %}              <div>                {% set tx = event.getSlots()|filter(slot => slot.getParty() is not null)|length / event.getSlots()|filter(slot => slot.isAvailable())|length * 100 %}                <p class="title">{{ tx|round }}</p>                <p class="heading">% occupé</p>                </div>              {% else %}                <p class="heading has-text-danger">Aucun slot</p>              {% endif %}            </div>          </div>        </div>      </div>      <article class="section">        <p>Déterminez des <strong>espaces</strong> et des <strong>périodes</strong> pour générer les <strong>slots</strong> permettant de modéliser le planning.          Les <strong>slots</strong> peuvent être régénérés à tout moment, mais peuvent entraîner la destruction de parties déjà enregistrées pour l'événement.          Les <strong>jeux</strong> sont sélectionnés à partir des <strong>MJ</strong> affectés à l'événement. Seul les <strong>jeux</strong> et <strong>MJ</strong> sélectionnés pourront être proposés pour créer le planning.          Les <strong>MJ</strong> disposant d'un compte pourront ajouter eux-mêmes leurs parties et définir leurs disponibilités.          Les <strong>périodes off</strong> permettent de neutraliser des <strong>slots</strong> dans le planning où aucune partie ne pourra être enregistrer dans l'<strong>espace spécifié</strong>.</p>        <p>La publication de l'événement permettra aux participants de s'inscrire. Si l'événement est publié, il ne sera plus possible de modifier les slots.</p>      </article>          <div class="block has-text-centered">        {% if event.getSlots()|length > 0 and event.getGamemastersAssigned()|length > 0 and event.getGameAssigned()|length > 0 and not event.isPublished %}          <a href="{{ path('app_admin_event_config_publish', {id: event.id}) }}" class="button is-primary" data-turbo="false">Publier</a>        {% elseif event.isPublished %}          <a href="{{ path('app_admin_event_config_unpublish', {id: event.id}) }}" class="button is-danger" data-turbo="false">Dépublier</a>        {% else %}          <button href="#" class="button" disabled>Publier</button>        {% endif %}      </div>    </div>{% endblock %}
 |