feat(templates): Working german sponsoring template

This commit is contained in:
Nicolai Ort 2024-12-03 16:25:43 +01:00
parent 382a799038
commit e5f9eff54f
Signed by: niggl
GPG Key ID: 13AFA55AF62F269F
4 changed files with 31 additions and 21 deletions

View File

@ -25,9 +25,9 @@
</head> </head>
<body class="A5 landscape"> <body class="A5 landscape">
{{#each runners}} {{ range .Runners }}
<div class="sheet"> <div class="sheet">
<img id="header_img" width="100%" src="sponsoringheader.png" /> <img id="header_img" width="100%" src="data:image/png;base64,{{ $.SponsoringHeader}}" />
<div style=" padding: 0 1rem 0 1rem;"> <div style=" padding: 0 1rem 0 1rem;">
<div class="columns"> <div class="columns">
<div class="column is-10"> <div class="column is-10">
@ -36,39 +36,41 @@
<p style="font-size: large; font-weight: bold;">Sponsoringerklärung</p> <p style="font-size: large; font-weight: bold;">Sponsoringerklärung</p>
</div> </div>
<div class="column"> <div class="column">
<p style="font-size: x-small; vertical-align: revert; margin-top: auto;">Bitte in DRUCKBUCHSTABEN schreiben <p style="font-size: x-small; vertical-align: revert; margin-top: auto;">Bitte in DRUCKBUCHSTABEN
schreiben
</p> </p>
</div> </div>
</div> </div>
<p> ch bin/ Wir sind bereit anlässlich des {{eventname}}</p> <p>Ich bin/ Wir sind bereit anlässlich des {{ $.EventName }}</p>
<div class="columns"> <div class="columns">
<div class="column is-9"> <div class="column is-9">
<span style="border-bottom: 1px solid; width: 100%; display: block;">{{this.firstname}} <span style="border-bottom: 1px solid; width: 100%; display: block;">{{ .FirstName }}
{{this.middlename}}</span> {{ .MiddleName }}</span>
<p style="font-size: x-small; display: block;">Vorname</p> <p style="font-size: x-small; display: block;">Vorname</p>
</div> </div>
<div class="column is-3"> <div class="column is-3">
<span style="border-bottom: 1px solid; width: 100%; display: block;">{{this.id}}</span> <span style="border-bottom: 1px solid; width: 100%; display: block;">{{ .ID }}</span>
<p style="font-size: x-small; display: block;">ID</p> <p style="font-size: x-small; display: block;">ID</p>
</div> </div>
</div> </div>
</div> </div>
<div class="column"> <div class="column">
<img style="vertical-align: revert; margin-top: auto; object-fit: cover; max-height: 2cm;" <img style="vertical-align: revert; margin-top: auto; object-fit: cover; max-height: 2cm;"
src="{{--bc this.id ../codeformat}}" /> src="{{/* TODO: BARCODE*/}}" />
</div> </div>
</div> </div>
<div class="columns" style="padding-top: 1rem;"> <div class="columns" style="padding-top: 1rem;">
<div class="column is-6"> <div class="column is-6">
<span style="border-bottom: 1px solid; width: 100%; display: block;">{{this.lastname}}</span> <span style="border-bottom: 1px solid; width: 100%; display: block;">{{ .LastName }}</span>
<p style="font-size: x-small; display: block;">Nachname</p> <p style="font-size: x-small; display: block;">Nachname</p>
</div> </div>
<div class="column is-6"> <div class="column is-6">
<span style="border-bottom: 1px solid; width: 100%; display: block;">{{this.group.fullName}}</span> <span style="border-bottom: 1px solid; width: 100%; display: block;">{{ .Group.Name }}</span>
<p style="font-size: x-small; display: block;">Team/ Klasse</p> <p style="font-size: x-small; display: block;">Team/ Klasse</p>
</div> </div>
</div> </div>
<p style="margin-top: -0.5rem">mit einem Betrag von _____{{currency_symbol}} pro gelaufenem Kilometer zu unterstützen.</p> <p style="margin-top: -0.5rem">mit einem Betrag von _____ {{ $.CurrencySymbol }} pro gelaufenem Kilometer zu
unterstützen.</p>
<div class="columns" style="margin-top: -1rem;"> <div class="columns" style="margin-top: -1rem;">
<div class="column is-6"> <div class="column is-6">
<span style="border-bottom: 1px solid; width: 100%; display: block;"></span> <span style="border-bottom: 1px solid; width: 100%; display: block;"></span>
@ -80,7 +82,9 @@
</div> </div>
</div> </div>
<p style="font-size: medium; margin-top: -0.5rem;">Adresse (Sponsor)</p> <p style="font-size: medium; margin-top: -0.5rem;">Adresse (Sponsor)</p>
<p style="font-size: x-small;">(Muss ausgefüllt werden, wenn Sie eine Spendenquittung benötigen - Spendenquittungen können erst ab einem Gesamtbetrag von {{sponsoring_receipt_minimum_amount}}{{currency_symbol}} ausgestellt werden)</p> <p style="font-size: x-small;">(Muss ausgefüllt werden, wenn Sie eine Spendenquittung benötigen -
Spendenquittungen können erst ab einem Gesamtbetrag von {{ $.ReceiptMinimumAmount }}{{ $.CurrencySymbol }}
ausgestellt werden)</p>
<div class="columns" style="margin-top: -1rem;"> <div class="columns" style="margin-top: -1rem;">
<div class="column is-8"> <div class="column is-8">
<span style="border-bottom: 1px solid; width: 100%; display: block;"></span> <span style="border-bottom: 1px solid; width: 100%; display: block;"></span>
@ -111,10 +115,10 @@
<p style="font-size: x-small; display: block;">Unterschrift</p> <p style="font-size: x-small; display: block;">Unterschrift</p>
</div> </div>
</div> </div>
<p style="font-size: xx-small; overflow: hidden; height: 4rem; text-align: center;">{{../disclaimer}}</p> <p style="font-size: xx-small; overflow: hidden; height: 4rem; text-align: center;"> {{ $.Disclaimer }}</p>
</div> </div>
</div> </div>
{{/each}} {{ end }}
</body> </body>
</html> </html>

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 225 KiB

View File

@ -2,6 +2,8 @@ package templates
import ( import (
_ "embed" _ "embed"
"fmt"
"html/template"
) )
//go:embed card/en.html //go:embed card/en.html
@ -16,22 +18,25 @@ var ContractTemplateEn string
//go:embed contract/de.html //go:embed contract/de.html
var ContractTemplateDe string var ContractTemplateDe string
func GetTemplate(locale, template string) string { //go:embed images/sponsoringheader.base64
switch template { var ImageSponsoringHeaderBase64 string
func GetTemplate(locale, templateName string) (*template.Template, error) {
switch templateName {
case "card": case "card":
switch locale { switch locale {
case "en": case "en":
return CardTemplateEn return template.New("card").Parse(CardTemplateEn)
case "de": case "de":
return CardTemplateDe return template.New("card").Parse(CardTemplateDe)
} }
case "contract": case "contract":
switch locale { switch locale {
case "en": case "en":
return ContractTemplateEn return template.New("contract").Parse(ContractTemplateEn)
case "de": case "de":
return ContractTemplateDe return template.New("contract").Parse(ContractTemplateDe)
} }
} }
return "" return nil, fmt.Errorf("template not found with name %s and locale %s", templateName, locale)
} }