{% extends "_base.html" %} {#- Contrato assinado + trilha de auditoria (§5.10) — TMFP-59338, migrado do reportlab em TMFP-68796. Os textos chegam prontos de ``services/contract_signed_pdf.py``; autoescape ligado: título/nome/IP/UA/motivo de usuário saem literais (TMFP-67411). -#} {% block title %}{{ titulo_documento }}{% endblock %} {% block margem %}15mm{% endblock %} {% block css %} h1 { font-size: 14pt; font-weight: bold; margin-bottom: 2mm; } h3 { font-size: 11pt; font-weight: bold; font-style: italic; margin: 4mm 0 1mm 0; } .sub { font-size: 9pt; color: #808080; } .corpo { font-size: 9.5pt; line-height: 13pt; overflow-wrap: anywhere; } .nota { font-size: 9pt; color: #808080; font-style: italic; } table { width: 171mm; margin: 0 auto; border-collapse: collapse; table-layout: fixed; font-size: 7.5pt; line-height: 9pt; } th { background: #1f2937; color: #fff; font-weight: bold; text-align: left; } th, td { border: 0.4pt solid #d1d5db; padding: 2.5pt 3pt; vertical-align: top; overflow-wrap: anywhere; } tbody tr:nth-child(even) td { background: #f3f4f6; } thead { display: table-header-group; } tr { page-break-inside: avoid; } {% endblock %} {% block corpo %}
{{ subtitulo }}
{{ rotulo }} {{ valor }}
{% endfor %}Registro da origem e integridade de cada ato de assinatura eletrônica deste contrato (IP, user-agent e hashes SHA-256 do documento).
{% if not assinaturas %}Nenhuma assinatura registrada.
{% else %}| Signatário | Status | Assinado em | IP | User-Agent | document_hash | signed_document_hash |
|---|---|---|---|---|---|---|
| {{ a.nome }}{% if a.email %} {{ a.email }}{% endif %} |
{{ a.status }} | {{ a.assinado_em }} | {{ a.ip }} | {{ a.user_agent }} | {{ a.document_hash }} | {{ a.signed_document_hash }} |
| Versão | De | Para | Motivo | Em |
|---|---|---|---|---|
| {{ v.numero }} | {{ v.de }} | {{ v.para }} | {{ v.motivo }} | {{ v.em }} |