{# Macro : class_stats_card(type, data, expanded=False, trimester_colors={}) TYPES : 'quantity', 'domains', 'competences', 'results' DATA STRUCTURE attendue : - quantity: {"total": 8, "completed": 6, "in_progress": 2, "not_started": 0} - domains: [{"name": "Calcul", "color": "#3B82F6", "total_points": 45.0, "elements_count": 12}] - competences: [{"name": "Calculer", "color": "#8B5CF6", "total_points": 25.0, "elements_count": 6}] - results: {"mean": 14.2, "median": 15.0, "distribution": [0,1,3,8,12,6,2,0], "min": 8.0, "max": 20.0} #} {% macro class_stats_card(type, data, expanded=False, trimester_colors={}) %} {# Configuration des icônes par type #} {% set icons = { 'quantity': '', 'domains': '', 'competences': '', 'results': '' } %} {# Configuration des titres et couleurs par type #} {% set config = { 'quantity': { 'title': 'Évaluations', 'color_class': 'blue', 'icon_color': 'text-blue-600', 'bg_color': 'bg-blue-50', 'border_color': 'border-blue-200' }, 'domains': { 'title': 'Domaines', 'color_class': 'purple', 'icon_color': 'text-purple-600', 'bg_color': 'bg-purple-50', 'border_color': 'border-purple-200' }, 'competences': { 'title': 'Compétences', 'color_class': 'indigo', 'icon_color': 'text-indigo-600', 'bg_color': 'bg-indigo-50', 'border_color': 'border-indigo-200' }, 'results': { 'title': 'Résultats', 'color_class': 'green', 'icon_color': 'text-green-600', 'bg_color': 'bg-green-50', 'border_color': 'border-green-200' } } %} {% set card_config = config[type] %}
{{ data.total }} évaluations
{{ data.completed }} terminées
{% elif type == 'domains' %}{{ data|length }} domaines
{{ data|sum(attribute='total_points')|round(1) }} points total
{% elif type == 'competences' %}{{ data|length }} compétences
{{ data|sum(attribute='elements_count') }} éléments
{% elif type == 'results' %}{{ data.mean|round(1) }}/20
Moyenne générale
{% endif %}