From ec1c6c712053ee1edda3703482aaaaf40c5dd1f8 Mon Sep 17 00:00:00 2001 From: ngovinh2k2 Date: Mon, 27 Jul 2026 10:48:51 +0700 Subject: [PATCH] feat: implement subscription email templates --- .../images/auth/subscription_expire_soon.png | Bin 0 -> 21555 bytes .../images/auth/subscription_expried.png | Bin 0 -> 18464 bytes .../templates/email_subscription_expired.html | 44 ++++++++++++++++++ .../email_subscription_expiry_reminder.html | 39 ++++++++++++++++ .../email_subscription_request_received.html | 38 +++++++++++++++ common/utils/email_context.py | 5 +- 6 files changed, 125 insertions(+), 1 deletion(-) create mode 100644 common/static/images/auth/subscription_expire_soon.png create mode 100644 common/static/images/auth/subscription_expried.png create mode 100644 common/templates/email_subscription_expired.html create mode 100644 common/templates/email_subscription_expiry_reminder.html create mode 100644 common/templates/email_subscription_request_received.html diff --git a/common/static/images/auth/subscription_expire_soon.png b/common/static/images/auth/subscription_expire_soon.png new file mode 100644 index 0000000000000000000000000000000000000000..5dccdf1d77d6a867f3a06c4533e01b51a3b113f2 GIT binary patch literal 21555 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 IM6N<$g1I{&vj6}9 literal 0 HcmV?d00001 diff --git a/common/static/images/auth/subscription_expried.png b/common/static/images/auth/subscription_expried.png new file mode 100644 index 0000000000000000000000000000000000000000..e8a17861594583562e5820251b902b84d2b293e7 GIT binary patch literal 18464 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 + {% if header_image_url %} +
+ Subscription Expired +
+ {% endif %} +

+ Your SpaceDF subscription has expired +

+ +

+ Hi{% if user_name %} {{ user_name }}{% else %} there{% endif %}, +

+ +

+ Your {{ plan_name }} subscription for {{ organization_name }} expired + on {{ expiry_date }}. +

+ +

+ As a result, some premium features may no longer be available until your + subscription is renewed. +

+ +

+ To restore full access, please contact our team to renew your subscription. +

+ +

+ + Manage Subscription + +

+ +

Best regards,

+

{{ sender_from }}

+ +{% endblock %} diff --git a/common/templates/email_subscription_expiry_reminder.html b/common/templates/email_subscription_expiry_reminder.html new file mode 100644 index 0000000..72f4023 --- /dev/null +++ b/common/templates/email_subscription_expiry_reminder.html @@ -0,0 +1,39 @@ +{% extends "base.html" %} {% block title %}Your SpaceDF subscription will expire soon{% endblock %} {% block content %} +
+ {% if header_image_url %} +
+ Subscription Expiry Reminder +
+ {% endif %} + +

+ Your SpaceDF subscription will expire soon. +

+ +

+ Hi{% if user_name %} {{ user_name }}{% else %} there{% endif %}, +

+ +

+ We hope you're enjoying SpaceDF. +

+ +

+ This is a friendly reminder that your {{ plan_name }} subscription for + {{ organization_name }} will expire on {{ expiry_date }}. +

+ +

+ To avoid any interruption to your services and continue accessing your + premium features, please renew your subscription before the expiration date. +

+ +

+ If you would like to renew or have any questions about your subscription, + please contact our team. +

+ +

Best regards,

+

{{ sender_from }}

+
+{% endblock %} diff --git a/common/templates/email_subscription_request_received.html b/common/templates/email_subscription_request_received.html new file mode 100644 index 0000000..05d6344 --- /dev/null +++ b/common/templates/email_subscription_request_received.html @@ -0,0 +1,38 @@ +{% extends "base.html" %} {% block title %}Subscription Request Received{% endblock %} {% block content %} +
+ {% if header_image_url %} +
+ Subscription Request Received +
+ {% endif %} +

+ Your Subscription Request Has Been Received +

+ +

+ Hi{% if name %} {{ name }}{% else %} there{% endif %}, +

+ +

+ Thank you for your interest in subscribing to the {{ plan_name }} plan.
+ We've successfully received your subscription request. +

+ +

+ What happens next? +

+ +
    +
  • Our Sales team will review your request.
  • +
  • We'll contact you to discuss the selected subscription plan.
  • +
  • + Once the subscription is confirmed, your Organization will be upgraded accordingly. +
  • +
+ +

Best regards,

+

{{ sender_from }}

+
+{% endblock %} diff --git a/common/utils/email_context.py b/common/utils/email_context.py index 4d6c208..b954d5f 100644 --- a/common/utils/email_context.py +++ b/common/utils/email_context.py @@ -89,7 +89,10 @@ def get_email_context(email_context_data, custom_email): _get_value(custom_email, "sender_email") or email_context_data.get("sender_email", "support@spacedf.com") ), - "email_footer": (_get_value(custom_email, "footer_text") or ""), + "email_footer": ( + _get_value(custom_email, "footer_text") + or "©2025 Digital Fortress. All rights reserved." + ), "header_image_url": _get_value(custom_email, "url_header_image") or email_context_data.get("header_image_url", ""), "linkedin_url": social_links.get("linkedin_url", ""),