From 0bd4c335572cc98d4db4e35fee04ec9c340b7a10 Mon Sep 17 00:00:00 2001 From: rene Date: Thu, 14 May 2026 16:47:57 +0200 Subject: [PATCH] =?UTF-8?q?Fix:=20K=C3=BCndigungs-Mail=20+=20Settings=20?= =?UTF-8?q?=E2=80=94=20Ablaufdatum=20korrekt=20formatiert=20(SW=20by-v950)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/routes/auth.py | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/backend/routes/auth.py b/backend/routes/auth.py index 59ad6e8..895c94c 100644 --- a/backend/routes/auth.py +++ b/backend/routes/auth.py @@ -418,20 +418,36 @@ async def cancel_subscription(user=Depends(get_current_user)): try: from mailer import send_email, email_html import html as _html - tier_label = {"pro": "Ban Yaro Pro", "breeder": "Züchter"}.get(row["subscription_tier"], row["subscription_tier"]) - expires_fmt = expires[:10] if expires else "—" + tier_label = {"pro": "Ban Yaro Pro", "breeder": "Züchter"}.get(row["subscription_tier"], row["subscription_tier"]) + expires_de = None + if expires: + from datetime import date as _date + try: + d = _date.fromisoformat(expires[:10]) + monate = ["Januar","Februar","März","April","Mai","Juni", + "Juli","August","September","Oktober","November","Dezember"] + expires_de = f"{d.day}. {monate[d.month-1]} {d.year}" + except Exception: + expires_de = expires[:10] + + expiry_line = ( + f"

Dein Abo ist weiterhin aktiv bis zum {expires_de}. " + f"Ab diesem Datum wirst du automatisch auf den kostenlosen Tarif gesetzt.

" + if expires_de else + "

Dein Abo bleibt bis zum Ende des bezahlten Zeitraums aktiv.

" + ) body_html = f"""

Hallo {_html.escape(user['name'])},

deine Kündigung für {tier_label} wurde bestätigt.

-

Dein Abo ist weiterhin aktiv bis zum {expires_fmt}. - Ab diesem Datum wirst du automatisch auf den kostenlosen Tarif gesetzt.

+ {expiry_line}

Deine Daten (Tagebuch, Gesundheit, Notizen) bleiben vollständig erhalten. Wenn du mehrere Hunde hast, kannst du vor dem Ablauf einen als Haupthund festlegen.

Wir hoffen, dich bald wieder begrüßen zu dürfen!

Viele Grüße
René & das Ban Yaro Team

""" html = email_html(body_html, cta_url="https://banyaro.app", cta_label="Ban Yaro öffnen") plain = (f"Hallo {user['name']},\n\nKündigung bestätigt für {tier_label}.\n" - f"Aktiv bis: {expires_fmt}\n\nAlle Daten bleiben erhalten.\n\nViele Grüße\nRené") + + (f"Aktiv bis: {expires_de}\n" if expires_de else "") + + "\nAlle Daten bleiben erhalten.\n\nViele Grüße\nRené") await send_email(user["email"], f"Kündigung bestätigt — {tier_label}", html, plain) except Exception: pass