{# # ============================================================================ # MOLECULE: SECTION ACCORDION ITEM # ============================================================================ # # Affiche une section de formation dans un accordéon avec ses activités. # Utilisé dans les pages de détail utilisateur et de détail de formation SAM. # # ============================================================================ # PARAMÈTRES # ============================================================================ # # | Paramètre | Type | Défaut | Description | # |-----------------|--------|----------|--------------------------------------| # | section | object | (requis) | Entité section (id, name, position) | # | sectionProgress | object | (requis) | {completed, total} | # | activities | array | [] | Tableau d'actData : | # | | | | activity: entité activité | # | | | | isTrackable: bool | # | | | | completed: bool | # | | | | score: float|null | # | | | | attempts: int|null | # | | | | timeSpent: int | # | | | | timeFormatted: string | # | | | | completedAt: DateTime|null | # | controllerScope | string | 'sam--accordion' | Nom du controller Stimulus | # # ============================================================================ # EXEMPLE D'UTILISATION # ============================================================================ # # {% include '_molecules/section-accordion-item/section-accordion-item.html.twig' with { # section: sectionData.section, # sectionProgress: sectionData.progress, # activities: sectionData.activities # } only %} # # ============================================================================ #} {% set section = section %} {% set sectionProgress = sectionProgress|default({completed: 0, total: 0}) %} {% set activities = activities|default([]) %} {% set controllerScope = controllerScope|default('sam--accordion') %} {% set completedCount = sectionProgress.completed|default(0) %} {% set totalCount = sectionProgress.total|default(0) %} {% set hasTracked = completedCount > 0 %}