Files
crm_ecosplay/templates/pdf/rgpd_deletion.html.twig
Serreau Jovann 5f144ba4d2 fix: resolve SonarQube accessibility and test issues across templates
- Add for/id attributes to all form labels for accessibility compliance
- Add <title> tags to PDF templates (rgpd_access, rgpd_no_data, rgpd_deletion, contrat_revendeur)
- Add role="presentation" to email layout tables
- Remove deprecated cellpadding/cellspacing attributes from all templates
- Fix PHPUnit notices by replacing createMock with createStub where no expectations are set

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 19:30:53 +02:00

95 lines
6.7 KiB
Twig

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Attestation RGPD - Suppression des donnees</title>
<style>
@page { margin: 0; size: A4; }
body { font-family: Arial, Helvetica, sans-serif; font-size: 11px; color: #111827; margin: 0; padding: 0; }
.banner { background: #fabf04; padding: 16px 32px; border-bottom: 4px solid #111827; }
.banner img { height: 36px; }
.banner-title { font-size: 8px; font-weight: 900; text-transform: uppercase; letter-spacing: 2px; color: #111827; margin-top: 4px; opacity: 0.7; }
.container { padding: 24px 32px 16px; }
.doc-type { display: inline-block; padding: 4px 12px; background: #dc2626; color: #fff; font-size: 8px; font-weight: 900; text-transform: uppercase; letter-spacing: 2px; margin-bottom: 8px; }
h1 { font-size: 18px; font-weight: 900; text-transform: uppercase; letter-spacing: -0.5px; font-style: italic; margin: 0 0 4px 0; line-height: 1.1; }
.subtitle { font-size: 9px; color: #666; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 16px; }
.info-grid { width: 100%; margin-bottom: 16px; }
.info-grid td { padding: 6px 12px; vertical-align: top; }
.info-label { font-size: 7px; font-weight: 900; text-transform: uppercase; letter-spacing: 1.5px; color: #999; display: block; margin-bottom: 1px; }
.info-value { font-size: 11px; font-weight: 700; color: #111827; }
.info-cell { border-left: 3px solid #dc2626; }
.attestation-box { border: 2px solid #111827; margin: 12px 0; }
.attestation-header { background: #dc2626; color: #fff; padding: 6px 16px; font-size: 8px; font-weight: 900; text-transform: uppercase; letter-spacing: 2px; }
.attestation-body { padding: 14px 16px; background: #fef2f2; }
.attestation-body p { line-height: 1.6; margin: 4px 0; font-size: 11px; }
.badge { display: inline-block; padding: 2px 8px; background: #111827; color: #fabf04; font-weight: 900; text-transform: uppercase; font-size: 7px; letter-spacing: 1px; margin-bottom: 6px; }
.warning { padding: 8px 12px; background: #fef2f2; border-left: 3px solid #dc2626; margin: 8px 0; font-size: 10px; font-weight: 700; }
.verify-box { margin: 12px 0; border: 2px solid #111827; }
.verify-box table { width: 100%; }
.verify-box td { vertical-align: middle; }
.verify-qr { text-align: center; width: 100px; padding: 8px; border-right: 2px solid #111827; }
.verify-qr img { width: 72px; height: 72px; }
.verify-info { padding: 8px 12px; font-size: 9px; }
.verify-label { font-size: 7px; font-weight: 900; text-transform: uppercase; letter-spacing: 1.5px; color: #999; display: block; margin-bottom: 1px; }
.verify-url { font-size: 8px; font-family: monospace; color: #4338ca; word-break: break-all; }
.hmac { font-size: 7px; color: #aaa; word-break: break-all; margin: 8px 0; padding: 6px 8px; background: #f9fafb; border: 1px solid #e5e7eb; font-family: monospace; }
.dpo { font-size: 9px; margin: 8px 0 4px; }
.contact-box { display: inline-block; padding: 6px 16px; background: #111827; color: #fff; font-weight: 900; text-transform: uppercase; font-size: 9px; letter-spacing: 1px; }
</style>
</head>
<body>
<div class="banner">
{% if logo %}<img src="{{ logo }}" alt="CRM Ecosplay">{% endif %}
<div class="banner-title">Association E-Cosplay</div>
</div>
<div class="container">
<span class="doc-type">Suppression definitive</span>
<h1>Attestation de suppression des donnees</h1>
<div class="subtitle">RGPD &mdash; Article 17</div>
<table class="info-grid">
<tr>
<td class="info-cell" width="33%"><span class="info-label">Reference</span><span class="info-value">{{ attestation.reference }}</span></td>
<td class="info-cell" width="33%"><span class="info-label">Date</span><span class="info-value">{{ date|date('d/m/Y a H:i') }}</span></td>
<td class="info-cell" width="33%"><span class="info-label">Adresse IP</span><span class="info-value">{{ ip }}</span></td>
</tr>
</table>
<div class="attestation-box">
<div class="attestation-header">Attestation de suppression</div>
<div class="attestation-body">
<span class="badge">Action irreversible</span>
<p><strong>L'association E-Cosplay atteste par la presente que :</strong></p>
<p>Toutes les donnees de navigation associees a l'adresse IP <strong>{{ ip }}</strong> ont ete <strong>definitivement supprimees</strong> de nos systemes le <strong>{{ date|date('d/m/Y') }}</strong> a <strong>{{ date|date('H:i') }}</strong>, conformement a l'<strong>article 17</strong> du RGPD (Reglement UE 2016/679).</p>
<p>Donnees supprimees : identifiants de session, evenements de navigation, informations techniques.</p>
</div>
</div>
<div class="warning">Cette suppression est irreversible. Aucune donnee relative a cette adresse IP ne subsiste dans nos bases de donnees.</div>
<div class="verify-box">
<table>
<tr>
<td class="verify-qr"><img src="{{ qrcode }}" alt="QR Code"></td>
<td class="verify-info">
<span class="verify-label">Verifier ce document</span>
<p style="margin: 2px 0 4px; font-size: 9px; font-weight: 700;">Scannez le QR code ou consultez le lien ci-dessous.</p>
<span class="verify-label">URL</span>
<span class="verify-url">{{ verify_url }}</span>
</td>
</tr>
</table>
</div>
<div class="hmac">HMAC-SHA256 : {{ attestation.hmac }}</div>
<div style="margin-top: 16px;">
<p class="dpo"><strong>DPO (DPO-167945)</strong></p>
<span class="contact-box">contact@e-cosplay.fr</span>
</div>
<div style="margin-top: 12px; display: inline-block; border: 2px solid #111827; padding: 8px 12px; width: 180px; height: 80px;">
<div style="font-size: 1px; color: #fff;">{% verbatim %}{{Sign;type=signature;width=150;height=50}}{% endverbatim %}</div>
</div>
<div style="margin-top: 16px; padding-top: 8px; border-top: 1px solid #ddd; font-size: 7px; color: #999; line-height: 1.6;">
Association E-Cosplay &mdash; RNA W022006988 &mdash; SIREN 943121517<br>
42 rue de Saint-Quentin, 02800 Beautor, France &mdash; contact@e-cosplay.fr &mdash; 06 79 34 88 02<br>
<a href="https://www.e-cosplay.fr" style="color: #999;">www.e-cosplay.fr</a> &mdash; DPO : DPO-167945
</div>
</div>
</body>
</html>