slot.html.twig 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. {% extends 'bulma.html.twig' %}
  2. {% block title %}Administration > Événement > Configurer{% endblock %}
  3. {% block content %}
  4. <nav class="breadcrumb has-arrow-separator" aria-label="breadcrumbs">
  5. <ul>
  6. <li><a href="{{ path('app_main') }}">Accueil</a></li>
  7. <li><a href="{{ path('app_admin') }}">Administration</a></li>
  8. <li><a href="{{ path('app_admin_event') }}">Gestion des événements</a></li>
  9. <li class="is-active"><a>Configuration</a></li>
  10. </ul>
  11. </nav>
  12. <div class="box has-text-centered">
  13. <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) }}
  14. </div>
  15. <div class="tabs is-boxed">
  16. <ul>
  17. <li><a href="{{ path('app_admin_event_config', {'id': event.id}) }}">Accueil</a></li>
  18. <li><a href="{{ path('app_admin_event_config_space', {'id': event.id}) }}">Espaces</a></li>
  19. <li><a href="{{ path('app_admin_event_config_period', {'id': event.id}) }}">Périodes</a></li>
  20. <li class="is-active"><a>Slots</a></li>
  21. <li><a>Meneur(euse)s de jeu</a></li>
  22. <li><a>Jeux</a></li>
  23. </ul>
  24. </div>
  25. <div id="tabs-content">
  26. <div class="container">
  27. <div class="block">
  28. <h3 class="title is-3">Configuration des slots</h3>
  29. </div>
  30. <div class="columns">
  31. <div class="column">
  32. <p>Les <strong>slot</strong> représentent des unités de temps de 30 minutes qui vont accueillir les animations afin de calculer simplement les disponibilités des espaces et/ou des MJ. Ils sont générés à partir des espaces et des périodes. Si vous modifiez, ajoutez ou supprimez des espaces ou des périodes après génération des slots, vous devrez les supprimer, puis relancer leur génération ensuite.</p>
  33. </div>
  34. <div class="column">
  35. <div class="box">
  36. <div class="level">
  37. <div class="level-item has-text-centered">
  38. {% if event.getSpaces()|length > 0 %}
  39. <p class="title">{{ event.getSpaces()|length }}</p>&nbsp;
  40. <p class="heading">espaces</p>
  41. {% else %}
  42. <p class="heading">Aucun espace</p>
  43. {% endif %}
  44. </div>
  45. <div class="level-item has-text-centered">
  46. {% if event.getPeriods()|length > 0 %}
  47. <p class="title">{{ event.getPeriods()|length }}</p>&nbsp;
  48. <p class="heading">périodes</p>
  49. {% else %}
  50. <p class="heading">Aucune période</p>
  51. {% endif %}
  52. </div>
  53. <div class="level-item has-text-centered">
  54. {% if event.getSlots()|length > 0 %}
  55. <p class="title">{{ event.getSlots()|length }}</p>&nbsp;
  56. <p class="heading">slots</p>
  57. {% else %}
  58. <p class="heading">Aucun slot</p>
  59. {% endif %}
  60. </div>
  61. </div>
  62. <div class="block has-text-centered">
  63. {% if event.getPeriods()|length > 0 and event.getSpaces()|length > 0 and event.getSlots()|length < 1 %}
  64. <a href="{{ path('app_main_event_config_slot_generate', {id: event.getId })}}" data-turbo="false" class="button is-primary">Générer les slots</a>
  65. {% elseif event.getSlots()|length > 0 and not event.isPublished %}
  66. <a href="#" data-id="{{ path('app_main_event_config_slot_delete', {id: event.getId })}}" class="button is-danger" {{ stimulus_controller('admin_confirm') }}>Supprimer les slots</a>
  67. {% elseif event.getSlots()|length > 0 and event.isPublished %}
  68. <button href="#" class="button" disabled>Supprimer les slots</button>
  69. {% else %}
  70. <button href="#" class="button" disabled>Générer les slots</button>
  71. {% endif %}
  72. </div>
  73. </div>
  74. </div>
  75. </div>
  76. <div class="block">
  77. <h3 class="title is-3">Aperçu du planning</h3>
  78. <p>Cliquez sur les <strong>slots</strong> pour les basculer <span class="icon"><twig:ux:icon name="bi:lock-fill"/></span>&nbsp;<em>indisponible</em> (aucune partie ne pourra être organisé sur ce slot) ou <em>disponible</em>. <em class="has-text-danger">Fonctionnalité en cours de développement.</em></p>
  79. </div>
  80. {% if event.getSlots()|length > 0 %}
  81. <div id="planning">
  82. {{ component('Planning', {event: event, displayLocked: true}) }}
  83. </div>
  84. {% else %}
  85. <article class="message is-danger">
  86. <div class="message-header">
  87. <p>Aucun slot généré</p>
  88. <button class="delete" aria-label="delete"></button>
  89. </div>
  90. <div class="message-body">
  91. Le planning n'est pas encore consultable. Générez les slots à l'aide du bouton à gauche de l'écran.
  92. </div>
  93. </article>
  94. {% endif %}
  95. </div>
  96. </div>
  97. {% endblock %}