From 8cfdf8d220b574dcbc0bb2c11c7a5b2ff0f88240 Mon Sep 17 00:00:00 2001
From: Taimoor Ahmed <68893403+taimoor-ahmed-1@users.noreply.github.com>
Date: Tue, 27 Jul 2021 14:29:13 +0500
Subject: [PATCH] Fix subscription expiry logo - EDLY-3257 (#249)
---
.../send_subscriptions_expiry_emails.py | 37 +++-
.../edx_ace/common/base_body.html | 204 ++++++++++++++++++
.../expirednotification/email/body.html | 2 +-
.../email/body.html | 2 +-
4 files changed, 237 insertions(+), 8 deletions(-)
create mode 100644 openedx/features/subscriptions/templates/subscriptions/edx_ace/common/base_body.html
diff --git a/openedx/features/subscriptions/management/commands/send_subscriptions_expiry_emails.py b/openedx/features/subscriptions/management/commands/send_subscriptions_expiry_emails.py
index 62f03842b20c..8894bd0117d3 100644
--- a/openedx/features/subscriptions/management/commands/send_subscriptions_expiry_emails.py
+++ b/openedx/features/subscriptions/management/commands/send_subscriptions_expiry_emails.py
@@ -4,7 +4,6 @@
from datetime import date, timedelta
import logging
-from django.contrib.sites.models import Site
from django.core.management.base import BaseCommand
from django.db.models import Q
from edx_ace import ace
@@ -13,8 +12,10 @@
from openedx.core.djangoapps.ace_common.template_context import get_base_template_context
from openedx.core.djangoapps.lang_pref import LANGUAGE_KEY
from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers
+from openedx.core.djangoapps.theming.helpers import get_config_value_from_site_or_settings
from openedx.core.djangoapps.user_api.preferences.api import get_user_preference
from openedx.core.lib.celery.task_utils import emulate_http_request
+from openedx.features.edly.context_processor import Colour
from openedx.features.subscriptions.message_types import ExpiredNotification, ImpendingExpiryNotification
from openedx.features.subscriptions.models import UserSubscription
from openedx.features.subscriptions.utils import get_subscription_renew_url
@@ -35,15 +36,37 @@ def _get_message_context(self, site):
marketing_root_url='' if not marketing_site_root else marketing_site_root
)
message_context['subscriptions_marketing_url'] = subscriptions_marketing_url
+ color_dict = get_config_value_from_site_or_settings(
+ 'COLORS',
+ site=site,
+ )
+
+ primary_color = Colour(str(color_dict.get('primary')))
+
+ message_context.update({
+ 'edly_fonts_config': get_config_value_from_site_or_settings(
+ 'FONTS',
+ site=site,
+ ),
+ 'edly_branding_config': get_config_value_from_site_or_settings(
+ 'BRANDING',
+ site=site,
+ ),
+ 'edly_copyright_text': get_config_value_from_site_or_settings(
+ 'EDLY_COPYRIGHT_TEXT',
+ site=site,
+ ),
+ 'edly_colors_config': {'primary': primary_color},
+ })
+
return message_context
def _send_email_notifications(self, context_values, ace_message_class):
"""
Send email notifications from the given context values.
"""
- site = Site.objects.get_current()
- message_context = self._get_message_context(site)
- for subscription_id, user in context_values:
+ for subscription_id, user, site in context_values:
+ message_context = self._get_message_context(site)
if ace_message_class == ExpiredNotification:
subscription_renew_url = get_subscription_renew_url(subscription_id, user)
message_context.update({
@@ -72,14 +95,16 @@ def handle(self, *args, **options):
Q(expiration_date__isnull=False) & Q(expiration_date=date.today() + timedelta(days=1))
)
impending_expiry_subscriptions_context_values = [
- (subscription.subscription_id, subscription.user) for subscription in impending_expiry_subscriptions
+ (subscription.subscription_id, subscription.user, subscription.site)
+ for subscription in impending_expiry_subscriptions
]
expired_subscriptions = UserSubscription.objects.filter(
Q(expiration_date__isnull=False) & Q(expiration_date=date.today() - timedelta(days=1))
)
expired_subscriptions_context_values = [
- (subscription.subscription_id, subscription.user) for subscription in expired_subscriptions
+ (subscription.subscription_id, subscription.user, subscription.site)
+ for subscription in expired_subscriptions
]
self._send_email_notifications(
diff --git a/openedx/features/subscriptions/templates/subscriptions/edx_ace/common/base_body.html b/openedx/features/subscriptions/templates/subscriptions/edx_ace/common/base_body.html
new file mode 100644
index 000000000000..67957ae4787c
--- /dev/null
+++ b/openedx/features/subscriptions/templates/subscriptions/edx_ace/common/base_body.html
@@ -0,0 +1,204 @@
+{% load i18n %}
+{% load ace %}
+
+{% get_current_language as LANGUAGE_CODE %}
+{% get_current_language_bidi as LANGUAGE_BIDI %}
+
+{# This is preview text that is visible in the inbox view of many email clients but not visible in the actual #}
+{# email itself. #}
+
+
+ {% block preview_text %}{% endblock %}
+
+
+{% for image_src in channel.tracker_image_sources %}
+
+{% endfor %}
+
+{% google_analytics_tracking_pixel %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {% block content %}{% endblock %}
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+{# Debug info that is not user-visible #}
+{{ message.log_id }}
+{{ template_revision }}
diff --git a/openedx/features/subscriptions/templates/subscriptions/edx_ace/expirednotification/email/body.html b/openedx/features/subscriptions/templates/subscriptions/edx_ace/expirednotification/email/body.html
index 9acb74795687..9245a158d8df 100644
--- a/openedx/features/subscriptions/templates/subscriptions/edx_ace/expirednotification/email/body.html
+++ b/openedx/features/subscriptions/templates/subscriptions/edx_ace/expirednotification/email/body.html
@@ -1,4 +1,4 @@
-{% extends 'ace_common/edx_ace/common/base_body.html' %}
+{% extends 'subscriptions/edx_ace/common/base_body.html' %}
{% load i18n %}
{% load static %}
diff --git a/openedx/features/subscriptions/templates/subscriptions/edx_ace/impendingexpirynotification/email/body.html b/openedx/features/subscriptions/templates/subscriptions/edx_ace/impendingexpirynotification/email/body.html
index 630e22aae4b8..35a16563872f 100644
--- a/openedx/features/subscriptions/templates/subscriptions/edx_ace/impendingexpirynotification/email/body.html
+++ b/openedx/features/subscriptions/templates/subscriptions/edx_ace/impendingexpirynotification/email/body.html
@@ -1,4 +1,4 @@
-{% extends 'ace_common/edx_ace/common/base_body.html' %}
+{% extends 'subscriptions/edx_ace/common/base_body.html' %}
{% load i18n %}
{% load static %}