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 %} + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +{# Debug info that is not user-visible #} + + 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 %}