Pictures.html.twig 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. {# Template pour les vignettes #}
  2. <div class="block">
  3. <div class="fixed-grid has-3-cols-fullhd has-3-cols-widescreen has-2-cols-desktop has-2-cols-tablet has-1-cols-mobile">
  4. <div class="grid is-col-min-12">
  5. {% for party in event.getParties|sort((a, b) => a.startOn <=> b.startOn) %}
  6. {% if party.getSlots|length > 0 and party.isValidated %} {# ignorer les parties orphelines qui n'ont pas de tables et les partis non validées#}
  7. <div class="cell{% if party.getSeatsLeft < 1 %} planning-cell-game-isfull{% endif %}">
  8. <div class="card">
  9. <div class="card-image" data-starton='{{ party.startOn|date('Ymdhi', app_timezone) }}' data-game='{{ party.game.slug }}' data-gamemaster='{{ party.gamemaster.slug }}' data-genre='{{ party.game.genre|map(p => p.slug)|join('|') }}'>
  10. {% if party.getSeatsLeft > 0 %}<a href="{{ path(pathLink, {id: party.getSlots.first.id}) }}" class="open-modal">{% endif %}
  11. <figure class="image is-3by1">
  12. {% if party.game.picture %}
  13. <img src="/images/games/{{ party.game.picture }}" />
  14. {% else %}
  15. <img src="/images/games/placeholder.webp" />
  16. {% endif %}
  17. <div class="overlay-tags">
  18. {% if party.getSeatsLeft > 0 %}
  19. <strong class="tag is-dark m-1 is-rounded" title="Places libres / places maximum">Places : {{ party.getSeatsLeft }}/{{ party.getMaxParticipants }}</strong>
  20. {% else %}
  21. <strong class="tag is-danger m-1 is-rounded">Complet !</strong>
  22. {% endif %}
  23. {% if party.getGame.getAgeRecommendation %}<span class="tag m-1 is-primary is-rounded" title="{{ party.getGame.getAgeRecommendationLabel }}">{{ party.getGame.getAgeRecommendationLabel }}</span>{% endif %}
  24. {% if party.gamemasterIsAuthor %}<span class="tag is-warning m-1 is-rounded">partie animée par l'auteur</span>{% endif %}
  25. </div>
  26. </figure>
  27. {% if party.getSeatsLeft > 0 %}</a>{% endif %}
  28. </div>
  29. <div class="card-content">
  30. <div class="content ">
  31. <div class="media">
  32. <div class="media-left">
  33. <figure class="image is-48x48">
  34. {% if party.gamemaster.picture %}
  35. <img class="is-rounded" src="/images/gamemasters/{{ party.gamemaster.picture }}" />
  36. {% else %}
  37. <twig:ux:icon name="bi:person-fill"/>
  38. {% endif %}
  39. </figure>
  40. </div>
  41. <div class="media-content">
  42. <small class="has-text-grey-darker">animée par {{ party.gamemaster.preferedName }}</small><br/>
  43. <strong class="title is-4">{{ party.game.name }}</strong>
  44. </div>
  45. </div>
  46. {% for genre in party.game.genre %}<span class="tag is-info m-1">{{ genre.genre }}</span>{% endfor %}
  47. </div>
  48. </div>
  49. <div class="card-footer">
  50. <div class="card-footer-item">
  51. <small>Le {{ party.startOn|date('d/m/Y \\d\\e H:i', app_timezone) }} à {{ party.endOn|date('H:i', app_timezone) }}</small>
  52. </div>
  53. </div>
  54. </div>
  55. </div>
  56. {% endif %}
  57. {% endfor %}
  58. </div>
  59. </div>
  60. </div>