Files
e-ticket/templates/email/scan_force_notification.html.twig
Serreau Jovann 8eb7d74445 Add <thead>/<th> headers to all email and PDF template tables, fix infra test snapshot data
- Add proper <thead> with <th> headers to tables in email templates:
  order_cancelled_orga, order_notification_orga, order_refunded,
  organizer_invitation, payment_failed, scan_force_notification
- Add proper <thead> with <th> headers to tables in PDF templates:
  attestation_ventes, billet, export_recap, invoice
- Fix testInfraPageWithSnapshotData: provide complete server data
  (os, uptime, cpu, ram, disk, services, ssl) required by the template

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 13:40:48 +02:00

60 lines
3.5 KiB
Twig

{% extends 'email/base.html.twig' %}
{% block title %}Validation forcee d'un billet{% endblock %}
{% block content %}
<h2>Validation forcee</h2>
<p>Un billet a ete <strong>force lors du scan</strong> sur votre evenement. Voici les details :</p>
<table style="width: 100%; border-spacing: 0; margin: 20px 0; border: 2px solid #111827;">
<thead>
<tr style="background-color: #111827;">
<th style="padding: 12px 16px; color: #ffffff; font-size: 12px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.1em; text-align: left; width: 140px;">Champ</th>
<th style="padding: 12px 16px; color: #ffffff; font-size: 12px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.1em; text-align: left;">Valeur</th>
</tr>
</thead>
<tbody>
<tr>
<td style="padding: 10px 16px; font-size: 13px; font-weight: 700; color: #6b7280; border-bottom: 1px solid #e5e7eb; width: 140px;">Evenement</td>
<td style="padding: 10px 16px; font-size: 13px; font-weight: 800; border-bottom: 1px solid #e5e7eb;">{{ event_title }}</td>
</tr>
<tr>
<td style="padding: 10px 16px; font-size: 13px; font-weight: 700; color: #6b7280; border-bottom: 1px solid #e5e7eb;">Billet</td>
<td style="padding: 10px 16px; font-size: 13px; font-weight: 800; border-bottom: 1px solid #e5e7eb;">{{ billet_name }}</td>
</tr>
<tr>
<td style="padding: 10px 16px; font-size: 13px; font-weight: 700; color: #6b7280; border-bottom: 1px solid #e5e7eb;">Reference</td>
<td style="padding: 10px 16px; font-size: 13px; font-weight: 800; font-family: monospace; border-bottom: 1px solid #e5e7eb;">{{ reference }}</td>
</tr>
<tr>
<td style="padding: 10px 16px; font-size: 13px; font-weight: 700; color: #6b7280; border-bottom: 1px solid #e5e7eb;">Acheteur</td>
<td style="padding: 10px 16px; font-size: 13px; font-weight: 800; border-bottom: 1px solid #e5e7eb;">{{ buyer_name }}</td>
</tr>
<tr>
<td style="padding: 10px 16px; font-size: 13px; font-weight: 700; color: #6b7280; border-bottom: 1px solid #e5e7eb;">Ancien statut</td>
<td style="padding: 10px 16px; font-size: 13px; font-weight: 800; border-bottom: 1px solid #e5e7eb;">
<span style="display: inline-block; padding: 2px 10px; background: #dc2626; color: #fff; font-size: 11px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.05em;">{{ previous_state }}</span>
</td>
</tr>
</tbody>
</table>
<table style="width: 100%; border-spacing: 0; margin: 20px 0; border: 2px solid #eab308; background: #fefce8;">
<thead>
<tr>
<th style="padding: 0; font-size: 0; line-height: 0; height: 0; border: none;">Force par</th>
</tr>
</thead>
<tbody>
<tr>
<td style="padding: 16px;">
<p style="margin: 0 0 4px; font-size: 12px; font-weight: 900; text-transform: uppercase; letter-spacing: 0.1em; color: #92400e;">Force par</p>
<p style="margin: 0; font-size: 14px; font-weight: 800; color: #111827;">{{ forced_by_name }} ({{ forced_by_email }})</p>
</td>
</tr>
</tbody>
</table>
<p style="font-size: 13px; color: #6b7280;">Si cette action n'etait pas prevue, nous vous recommandons de verifier la situation.</p>
{% endblock %}