feat(certificate): German template
This commit is contained in:
2 files changed
+108
-2
No files matched your search
@@ -13,6 +13,8 @@ type RunnerWithDonations struct {
|
||||
Group Group `json:"group"`
|
||||
Distance int `json:"distance"`
|
||||
DistanceDonations []DistanceDonation `json:"distance_donations"`
|
||||
TotalPerDistance int `json:"total_per_distance"`
|
||||
TotalDonations int `json:"total_donations"`
|
||||
}
|
||||
|
||||
type DistanceDonation struct {
|
||||
@@ -31,6 +33,8 @@ type Donor struct {
|
||||
}
|
||||
|
||||
type CertificateTemplateOptions struct {
|
||||
Runners []RunnerWithDonations `json:"runners"`
|
||||
EventName string `json:"event_name"`
|
||||
Runners []RunnerWithDonations `json:"runners"`
|
||||
EventName string `json:"event_name"`
|
||||
Footer string `json:"footer"`
|
||||
CurrencySymbol string `json:"currency_symbol"`
|
||||
}
|
||||
@@ -0,0 +1,102 @@
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="utf8">
|
||||
<title>Sponsoring contract</title>
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.9.1/css/bulma.min.css">
|
||||
<style>
|
||||
.sheet {
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
box-sizing: border-box;
|
||||
page-break-after: always;
|
||||
padding: 1.2cm 2cm 1.2cm 2cm;
|
||||
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqsAAASrCAYAAAC1y/HLAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFHGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxOCAoV2luZG93cykiIHhtcDpDcmVhdGVEYXRlPSIyMDIxLTAzLTMxVDEzOjUzOjUyKzAyOjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAyMS0wMy0zMVQxNzowMzo1OCswMjowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyMS0wMy0zMVQxNzowMzo1OCswMjowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2MjMzNzM0My1jYjBj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 truncated
|
||||
background-repeat: no-repeat;
|
||||
background-size: 11cm;
|
||||
background-position: 5cm 5cm;
|
||||
color: #000;
|
||||
/* border-style: solid; */
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
p {
|
||||
color: black;
|
||||
}
|
||||
|
||||
body.A4 .sheet {
|
||||
width: 210mm;
|
||||
height: 296mm
|
||||
}
|
||||
|
||||
.certificate-footer {
|
||||
position: absolute;
|
||||
bottom: 0cm;
|
||||
}
|
||||
|
||||
td {
|
||||
border: 1px solid black;
|
||||
font-size: large;
|
||||
font-weight: 600;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body class="A4 landscape">
|
||||
{{ range .Runners }}
|
||||
<article class="sheet">
|
||||
<header class="content has-text-centered">
|
||||
<p style="font-size: 3cm; font-weight: bold;">Urkunde</p>
|
||||
</header>
|
||||
<main class="content has-text-centered" style="padding-top: 3cm;">
|
||||
<p style="width: 50%; font-size: 4vw; font-weight: bold; margin-bottom: 0; display: inline;">{{ .FirstName }}
|
||||
{{ .MiddleName }} {{ .LastName }}
|
||||
</p>
|
||||
<p style="font-size: 1cm; margin-bottom: 0;">hat beim {{ $.EventName }}</p>
|
||||
<p style="font-size: 2cm; font-weight: bold; margin-bottom: 0;">{{unitFormat "kilometer" .Distance}}km</p>
|
||||
<p style="font-size: 1cm;">für den guten Zweck zurückgelegt</p>
|
||||
</main>
|
||||
<footer class="certificate-footer">
|
||||
<img src="./certificate_footer.png">
|
||||
</footer>
|
||||
</article>
|
||||
<article class="sheet">
|
||||
<header class="content has-text-centered">
|
||||
<p style="font-size: 2.5cm; font-weight: bold;">Sponsorings</p>
|
||||
</header>
|
||||
<main>
|
||||
<table style="border: solid; width: 17cm;">
|
||||
<thead>
|
||||
<td class=".td-head">Sponsor:in</td>
|
||||
<td>Betrag/km</td>
|
||||
<td>Gesamtbetrag</td>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{ range .DistanceDonations}}
|
||||
<tr>
|
||||
<td>{{ .Donor.FirstName }} {{ .Donor.MiddleName }} {{ .Donor.LastName }}</td>
|
||||
<td>{{ unitFormat "euro" .AmountPerDistance }} {{ $.CurrencySymbol }}</td>
|
||||
<td>{{ unitFormat "euro" .Amount }} {{ $.CurrencySymbol }}</td>
|
||||
</tr>
|
||||
{{ end }}
|
||||
</tbody>
|
||||
<tfoot>
|
||||
<td>Gesamt</td>
|
||||
<td>{{ unitFormat .TotalPerDistance }} {{ $.CurrencySymbol }}</td>
|
||||
<td>{{ unitFormat .TotalDonations }} {{ $.CurrencySymbol }}</td>
|
||||
</tfoot>
|
||||
</table>
|
||||
</main>
|
||||
<footer class="certificate-footer">
|
||||
<p>
|
||||
{{ $.Footer }}
|
||||
</p>
|
||||
</footer>
|
||||
</article>
|
||||
{{ end }}
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Reference in new issue
Block a user