From 76d982fa042806a8482c6ae3138ead465958b7e1 Mon Sep 17 00:00:00 2001 From: Nicolai Ort Date: Mon, 26 May 2025 16:59:42 +0200 Subject: [PATCH] fix(templates/certificates): Remove 'km' suffix from formatted distance output and calculate the suffix dynamicly --- services/templater.go | 11 ++++++++++- static/templates/certificate/de.html | 2 +- static/templates/certificate/en.html | 2 +- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/services/templater.go b/services/templater.go index 0824297..a475f4e 100644 --- a/services/templater.go +++ b/services/templater.go @@ -6,6 +6,7 @@ import ( "errors" "fmt" "html/template" + "math" "strings" "go.uber.org/zap" @@ -91,7 +92,15 @@ func (t *DefaultTemplater) FormatUnit(unit string, locale string, amount int) (s var formatted string switch unit { case "kilometer": - formatted = fmt.Sprintf("%.3f", float64(amount)/1000) + if amount < 1000 { + formatted = fmt.Sprintf("%dm", amount) + } else if (amount % 1000) == 0 { + formatted = fmt.Sprintf("%dkm", amount/1000) + } else { + kilometers := math.Floor(float64(amount) / 1000) + meters := amount - int(kilometers)*1000 + formatted = fmt.Sprintf("%dkm %dm", int(kilometers), meters) + } case "euro": formatted = fmt.Sprintf("%.2f", float64(amount)/100) default: diff --git a/static/templates/certificate/de.html b/static/templates/certificate/de.html index 1596ef0..1b8da87 100644 --- a/static/templates/certificate/de.html +++ b/static/templates/certificate/de.html @@ -56,7 +56,7 @@ {{ .MiddleName }} {{ .LastName }}

hat beim {{ $.EventName }}

-

{{formatUnit "kilometer" $.Locale .Distance}}km

+

{{formatUnit "kilometer" $.Locale .Distance}}

für den guten Zweck zurückgelegt.