{# templates/app/presences/index.html.twig #} {% extends 'app/base.html.twig' %} {% block title %}Présences — GestRestoSco {% endblock %} {% block stylesheets %} {% endblock %} {% block body %} {# ── En-tête ─────────────────────────────────────────────────────────── #}

Saisie des présences

Récapitulatif {% if is_granted('ROLE_TENANT_GESTIONNAIRE') %} Catégories {% endif %}
{# ── Barre de filtres ─────────────────────────────────────────────────── #}
{# Date avec navigation jour précédent/suivant #}
{# Service #}
{# Année scolaire #}
{# Catégorie #}
{# ── Grille de saisie ─────────────────────────────────────────────────── #} {% if not categorieId %}

Sélectionnez une catégorie pour afficher les élèves.

{% elseif personnes is empty %}

Aucun élève actif dans cette catégorie.

{% else %} {# Résumé du jour #} {% set nbPresents = 0 %} {% set nbAbsents = 0 %} {% set nbNonSaisi = 0 %} {% for personne in personnes %} {% if presences[personne.id] is defined %} {% if presences[personne.id].present %} {% set nbPresents = nbPresents + 1 %} {% else %} {% set nbAbsents = nbAbsents + 1 %} {% endif %} {% else %} {% set nbNonSaisi = nbNonSaisi + 1 %} {% endif %} {% endfor %}
{{ nbPresents }} présent(s)
{{ nbAbsents }} absent(s)
{% if nbNonSaisi > 0 %}
{{ nbNonSaisi }} non saisi(s)
{% endif %}
{# Déclarer tous les IDs pour permettre la détection des absents #} {% for personne in personnes %} {% endfor %}
{{ categories|filter(c => c.id == categorieId)|first.nom ?? 'Groupe' }} — {{ date|date('l d/m/Y') }} — {{ services[service] }}
{% for personne in personnes %} {% set pr = presences[personne.id] ?? null %} {% endfor %}
Nom Prénom Statut
{{ personne.nom }} {{ personne.prenom }} {% if pr is null %} non saisi {% elseif pr.present %} présent {% else %} absent {% endif %}
{% if is_granted('ROLE_TENANT_GESTIONNAIRE') or is_granted('ROLE_TENANT_CUISINIER') %} {% endif %}
{% endif %} {% endblock %} {% block javascripts %} {% endblock %}