up templates pétés

This commit is contained in:
Tykayn 2025-09-08 18:45:21 +02:00 committed by tykayn
parent 539b4c094f
commit 1ed9ac8690
2 changed files with 59 additions and 5 deletions

View file

@ -189,7 +189,7 @@
<div class="col-md-3 col-sm-6 mb-3">
<div class="card stats-card h-100">
<div class="card-body text-center">
<div class="stats-value">{{ statistics.total_votes }}</div>
<div class="stats-value">{{ statistics.total_votes|default(0) }}</div>
<div class="stats-label">Votes au total</div>
</div>
</div>
@ -197,7 +197,7 @@
<div class="col-md-3 col-sm-6 mb-3">
<div class="card stats-card h-100">
<div class="card-body text-center">
<div class="stats-value">{{ statistics.avg_votes_per_proposal }}</div>
<div class="stats-value">{{ statistics.avg_votes_per_proposal|default(0) }}</div>
<div class="stats-label">Votes par proposition (moyenne)</div>
<div class="small text-muted">Excluant les propositions sans votes</div>
</div>
@ -206,7 +206,7 @@
<div class="col-md-3 col-sm-6 mb-3">
<div class="card stats-card h-100">
<div class="card-body text-center">
<div class="stats-value">{{ statistics.unique_voters }}</div>
<div class="stats-value">{{ statistics.unique_voters|default(0) }}</div>
<div class="stats-label">Votants uniques</div>
</div>
</div>
@ -217,7 +217,7 @@
<div class="col-md-3 col-sm-6 mb-3">
<div class="card stats-card h-100">
<div class="card-body text-center">
<div class="stats-value">{{ statistics.median_votes_per_proposal }}</div>
<div class="stats-value">{{ statistics.median_votes_per_proposal|default(0) }}</div>
<div class="stats-label">Votes par proposition (médiane)</div>
<div class="small text-muted">Excluant les propositions sans votes</div>
</div>
@ -226,7 +226,7 @@
<div class="col-md-3 col-sm-6 mb-3">
<div class="card stats-card h-100">
<div class="card-body text-center">
<div class="stats-value">{{ statistics.std_dev_votes_per_proposal }}</div>
<div class="stats-value">{{ statistics.std_dev_votes_per_proposal|default(0) }}</div>
<div class="stats-label">Votes par proposition (écart type)</div>
<div class="small text-muted">Excluant les propositions sans votes</div>
</div>

View file

@ -0,0 +1,54 @@
# Correction des erreurs dans le template wiki_archived_proposals.html.twig
## Description du problème
Le template `admin/wiki_archived_proposals.html.twig` présentait plusieurs erreurs liées à l'accès à des clés qui n'existaient pas dans le tableau `statistics`. L'erreur principale était :
```
Key "total_votes" for sequence/mapping with keys "0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99" does not exist in admin/wiki_archived_proposals.html.twig at line 192.
```
Cette erreur se produisait lorsque la clé `total_votes` n'existait pas dans le tableau `statistics` passé au template.
## Modifications apportées
J'ai ajouté des valeurs par défaut pour toutes les propriétés de `statistics` qui n'avaient pas de vérification d'existence :
1. `statistics.total_votes` (ligne 192) :
```twig
<div class="stats-value">{{ statistics.total_votes|default(0) }}</div>
```
2. `statistics.avg_votes_per_proposal` (ligne 200) :
```twig
<div class="stats-value">{{ statistics.avg_votes_per_proposal|default(0) }}</div>
```
3. `statistics.unique_voters` (ligne 209) :
```twig
<div class="stats-value">{{ statistics.unique_voters|default(0) }}</div>
```
4. `statistics.median_votes_per_proposal` (ligne 220) :
```twig
<div class="stats-value">{{ statistics.median_votes_per_proposal|default(0) }}</div>
```
5. `statistics.std_dev_votes_per_proposal` (ligne 229) :
```twig
<div class="stats-value">{{ statistics.std_dev_votes_per_proposal|default(0) }}</div>
```
## Avantages de ces modifications
1. **Robustesse** : Le template est maintenant plus robuste et peut gérer les cas où certaines statistiques ne sont pas disponibles.
2. **Prévention des erreurs** : Les erreurs liées à l'accès à des clés inexistantes sont évitées.
3. **Expérience utilisateur améliorée** : Les utilisateurs ne verront plus d'erreurs, mais plutôt des valeurs par défaut (0) lorsque certaines statistiques ne sont pas disponibles.
## Remarques
Certaines propriétés de `statistics` avaient déjà des vérifications d'existence avec `is defined`, comme :
- `statistics.avg_vote_duration_days` (ligne 237)
- `statistics.status_distribution` (ligne 250)
Ces propriétés n'ont pas nécessité de modifications car elles étaient déjà correctement gérées.