{# Menu latéral unique, factorisé par famille/rôle (2026-08-08) - remplace les 8 blocs `sidebar_menu` auparavant dupliqués dans chaque `*/_layout.html.twig`. Un compte à rôle unique voit la même chose qu'avant (une seule section passe `is_granted()`) ; un compte à rôles cumulés (Direction, fondateur...) voit toutes les familles auxquelles il a réellement accès, sans avoir à taper une URL à la main. #} {% set route = app.request.attributes.get('_route') %} {% if is_granted('ROLE_DIRECTION') %} {% endif %} {% if is_granted('ROLE_COMPTABILITE') %} {% if not is_granted('ROLE_DIRECTION') %} {# Direction voit déjà "Dossiers enfants" dans la section Administration (même écran/donnée, ROLE_DIRECTION hérite de ROLE_COMPTABILITE) - recette 2026-08-10, éviter le doublon de menu. #} {% endif %} {% endif %} {% if is_granted('ROLE_EDUCATEUR') %} {% set mesGroupes = mes_groupes() %} {% set g = groupe is defined ? groupe : (enfant is defined and enfant.groupe is defined ? enfant.groupe : (mesGroupes|length > 0 ? mesGroupes[0] : null)) %} {% if g %}
{% endif %} {% if is_granted('ROLE_DIRECTION') %} {# Messagerie équipe restreinte à Direction (recette 2026-08-10). #} {% endif %} {% endif %} {% if is_granted('ROLE_CANTINE') %} {% endif %} {% if is_granted('ROLE_DIRECTION') or is_granted('ROLE_ADMIN_TECHNIQUE') or is_granted('ROLE_EDUCATEUR') or is_granted('ROLE_COMPTABILITE') or is_granted('ROLE_CANTINE') %} {% if is_granted('ROLE_DIRECTION') and is_granted('ROLE_ADMIN_TECHNIQUE') %} {% endif %} {% endif %} {% if is_granted('ROLE_ADMIN_TECHNIQUE') %} {% endif %} {% if is_granted('ROLE_INVESTISSEUR') %} {% endif %} {% if is_granted('ROLE_PARENT') %} {% set messagesNonLus = messages_non_lus_parent() %} {% set mesEnfants = mes_enfants() %} {# `enfant` n'est pas transmis par tous les contrôleurs parents (Annonces/Calendrier/Sondages) - retombe sur le premier enfant du parent plutôt que de faire disparaître tout le sous-menu (recette 2026-08-10, même cause que le bug équipe/groupe ci-dessus). #} {% set enfantCourant = enfant is defined ? enfant : (mesEnfants|length > 0 ? mesEnfants[0] : null) %} {% if enfantCourant is not null %}
{% endif %} {% endif %}