{% extends 'admin/dashboard.html.twig' %} {% block title %}Statistiques - {{ questionnaire.title }}{% endblock %} {% block content %}

{{ questionnaire.title }}

Statistiques & analyse — récapitulatif par question

{# --- Résumé global --- #}

Résumé

Total de réponses : {{ totalResponses|default(0) }}

{# Avant de boucler sur les questions, on s'assure d'avoir questionsStats #} {% set questionsStats = questionsStats|default([]) %} {% if questionsStats|length == 0 and partsStats is defined %} {# Si le backend ne fournit pas questionsStats, on construit depuis partsStats #} {% for part in partsStats %} {% if part.questions is defined and part.questions|length > 0 %} {% set questionsStats = questionsStats|merge(part.questions) %} {% else %} {# Traiter la "part" comme une question si pas de sous-questions #} {% set questionsStats = questionsStats|merge([ {'title': part.title, 'choices': part.choices|default([]), 'respondents': part.respondents|default(0), 'ageBuckets': part.ageBuckets|default([]) } ]) %} {% endif %} {% endfor %} {% endif %} {% for question in questionsStats %}

{{ question.title }}

Réponses à cette question : {{ question.respondents|default(0) }}

Question {{ loop.index }} / {{ questionsStats|length }}

Détail par choix

{% set total = 0 %} {% for c in question.choices %}{% set total = total + (c.count|default(0)) %}{% endfor %} {% for c in question.choices %} {% endfor %}
Choix Nombre %
{{ c.label }} {{ c.count|default(0) }} {% if total > 0 %} {{ ((c.count / total) * 100)|round(1) }} % {% else %}0 %{% endif %}
{% else %}

Aucune question disponible pour ce questionnaire.

{% endfor %}
{# On fournit questionsStats au JS #} {% set jsQuestions = questionsStats|default([]) %} {% set jsAges = ageBuckets|default([]) %} {% endblock %}