feat(heures) : codes d'absence, total en gras et légende sur l'export PDF jour (#25)
Auto Tag Develop / tag (push) Successful in 7s

Affinements de l'export PDF des heures (vue Jour) :

- **Colonne Statut** : affiche le **code** du type d'absence (ex. `AT`) au lieu du libellé, sur sa couleur de fond. Férié sans absence inchangé (nom du férié sur fond bleu clair).
- **Colonne Total** en gras.
- **Légende** sous le tableau : carré coloré contenant le code + libellé à droite, 6 éléments par ligne, triée et dédupliquée (hors férié).
- **Bouton Exporter masqué en vue Semaine** (visible uniquement en vue Jour).

Docs mises à jour : `doc/hours-day-export.md`, `frontend/data/documentation-content.ts`, `CLAUDE.md`. Tests backend verts (173/361).

Reviewed-on: #25
Co-authored-by: tristan <tristan@yuno.malio.fr>
Co-committed-by: tristan <tristan@yuno.malio.fr>
This commit was merged in pull request #25.
This commit is contained in:
2026-06-09 14:04:50 +00:00
committed by Autin
parent 9dff25d61a
commit b6c0dfb90b
8 changed files with 63 additions and 10 deletions
+24 -1
View File
@@ -16,6 +16,13 @@
td.name { text-align: left; }
tr.site-title td { font-weight: bold; font-size: 11px; text-transform: uppercase; text-align: left; padding: 2px 6px; white-space: nowrap; }
tr.weekend td { background: #c0c0c0; }
td.total { font-weight: bold; }
table.legend { width: auto; table-layout: auto; margin-top: 4mm; font-size: 10px; border: 0; border-collapse: collapse; }
table.legend td { border: 0; padding: 2px 0; vertical-align: middle; overflow: visible; white-space: nowrap; }
table.legend .legend-title { font-weight: bold; padding-right: 8px; }
table.legend .legend-box-cell { padding-left: 12px; }
table.legend .legend-box { display: inline-block; box-sizing: content-box; width: 14px; height: 14px; padding: 3px; line-height: 14px; text-align: center; font-weight: bold; font-size: 9px; }
table.legend .legend-label { padding-left: 4px; }
</style>
</head>
<body>
@@ -57,11 +64,27 @@
<td>{{ row.eveningTo }}</td>
<td>{{ row.dayHours }}</td>
<td>{{ row.nightHours }}</td>
<td>{{ row.total }}</td>
<td class="total">{{ row.total }}</td>
</tr>
{% endfor %}
{% endfor %}
</tbody>
</table>
{% if legend is not empty %}
<table class="legend">
{% for chunk in legend|batch(6) %}
<tr>
<td class="legend-title">{% if loop.first %}Légende :{% endif %}</td>
{% for item in chunk %}
<td class="legend-box-cell">
<span class="legend-box" style="background: {{ item.color ?: '#e8e8e8' }};">{{ item.code }}</span>
</td>
<td class="legend-label">{{ item.label }}</td>
{% endfor %}
</tr>
{% endfor %}
</table>
{% endif %}
</body>
</html>