Fix: Kündigungs-Mail + Settings — Ablaufdatum korrekt formatiert (SW by-v950)

This commit is contained in:
rene 2026-05-14 16:47:57 +02:00
parent da4879b4c4
commit 0bd4c33557

View file

@ -418,20 +418,36 @@ async def cancel_subscription(user=Depends(get_current_user)):
try: try:
from mailer import send_email, email_html from mailer import send_email, email_html
import html as _html import html as _html
tier_label = {"pro": "Ban Yaro Pro", "breeder": "Züchter"}.get(row["subscription_tier"], row["subscription_tier"]) tier_label = {"pro": "Ban Yaro Pro", "breeder": "Züchter"}.get(row["subscription_tier"], row["subscription_tier"])
expires_fmt = expires[:10] if expires else "" 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"<p>Dein Abo ist weiterhin aktiv bis zum <strong>{expires_de}</strong>. "
f"Ab diesem Datum wirst du automatisch auf den kostenlosen Tarif gesetzt.</p>"
if expires_de else
"<p>Dein Abo bleibt bis zum Ende des bezahlten Zeitraums aktiv.</p>"
)
body_html = f""" body_html = f"""
<p>Hallo {_html.escape(user['name'])},</p> <p>Hallo {_html.escape(user['name'])},</p>
<p>deine Kündigung für <strong>{tier_label}</strong> wurde bestätigt.</p> <p>deine Kündigung für <strong>{tier_label}</strong> wurde bestätigt.</p>
<p>Dein Abo ist weiterhin aktiv bis zum <strong>{expires_fmt}</strong>. {expiry_line}
Ab diesem Datum wirst du automatisch auf den kostenlosen Tarif gesetzt.</p>
<p>Deine Daten (Tagebuch, Gesundheit, Notizen) bleiben vollständig erhalten. <p>Deine Daten (Tagebuch, Gesundheit, Notizen) bleiben vollständig erhalten.
Wenn du mehrere Hunde hast, kannst du vor dem Ablauf einen als Haupthund festlegen.</p> Wenn du mehrere Hunde hast, kannst du vor dem Ablauf einen als Haupthund festlegen.</p>
<p>Wir hoffen, dich bald wieder begrüßen zu dürfen!</p> <p>Wir hoffen, dich bald wieder begrüßen zu dürfen!</p>
<p>Viele Grüße<br>René &amp; das Ban Yaro Team</p>""" <p>Viele Grüße<br>René &amp; das Ban Yaro Team</p>"""
html = email_html(body_html, cta_url="https://banyaro.app", cta_label="Ban Yaro öffnen") 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" 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) await send_email(user["email"], f"Kündigung bestätigt — {tier_label}", html, plain)
except Exception: except Exception:
pass pass