Skip to content
Snippets Groups Projects
Unverified Commit 2342f044 authored by Sarina Canelake's avatar Sarina Canelake Committed by GitHub
Browse files

Merge pull request #26435 from open-craft/shimulch/bb-3624-upstream

Fix missing email context values and pass site configuration to better multi-site customization
parents 51e719b1 e942f12a
No related branches found
No related tags found
No related merge requests found
...@@ -157,6 +157,9 @@ BLOCK_STRUCTURES_SETTINGS = dict( ...@@ -157,6 +157,9 @@ BLOCK_STRUCTURES_SETTINGS = dict(
############################ FEATURE CONFIGURATION ############################# ############################ FEATURE CONFIGURATION #############################
PLATFORM_NAME = _('Your Platform Name Here') PLATFORM_NAME = _('Your Platform Name Here')
CONTACT_MAILING_ADDRESS = _('Your Contact Mailing Address Here')
PLATFORM_DESCRIPTION = _('Your Platform Description Here') PLATFORM_DESCRIPTION = _('Your Platform Description Here')
PLATFORM_FACEBOOK_ACCOUNT = "http://www.facebook.com/YourPlatformFacebookAccount" PLATFORM_FACEBOOK_ACCOUNT = "http://www.facebook.com/YourPlatformFacebookAccount"
......
...@@ -28,10 +28,15 @@ def generate_activation_email_context(user, registration): ...@@ -28,10 +28,15 @@ def generate_activation_email_context(user, registration):
'key': registration.activation_key, 'key': registration.activation_key,
'lms_url': configuration_helpers.get_value('LMS_ROOT_URL', settings.LMS_ROOT_URL), 'lms_url': configuration_helpers.get_value('LMS_ROOT_URL', settings.LMS_ROOT_URL),
'platform_name': configuration_helpers.get_value('PLATFORM_NAME', settings.PLATFORM_NAME), 'platform_name': configuration_helpers.get_value('PLATFORM_NAME', settings.PLATFORM_NAME),
'contact_mailing_address': configuration_helpers.get_value(
'contact_mailing_address',
settings.CONTACT_MAILING_ADDRESS
),
'support_url': configuration_helpers.get_value( 'support_url': configuration_helpers.get_value(
'ACTIVATION_EMAIL_SUPPORT_LINK', settings.ACTIVATION_EMAIL_SUPPORT_LINK 'ACTIVATION_EMAIL_SUPPORT_LINK', settings.ACTIVATION_EMAIL_SUPPORT_LINK
) or settings.SUPPORT_SITE_LINK, ) or settings.SUPPORT_SITE_LINK,
'support_email': configuration_helpers.get_value('CONTACT_EMAIL', settings.CONTACT_EMAIL), 'support_email': configuration_helpers.get_value('CONTACT_EMAIL', settings.CONTACT_EMAIL),
'site_configuration_values': configuration_helpers.get_current_site_configuration_values(),
}) })
return context return context
......
...@@ -427,6 +427,13 @@ def get_email_params(course, auto_enroll, secure=True, course_key=None, display_ ...@@ -427,6 +427,13 @@ def get_email_params(course, auto_enroll, secure=True, course_key=None, display_
is_shib_course = uses_shib(course) is_shib_course = uses_shib(course)
# Collect mailing address and platform name to pass as context
contact_mailing_address = configuration_helpers.get_value(
'contact_mailing_address',
settings.CONTACT_MAILING_ADDRESS
)
platform_name = configuration_helpers.get_value('PLATFORM_NAME', settings.PLATFORM_NAME)
# Composition of email # Composition of email
email_params = { email_params = {
'site_name': stripped_site_name, 'site_name': stripped_site_name,
...@@ -437,6 +444,9 @@ def get_email_params(course, auto_enroll, secure=True, course_key=None, display_ ...@@ -437,6 +444,9 @@ def get_email_params(course, auto_enroll, secure=True, course_key=None, display_
'course_url': course_url, 'course_url': course_url,
'course_about_url': course_about_url, 'course_about_url': course_about_url,
'is_shib_course': is_shib_course, 'is_shib_course': is_shib_course,
'contact_mailing_address': contact_mailing_address,
'platform_name': platform_name,
'site_configuration_values': configuration_helpers.get_current_site_configuration_values(),
} }
return email_params return email_params
......
...@@ -21,6 +21,11 @@ def get_base_template_context(site): ...@@ -21,6 +21,11 @@ def get_base_template_context(site):
except NoReverseMatch: except NoReverseMatch:
dashboard_url = reverse('home') dashboard_url = reverse('home')
if hasattr(site, 'configuration'):
site_configuration_values = site.configuration.site_values
else:
site_configuration_values = {}
return { return {
# Platform information # Platform information
'homepage_url': marketing_link('ROOT'), 'homepage_url': marketing_link('ROOT'),
...@@ -38,4 +43,5 @@ def get_base_template_context(site): ...@@ -38,4 +43,5 @@ def get_base_template_context(site):
'social_media_urls': get_config_value_from_site_or_settings('SOCIAL_MEDIA_FOOTER_URLS', site=site), 'social_media_urls': get_config_value_from_site_or_settings('SOCIAL_MEDIA_FOOTER_URLS', site=site),
'mobile_store_urls': get_config_value_from_site_or_settings('MOBILE_STORE_URLS', site=site), 'mobile_store_urls': get_config_value_from_site_or_settings('MOBILE_STORE_URLS', site=site),
'logo_url': get_logo_url_for_email(), 'logo_url': get_logo_url_for_email(),
'site_configuration_values': site_configuration_values,
} }
...@@ -175,6 +175,7 @@ class TestCourseUpdateResolver(SchedulesResolverTestMixin, ModuleStoreTestCase): ...@@ -175,6 +175,7 @@ class TestCourseUpdateResolver(SchedulesResolverTestMixin, ModuleStoreTestCase):
'logo_url': 'https://www.logo.png', 'logo_url': 'https://www.logo.png',
'platform_name': '\xe9dX', 'platform_name': '\xe9dX',
'show_upsell': False, 'show_upsell': False,
'site_configuration_values': {},
'social_media_urls': {}, 'social_media_urls': {},
'template_revision': 'release', 'template_revision': 'release',
'unsubscribe_url': None, 'unsubscribe_url': None,
...@@ -263,6 +264,7 @@ class TestCourseNextSectionUpdateResolver(SchedulesResolverTestMixin, ModuleStor ...@@ -263,6 +264,7 @@ class TestCourseNextSectionUpdateResolver(SchedulesResolverTestMixin, ModuleStor
'logo_url': 'https://www.logo.png', 'logo_url': 'https://www.logo.png',
'platform_name': '\xe9dX', 'platform_name': '\xe9dX',
'show_upsell': False, 'show_upsell': False,
'site_configuration_values': {},
'social_media_urls': {}, 'social_media_urls': {},
'template_revision': 'release', 'template_revision': 'release',
'unsubscribe_url': None, 'unsubscribe_url': None,
......
...@@ -29,6 +29,25 @@ def get_current_site_configuration(): ...@@ -29,6 +29,25 @@ def get_current_site_configuration():
return None return None
def get_current_site_configuration_values(default=None):
"""
Returns `SiteConfiguration.site_values` for current site.
Args:
default (dict): default value (`{}` if not specified) to return if site configuration is not available.
Returns:
(dict) Site Configuration value for the current site or default
"""
if default is None:
default = {}
site_configuration = get_current_site_configuration()
if site_configuration:
return site_configuration.site_values
else:
return default
def is_site_configuration_enabled(): def is_site_configuration_enabled():
""" """
Returns True is there is SiteConfiguration instance associated with the current site and it is enabled, otherwise Returns True is there is SiteConfiguration instance associated with the current site and it is enabled, otherwise
......
...@@ -169,3 +169,17 @@ class TestHelpers(TestCase): ...@@ -169,3 +169,17 @@ class TestHelpers(TestCase):
list(configuration_helpers.get_current_site_orgs()), list(configuration_helpers.get_current_site_orgs()),
test_orgs test_orgs
) )
def test_get_current_site_configuration_values(self):
"""
Test get_current_site_configuration_values helper function
"""
site_values = configuration_helpers.get_current_site_configuration_values()
self.assertTrue(isinstance(site_values, dict))
# without any site configuration it should return empty dict
self.assertEqual(site_values, {})
with with_site_configuration_context(configuration=test_config):
site_values = configuration_helpers.get_current_site_configuration_values()
self.assertEqual(site_values, test_config)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment