182 lines
4.8 KiB
HTML
182 lines
4.8 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="{{ PDF_LANG or 'de' }}">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>{{ T.onboarding_title }}</title>
|
|
<style>
|
|
body {
|
|
font-family: Helvetica, Arial, sans-serif;
|
|
color: #0f172a;
|
|
font-size: 10.2px;
|
|
line-height: 1.4;
|
|
margin: 0;
|
|
}
|
|
|
|
.hero {
|
|
background: #eef4ff;
|
|
border: 1px solid #cbd9f6;
|
|
border-left: 4px solid #3056a3;
|
|
padding: 8px 10px;
|
|
margin-bottom: 8px;
|
|
}
|
|
|
|
.title {
|
|
margin: 0;
|
|
font-size: 17px;
|
|
color: #233f7a;
|
|
font-weight: bold;
|
|
letter-spacing: 0.2px;
|
|
}
|
|
|
|
.section {
|
|
margin-top: 9px;
|
|
font-size: 11px;
|
|
color: #233f7a;
|
|
font-weight: bold;
|
|
border-bottom: 1px solid #cbd9f6;
|
|
padding-bottom: 2px;
|
|
}
|
|
|
|
table {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
margin: 6px 0;
|
|
}
|
|
|
|
th, td {
|
|
border: 1px solid #d5e2f9;
|
|
padding: 4px 6px;
|
|
vertical-align: top;
|
|
overflow-wrap: anywhere;
|
|
word-break: break-word;
|
|
}
|
|
|
|
th {
|
|
background: #eaf1ff;
|
|
color: #1f376b;
|
|
font-weight: bold;
|
|
width: 31%;
|
|
text-align: left;
|
|
}
|
|
|
|
.mono {
|
|
font-weight: bold;
|
|
color: #111827;
|
|
word-break: break-word;
|
|
}
|
|
|
|
.opt-card {
|
|
border: 1px solid #d5e2f9;
|
|
margin-top: 6px;
|
|
margin-bottom: 6px;
|
|
}
|
|
|
|
.opt-title {
|
|
background: #3056a3;
|
|
color: #fff;
|
|
font-weight: bold;
|
|
padding: 5px 6px;
|
|
font-size: 9.5px;
|
|
}
|
|
|
|
.opt-grid {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
margin: 0;
|
|
}
|
|
|
|
.opt-grid td {
|
|
border: 1px solid #d5e2f9;
|
|
padding: 3px 5px;
|
|
width: 33.33%;
|
|
font-size: 9.5px;
|
|
overflow-wrap: anywhere;
|
|
word-break: break-word;
|
|
}
|
|
|
|
.signature {
|
|
width: 150px;
|
|
height: 70px;
|
|
max-width: 150px;
|
|
max-height: 70px;
|
|
border: 1px solid #c3d3f3;
|
|
padding: 1px;
|
|
object-fit: contain;
|
|
background: #fff;
|
|
}
|
|
|
|
.small {
|
|
color: #64748b;
|
|
font-size: 9px;
|
|
}
|
|
|
|
.muted-cell {
|
|
color: #64748b;
|
|
}
|
|
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div class="hero">
|
|
<h1 class="title">{{ T.onboarding_title }}</h1>
|
|
</div>
|
|
|
|
{% for section in PDF_SECTIONS %}
|
|
{% if section.has_content %}
|
|
<div class="section">{{ section.title }}</div>
|
|
|
|
{% if section.scalar_rows %}
|
|
<table>
|
|
{% for row in section.scalar_rows %}
|
|
<tr>
|
|
<th>{{ row[0].label }}</th>
|
|
<td{% if not row[1] %} colspan="3"{% endif %}{% if row[0].name in ['full_name', 'work_email'] %} class="mono"{% endif %}>{{ row[0].display_value }}</td>
|
|
{% if row[1] %}
|
|
<th>{{ row[1].label }}</th>
|
|
<td>{{ row[1].display_value }}</td>
|
|
{% endif %}
|
|
</tr>
|
|
{% endfor %}
|
|
</table>
|
|
{% endif %}
|
|
|
|
{% for field in section.list_fields %}
|
|
<div class="opt-card">
|
|
<div class="opt-title">{{ field.label }}</div>
|
|
<table class="opt-grid">
|
|
{% for row in field.display_value|batch(3, '') %}
|
|
<tr>
|
|
{% for cell in row %}
|
|
<td>{% if cell %}• {{ cell }}{% endif %}</td>
|
|
{% endfor %}
|
|
</tr>
|
|
{% endfor %}
|
|
</table>
|
|
</div>
|
|
{% endfor %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
|
|
<div class="section">{{ T.confirmation }}</div>
|
|
<table>
|
|
<tr>
|
|
<th>{{ T.requested_by_name }}</th>
|
|
<td>{{ REQUESTED_BY_NAME }}</td>
|
|
<th>{{ T.requested_by_email }}</th>
|
|
<td>{{ REQUESTED_BY_EMAIL }}</td>
|
|
</tr>
|
|
<tr>
|
|
<th>{{ T.signature }}</th>
|
|
{% if UNTERSCHRIFT %}
|
|
<td colspan="3"><img src="{{ UNTERSCHRIFT }}" alt="{{ T.signature_alt }}" class="signature"></td>
|
|
{% else %}
|
|
<td colspan="3" class="muted-cell">{{ UNTERSCHRIFT_HINWEIS }}</td>
|
|
{% endif %}
|
|
</tr>
|
|
</table>
|
|
|
|
<p class="small">{{ T.onboarding_note }}</p>
|
|
</body>
|
|
</html>
|