Checkpoint: Affichage des images de signature (matin et après-midi) directement dans la page d'émargement pour les apprenants et formateurs. Les images s'affichent en miniature (h-8 w-16) à côté des informations de présence et sont cliquables pour agrandissement.

This commit is contained in:
Manus
2026-02-10 05:09:37 -05:00
parent 672494ccc0
commit 023a047ee0
2 changed files with 29 additions and 36 deletions

View File

@@ -381,19 +381,15 @@ export default function FormateurEmargement() {
minute: "2-digit" minute: "2-digit"
})}</span> })}</span>
{presenceInfo.signatureUrl && ( {presenceInfo.signatureUrl && (
<Button <img
size="sm" src={presenceInfo.signatureUrl}
variant="ghost" alt="Signature"
className="h-5 w-5 p-0" className="h-8 w-16 object-contain border border-gray-300 rounded cursor-pointer hover:border-blue-500 transition-colors"
onClick={() => { onClick={() => {
setSelectedSignature(presenceInfo.signatureUrl!); setSelectedSignature(presenceInfo.signatureUrl!);
setShowSignatureDialog(true); setShowSignatureDialog(true);
}} }}
> />
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" className="h-4 w-4 text-blue-600">
<path d="M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z"/>
</svg>
</Button>
)} )}
</div> </div>
); );
@@ -441,19 +437,15 @@ export default function FormateurEmargement() {
minute: "2-digit" minute: "2-digit"
})}</span> })}</span>
{presenceInfo.signatureUrl && ( {presenceInfo.signatureUrl && (
<Button <img
size="sm" src={presenceInfo.signatureUrl}
variant="ghost" alt="Signature"
className="h-5 w-5 p-0" className="h-8 w-16 object-contain border border-gray-300 rounded cursor-pointer hover:border-blue-500 transition-colors"
onClick={() => { onClick={() => {
setSelectedSignature(presenceInfo.signatureUrl!); setSelectedSignature(presenceInfo.signatureUrl!);
setShowSignatureDialog(true); setShowSignatureDialog(true);
}} }}
> />
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" className="h-4 w-4 text-blue-600">
<path d="M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z"/>
</svg>
</Button>
)} )}
</div> </div>
); );
@@ -561,19 +553,15 @@ export default function FormateurEmargement() {
minute: "2-digit" minute: "2-digit"
})}</span> })}</span>
{dateGroup.matin.signatureUrl && ( {dateGroup.matin.signatureUrl && (
<Button <img
size="sm" src={dateGroup.matin.signatureUrl}
variant="ghost" alt="Signature formateur"
className="h-5 w-5 p-0" className="h-8 w-16 object-contain border border-gray-300 rounded cursor-pointer hover:border-blue-500 transition-colors"
onClick={() => { onClick={() => {
setSelectedSignature(dateGroup.matin.signatureUrl!); setSelectedSignature(dateGroup.matin.signatureUrl!);
setShowSignatureDialog(true); setShowSignatureDialog(true);
}} }}
> />
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" className="h-4 w-4 text-blue-600">
<path d="M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z"/>
</svg>
</Button>
)} )}
</div> </div>
)} )}
@@ -600,19 +588,15 @@ export default function FormateurEmargement() {
minute: "2-digit" minute: "2-digit"
})}</span> })}</span>
{dateGroup.apres_midi.signatureUrl && ( {dateGroup.apres_midi.signatureUrl && (
<Button <img
size="sm" src={dateGroup.apres_midi.signatureUrl}
variant="ghost" alt="Signature formateur"
className="h-5 w-5 p-0" className="h-8 w-16 object-contain border border-gray-300 rounded cursor-pointer hover:border-blue-500 transition-colors"
onClick={() => { onClick={() => {
setSelectedSignature(dateGroup.apres_midi.signatureUrl!); setSelectedSignature(dateGroup.apres_midi.signatureUrl!);
setShowSignatureDialog(true); setShowSignatureDialog(true);
}} }}
> />
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round" className="h-4 w-4 text-blue-600">
<path d="M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5Z"/>
</svg>
</Button>
)} )}
</div> </div>
)} )}

View File

@@ -1557,3 +1557,12 @@
- [x] Ajouter une section "Signature Formateur" dans le PDF avec les signatures matin et après-midi - [x] Ajouter une section "Signature Formateur" dans le PDF avec les signatures matin et après-midi
- [x] Tester la génération PDF avec les signatures formateurs - [x] Tester la génération PDF avec les signatures formateurs
- [x] Déployer sur recette et production - [x] Déployer sur recette et production
## Afficher les images de signature directement dans la page d'émargement
- [x] Analyser le code actuel de la page FormateurEmargement.tsx pour identifier où ajouter les images
- [x] Modifier l'affichage des lignes de présence apprenants pour inclure les images de signature matin et après-midi
- [x] Modifier l'affichage des lignes de présence formateurs pour inclure les images de signature matin et après-midi
- [x] Ajuster le layout pour que les images s'affichent correctement à côté des informations existantes
- [x] Déployer sur le serveur de test (recette) uniquement