From 9358d80dff164447f8c4ac949c17e894d043d303 Mon Sep 17 00:00:00 2001 From: MoritzWeber0 Date: Wed, 18 Mar 2026 22:22:02 +0100 Subject: [PATCH 1/6] feat: Add FIP card validity to FIP validity page --- assets/sass/fip-validity.scss | 4 +-- content/generalinformation/_index.de.md | 14 +-------- content/generalinformation/_index.en.md | 14 +-------- content/generalinformation/_index.fr.md | 14 +-------- content/operator/db/validity.yaml | 4 +++ content/operator/sncb/validity.yaml | 4 +++ content/operator/sncf/validity.yaml | 4 +++ i18n/de.yaml | 2 ++ i18n/en.yaml | 2 ++ i18n/fr.yaml | 4 +++ layouts/partials/fip-validity/comparison.html | 30 +++++++++++++++---- 11 files changed, 50 insertions(+), 46 deletions(-) diff --git a/assets/sass/fip-validity.scss b/assets/sass/fip-validity.scss index 1849231a2..965d3318f 100644 --- a/assets/sass/fip-validity.scss +++ b/assets/sass/fip-validity.scss @@ -23,8 +23,8 @@ flex: 1; } - &__table-wrapper { - margin-bottom: 5rem; + &__wrapper { + margin-bottom: 3rem; } &__table { diff --git a/content/generalinformation/_index.de.md b/content/generalinformation/_index.de.md index de6d0c634..0424643b2 100644 --- a/content/generalinformation/_index.de.md +++ b/content/generalinformation/_index.de.md @@ -32,19 +32,7 @@ Für die Nutzung von FIP-Vergünstigungen ist eine aktuelle Internationale Ermä Der FIP Ausweis hat je nach eigener Bahngesellschaft eine unterschiedliche Gültigkeitsdauer. Der FIP Ausweis gilt bereits einen Monat vor dem aufgedruckten ersten Gültigkeitsjahr (01.12. des Vorjahres) sowie einen Monat nach dem letzten Gültigkeitsjahr (31.01 des Folgejahres). -Für folgende Bahngesellschaften liegen uns Informationen zur Gültigkeitsdauer vor: - -{{% expander "Deutsche Bahn (DB)" info "national" %}} -Der FIP Ausweis ist immer für eine feste Periode von drei Jahren gültig. Die aktuelle Periode ist 2025-2026-2027. -{{% /expander %}} - -{{% expander "Société nationale des chemins de fer français (SNCF)" info "national" %}} -Der FIP Ausweis ist drei Jahre gültig. -{{% /expander %}} - -{{% expander "Société nationale des chemins de fer belges (SNCB) / Nationale Maatschappij der Belgische Spoorwegen (NMBS)" info "national" %}} -Der FIP Ausweis ist ein Jahr gültig. -{{% /expander %}} +Die Gültigkeitsdauer deines FIP Ausweises kannst du auf unserer [Übersichtlichkeitsseite](/fip-validity/) herausfinden. Bei einigen Bahngesellschaften können Mitarbeitende auch für ihre Angehörigen FIP Ausweise erhalten und so FIP 50 Tickets erwerben. diff --git a/content/generalinformation/_index.en.md b/content/generalinformation/_index.en.md index cae4b8f83..9842b91a0 100644 --- a/content/generalinformation/_index.en.md +++ b/content/generalinformation/_index.en.md @@ -32,19 +32,7 @@ To use FIP discounts, you need a valid International Discount Card for Railway S The validity period of the FIP Card depends on your railway company. The FIP Card is valid starting one month before the printed first year of validity (from December 1st of the previous year) and up to one month after the last year of validity (until January 31th of the following year). -For the following railway companies, we have information on the validity period: - -{{% expander "Deutsche Bahn (DB)" info "national" %}} -The FIP Card is always valid for a fixed period of three years. The current period is 2025-2026-2027. -{{% /expander %}} - -{{% expander "Société nationale des chemins de fer français (SNCF)" info "national" %}} -The FIP Card is valid for three years. -{{% /expander %}} - -{{% expander "Société nationale des chemins de fer belges (SNCB) / Nationale Maatschappij der Belgische Spoorwegen (NMBS)" info "national" %}} -The FIP Card is valid for one year. -{{% /expander %}} +You can find out the validity period of your FIP Card on our [overview page](/fip-validity/). Some railway companies also allow employees to obtain FIP Cards for their dependents, allowing them to purchase FIP 50 Tickets. diff --git a/content/generalinformation/_index.fr.md b/content/generalinformation/_index.fr.md index b6038979a..17be95568 100644 --- a/content/generalinformation/_index.fr.md +++ b/content/generalinformation/_index.fr.md @@ -32,19 +32,7 @@ Pour bénéficier des réductions FIP, il est nécessaire de disposer d’une Ca La durée de validité de la Carte FIP dépend de la compagnie ferroviaire émettrice. En règle générale, la Carte FIP est valable à partir du 1ᵉʳ décembre de l’année précédant la première année de validité imprimée, et jusqu’au 31 janvier de l’année suivant la dernière année de validité. -Pour les compagnies ferroviaires suivantes, nous disposons d’informations sur la durée de validité : - -{{% expander "Deutsche Bahn (DB)" info "national" %}} -La Carte FIP est toujours valable pour une période fixe de trois ans. La période actuelle est 2025-2026-2027. -{{% /expander %}} - -{{% expander "Société nationale des chemins de fer français (SNCF)" info "national" %}} -La Carte FIP est valable trois ans. -{{% /expander %}} - -{{% expander "Société nationale des chemins de fer belges (SNCB) / Nationale Maatschappij der Belgische Spoorwegen (NMBS)" info "national" %}} -La Carte FIP est valable un an. -{{% /expander %}} +Vous pouvez consulter la durée de validité de votre Carte FIP sur notre [page d’aperçu](/fip-validity/). Certaines entreprises ferroviaires permettent également aux employés d’obtenir des Cartes FIP pour leurs ayants droit, leur permettant d’acheter des Billets FIP 50. diff --git a/content/operator/db/validity.yaml b/content/operator/db/validity.yaml index 3cbfa47c3..e14e127da 100644 --- a/content/operator/db/validity.yaml +++ b/content/operator/db/validity.yaml @@ -53,6 +53,10 @@ _anchors: fr: | **1 coupon** Unique, dans les 45 mois suivant le départ. +card-validity: + de: Der FIP Ausweis ist immer für eine feste Periode von drei Jahren gültig. Die aktuelle Periode ist 2025-2026-2027. + en: The FIP Card is always valid for a fixed period of three years. The current period is 2025-2026-2027. + fr: La Carte FIP est toujours valable pour une période fixe de trois ans. La période actuelle est 2025-2026-2027. sncf: fip-coupon: active: *coupon-4fields diff --git a/content/operator/sncb/validity.yaml b/content/operator/sncb/validity.yaml index 3b50b3c3b..cc40db500 100644 --- a/content/operator/sncb/validity.yaml +++ b/content/operator/sncb/validity.yaml @@ -88,6 +88,10 @@ _anchors: fr: | **1 coupon** Par an (enfant uniquement). +card-validity: + de: Der FIP Ausweis ist ein Jahr gültig. + en: The FIP Card is valid for one year. + fr: La Carte FIP est valable un an. bdz: fip-coupon: active: *coupon-1 diff --git a/content/operator/sncf/validity.yaml b/content/operator/sncf/validity.yaml index 695f703e9..53ba79301 100644 --- a/content/operator/sncf/validity.yaml +++ b/content/operator/sncf/validity.yaml @@ -66,6 +66,10 @@ _anchors: fr: | **1 coupon** Avec 2 champs chacun par an. Chaque champ est valable pour une traversée. +card-validity: + de: Der FIP Ausweis ist drei Jahre gültig. + en: The FIP Card is valid for three years. + fr: La Carte FIP est valable trois ans. db: fip-coupon: active: *coupon-4fields diff --git a/i18n/de.yaml b/i18n/de.yaml index f8a28c3da..c76333894 100644 --- a/i18n/de.yaml +++ b/i18n/de.yaml @@ -50,6 +50,8 @@ fipValidity: active-relatives: Angehörige aktiver Mitarbeitender additional: Sonstige buttonLabel: Mehr Informationen zur FIP Gültigkeit anzeigen + cardValidityHeading: Gültigkeitsdauer des FIP Ausweises + cardValidityMissingInfo: Derzeit liegen uns keine Informationen zur Gültigkeitsdauer vor. fip-coupon: FIP Freifahrtschein fip-coupon-description: >- Wähle zunächst den Aussteller deines FIP Ausweises. Wenn du berechtigt bist, diff --git a/i18n/en.yaml b/i18n/en.yaml index 5c1756dd7..b75c72509 100644 --- a/i18n/en.yaml +++ b/i18n/en.yaml @@ -49,6 +49,8 @@ fipValidity: active-relatives: Relatives of Active Employees additional: Other buttonLabel: Show more information on FIP validity + cardValidityHeading: Validity Period of the FIP Card + cardValidityMissingInfo: We currently do not have information on the validity period. fip-coupon: FIP Coupon fip-coupon-description: >- First select the issuer of your FIP Card. If you are eligible, you can diff --git a/i18n/fr.yaml b/i18n/fr.yaml index da5866236..555a1626b 100644 --- a/i18n/fr.yaml +++ b/i18n/fr.yaml @@ -50,6 +50,10 @@ fipValidity: active-relatives: Ayants droit des employés actifs additional: Autre buttonLabel: Afficher plus d'informations sur la validité du FIP + cardValidityHeading: Durée de validité de la Carte FIP + cardValidityMissingInfo: >- + Nous ne disposons actuellement d’aucune information sur la durée de + validité. fip-coupon: Coupon FIP fip-coupon-description: >- Sélectionnez d'abord l'émetteur de votre Carte FIP. Si vous êtes éligible, diff --git a/layouts/partials/fip-validity/comparison.html b/layouts/partials/fip-validity/comparison.html index 241c806f9..f84674abc 100644 --- a/layouts/partials/fip-validity/comparison.html +++ b/layouts/partials/fip-validity/comparison.html @@ -17,9 +17,29 @@ }} -{{- range $types := slice "fip-coupon" "fip-reduced-ticket" -}} -
-

{{ T (printf "fipValidity.%s" $types) }}

+

{{ T "fipValidity.cardValidityHeading" }}

+

{{ T "fipValidity.selectIssuerFirst" }}

+ +
+ {{- range $issuers -}} + {{- $issuerSlug := .File.ContentBaseName -}} + {{- $validity := .Resources.Get "validity.yaml" | transform.Unmarshal -}} + {{- $cardValidity := index $validity "card-validity" -}} + {{- $text := T "fipValidity.cardValidityMissingInfo" -}} + {{- if $cardValidity -}} + {{- $text = index $cardValidity $lang -}} + {{- end -}} + + + + {{- end -}} +
+ +{{- range $type := slice "fip-coupon" "fip-reduced-ticket" -}} +
+

{{ T (printf "fipValidity.%s" $type) }}

{{ T "fipValidity.selectIssuerFirst" }}

@@ -31,14 +51,14 @@

{{ T (printf "fipValidity.%s" $types) }}

{{- range where $.Site.RegularPages "Type" "operator" -}} {{- $targetSlug := .File.ContentBaseName -}} {{- if and (ne $targetSlug $issuerSlug) (not (in $excluded $targetSlug)) -}} - {{- $entries = merge $entries (dict $targetSlug (index (index $validity $targetSlug) $types)) -}} + {{- $entries = merge $entries (dict $targetSlug (index (index $validity $targetSlug) $type)) -}} {{- end -}} {{- end -}} -

{{ T "fipValidity.cardValidityHeading" }}

-

{{ T "fipValidity.selectIssuerFirst" }}

+

{{ T "general" }}

-
- {{- range $issuers -}} - {{- $issuerSlug := .File.ContentBaseName -}} - {{- $validity := .Resources.Get "validity.yaml" | transform.Unmarshal -}} - {{- $cardValidity := index $validity "card-validity" -}} - {{- $text := T "fipValidity.cardValidityMissingInfo" -}} - {{- if $cardValidity -}} - {{- $text = index $cardValidity $lang -}} - {{- end -}} +{{- range $entryKey := slice "card-validity" "taxation" "national-discounts" -}} +

{{ T (printf "fipValidity.%sHeading" $entryKey) }}

+

{{ T "fipValidity.selectIssuerFirst" }}

+
+ {{- range $issuers -}} + {{- $issuerSlug := .File.ContentBaseName -}} + {{- $validity := .Resources.Get "validity.yaml" | transform.Unmarshal -}} + {{- $entry := index $validity $entryKey -}} + {{- $text := T (printf "fipValidity.%sMissingInfo" $entryKey) -}} + {{- if $entry -}} + {{- $text = index $entry $lang -}} + {{- end -}} - - {{- end -}} -
+ + + {{- end -}} +
+{{- end -}} {{- range $type := slice "fip-coupon" "fip-reduced-ticket" -}}
From 5ed4d74afc10df576b9d16f5d5ed73b31c23fe07 Mon Sep 17 00:00:00 2001 From: MoritzWeber0 Date: Sun, 29 Mar 2026 18:07:55 +0200 Subject: [PATCH 3/6] feat: Add general section for fip-reduced-ticket and fip-coupon --- assets/sass/fip-validity.scss | 4 +++ content/operator/db/validity.yaml | 14 +++++++++ layouts/partials/fip-validity/comparison.html | 28 +++++++++++++----- layouts/partials/fip-validity/dialog.html | 29 ++++++++++++++----- 4 files changed, 59 insertions(+), 16 deletions(-) diff --git a/assets/sass/fip-validity.scss b/assets/sass/fip-validity.scss index 965d3318f..c65cf63d8 100644 --- a/assets/sass/fip-validity.scss +++ b/assets/sass/fip-validity.scss @@ -106,6 +106,10 @@ margin-bottom: 1.5rem; } + &__general { + margin-top: 1rem; + } + &__dropdown-button { border: var(--border-visible); border-radius: var(--border-radius-m); diff --git a/content/operator/db/validity.yaml b/content/operator/db/validity.yaml index cf781e386..69f5555d3 100644 --- a/content/operator/db/validity.yaml +++ b/content/operator/db/validity.yaml @@ -99,6 +99,20 @@ national-discounts: Les employés de Deutsche Bahn peuvent utiliser les réductions nationales pour voyager jusqu’au point tarifaire frontière. Pour cela, un Tagesticket M Fern (Billet Journalier M Longue Distance) ou une Netzcard (Carte Réseau) peuvent être utilisés. Ceux-ci sont valables sur tout le réseau et donc jusqu’au point tarifaire frontière vers les pays voisins. Dans certains cas, d’autres billets valables pour le segment entier offrent des alternatives moins chères au FIP. Ceux-ci comprennent (Super) Sparpreise Europa DB-PEP (uniquement en combinaison avec un voyageur avec FIP, voir conditions d’utilisation) ou les (Super) Sparpreise réguliers (tarifs de réduction). Plus d’informations peuvent être trouvées sur le DB Reisemarkt et le portail des employés DB. +general: + fip-coupon: + de: | + Die Beantragung von FIP Freifahrtscheinen für DB Mitarbeitende muss mind. vier Wochen vor Gültigkeitsbeginn über das DB Personalportal beantragt werden. + + Freifahrtscheine können mit 1 bis 4 Feldern beantragt werden. Wenn bereits ein Freifahrtschein mit weniger als vier Feldern im gleichen Jahr bentragt wurde, verfallen die weiteren Felder und können nicht erneut beantragt werden. Jedes Feld wird individuell versteuert. Mehr Informationen dazu unter [Versteuerung](/fip-validity#taxation). + en: | + FIP Coupon requests for DB employees must be submitted via the DB employee portal at least four weeks before the start of validity. + + Coupons can be requested with 1 to 4 fields. If a coupon with fewer than four fields has already been requested in the same year, the remaining fields expire and cannot be requested again. Each field is taxed individually. More information is available under [Taxation](/fip-validity#taxation). + fr: | + Les demandes de Coupons FIP pour les employés DB doivent être soumises via le portail des employés DB au moins quatre semaines avant le début de validité. + + Les Coupons peuvent être demandés avec 1 à 4 champs. Si un coupon avec moins de quatre champs a déjà été demandé la même année, les champs restants expirent et ne peuvent pas être redemandés. Chaque champ est imposé individuellement. Plus d’informations sous [Imposition](/fip-validity#taxation). sncf: fip-coupon: active: *coupon-4fields diff --git a/layouts/partials/fip-validity/comparison.html b/layouts/partials/fip-validity/comparison.html index 6d39763c5..3273927fa 100644 --- a/layouts/partials/fip-validity/comparison.html +++ b/layouts/partials/fip-validity/comparison.html @@ -17,13 +17,15 @@ }}
-

{{ T "general" }}

+
+

{{ T "general" }}

-{{- range $entryKey := slice "card-validity" "taxation" "national-discounts" -}} -

{{ T (printf "fipValidity.%sHeading" $entryKey) }}

-

{{ T "fipValidity.selectIssuerFirst" }}

+ {{- range $entryKey := slice "card-validity" "taxation" "national-discounts" -}} +

+ {{ T (printf "fipValidity.%sHeading" $entryKey) }} +

+

{{ T "fipValidity.selectIssuerFirst" }}

-
{{- range $issuers -}} {{- $issuerSlug := .File.ContentBaseName -}} {{- $validity := .Resources.Get "validity.yaml" | transform.Unmarshal -}} @@ -38,18 +40,23 @@

{{ T (printf "fipValidity.%sHeading" $entryKey) }}

{{ $text | .Page.RenderString }}
{{- end -}} -
-{{- end -}} + {{- end -}} +
{{- range $type := slice "fip-coupon" "fip-reduced-ticket" -}}
-

{{ T (printf "fipValidity.%s" $type) }}

+

{{ T (printf "fipValidity.%s" $type) }}

{{ T "fipValidity.selectIssuerFirst" }}

{{- range $issuers -}} {{- $issuerSlug := .File.ContentBaseName -}} {{- $validity := .Resources.Get "validity.yaml" | transform.Unmarshal -}} + {{- $general := index (index $validity "general") $type -}} + {{- $generalText := "" -}} + {{- if $general -}} + {{- $generalText = index $general $lang -}} + {{- end -}} {{- $entries := dict -}} {{- range where $.Site.RegularPages "Type" "operator" -}} @@ -65,6 +72,11 @@

{{ T (printf "fipValidity.%s" $type) }}

data-fip-type="{{ $type }}" hidden > + {{- if $generalText -}} +
+ {{ $generalText | $.Page.RenderString }} +
+ {{- end -}} {{ partial "fip-validity/table" (dict "entries" $entries "lang" $lang "page" $) }}
{{- end -}} diff --git a/layouts/partials/fip-validity/dialog.html b/layouts/partials/fip-validity/dialog.html index 74a2bff7e..ff75abc45 100644 --- a/layouts/partials/fip-validity/dialog.html +++ b/layouts/partials/fip-validity/dialog.html @@ -33,15 +33,28 @@ {{- range $issuers -}} {{- $slug := .page.File.ContentBaseName -}} {{- $entry := .entry -}} -