{% extends 'base.html.twig' %} {% block title %}Dashboard Activity - Design System - Bubul{% endblock %} {% block body %}
{% include '_atoms/icon/icon.html.twig' with { name: 'chevron-left', size: 'sm', color: 'gray' } %}
Organisme /

Dashboard Activity

Liste d'activites recentes pour le dashboard

{# ===== EXPLICATION ===== #}
{% include '_atoms/icon/icon.html.twig' with { name: 'clock', size: 'lg', color: 'white' } %}

Activites recentes du dashboard

Dashboard

Organisme affichant les dernieres activites utilisateur avec icone outil coloree, date/heure, tokens consommes et energie. Inclut un etat vide via la molecule empty-state. Chaque activite est coloree selon l'outil (Moodia = bleu, Serenia = violet, Slidia = orange, etc.).

1

Molecule

1

Atome

6

Outils

4

Parametres

{# ===== COMPOSITION ===== #}

Composition

Molecules et atomes utilises

Molecules

  • empty-state - Etat vide quand aucune activite

Atomes

  • icon - Icones outils (bubul-moodia, bubul-serenia...), token, bolt
{# ===== USAGE ===== #}

Usage

{% verbatim %}{% include '_organisms/dashboard-activity/dashboard-activity.html.twig' with {
    activities: recentActivities,
    limit: 5,
    viewMoreHref: path('app_history'),
    class: ''
} %}{% endverbatim %}
{# ===== STRUCTURE DES DONNEES ===== #}

Structure des donnees

Format attendu pour chaque activite

{% verbatim %}{# Chaque activité dans le tableau peut avoir ces propriétés : #}
{
    title: 'Cours de mathématiques',          {# ou description #}
    tool: { code: 'moodia' },                 {# ou type/activityType #}
    tokens: 2500,                             {# ou tokensUsed #}
    energy: 0.75,                             {# ou energyConsumedWh #}
    createdAt: DateTimeInterface               {# ou date #}
}

{# Mapping des couleurs par outil : #}
{# moodia → primary (bleu) #}
{# serenia → cohorts (violet) #}
{# slidia → warning (orange) #}
{# monalisia → pink (rose) #}
{# castia → success (vert) #}
{# sam → info (bleu clair) #}{% endverbatim %}
{% include '_atoms/icon/icon.html.twig' with { name: 'warning', size: 'sm', color: 'warning' } %}
Note : Ce composant utilise les filtres Twig |format_number, |number_format, |format_datetime et |date. Les dates doivent etre des objets DateTime valides (typiquement des entites Doctrine).
{# ===== AVEC ACTIVITES ===== #}

Avec activites

Rendu avec des donnees d'activites

{% include '_atoms/icon/icon.html.twig' with { name: 'info', size: 'sm', color: 'info' } %}
La demo ci-dessous utilise des objets DateTime Twig. En production, ce composant recoit des entites Doctrine avec des objets DateTimeImmutable natifs.
{% set mockActivities = [ { title: 'Cours de mathematiques avancees', tool: { code: 'moodia' }, tokens: 2500, energy: 0.75, createdAt: 'now'|date_modify('-1 hour') }, { title: 'Conversation pedagogique', tool: { code: 'serenia' }, tokens: 800, energy: 0.24, createdAt: 'now'|date_modify('-3 hours') }, { title: 'Presentation marketing', tool: { code: 'slidia' }, tokens: 1200, energy: 0.36, createdAt: 'now'|date_modify('-1 day') }, { title: 'Illustration de couverture', tool: { code: 'monalisia' }, tokens: 1000, energy: 0.30, createdAt: 'now'|date_modify('-2 days') }, { title: 'Podcast introduction', tool: { code: 'castia' }, tokens: 3000, energy: 0.90, createdAt: 'now'|date_modify('-3 days') } ] %} {% include '_organisms/dashboard-activity/dashboard-activity.html.twig' with { activities: mockActivities, limit: 5 } %}
{# ===== ETAT VIDE ===== #}

Etat vide

Quand activities est un tableau vide

{% include '_organisms/dashboard-activity/dashboard-activity.html.twig' with { activities: [] } %}
{# ===== PARAMETRES ===== #}

Parametres

Parametre Type Defaut Description
activitiesarray[]Liste des activites (entites ou objets avec title, tool, tokens, energy, createdAt)
limitint5Nombre maximum d'activites affichees
viewMoreHrefstringnullLien vers l'historique complet
classstring''Classes Tailwind additionnelles
{# ===== FICHIER SOURCE ===== #}

Fichier source

templates/_organisms/dashboard-activity/dashboard-activity.html.twig
{% endblock %}