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
Branches
Tags
No related merge requests found
......@@ -157,6 +157,9 @@ BLOCK_STRUCTURES_SETTINGS = dict(
############################ FEATURE CONFIGURATION #############################
PLATFORM_NAME = _('Your Platform Name Here')
CONTACT_MAILING_ADDRESS = _('Your Contact Mailing Address Here')
PLATFORM_DESCRIPTION = _('Your Platform Description Here')
PLATFORM_FACEBOOK_ACCOUNT = "http://www.facebook.com/YourPlatformFacebookAccount"
......
......@@ -28,10 +28,15 @@ def generate_activation_email_context(user, registration):
'key': registration.activation_key,
'lms_url': configuration_helpers.get_value('LMS_ROOT_URL', settings.LMS_ROOT_URL),
'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(
'ACTIVATION_EMAIL_SUPPORT_LINK', settings.ACTIVATION_EMAIL_SUPPORT_LINK
) or settings.SUPPORT_SITE_LINK,
'support_email': configuration_helpers.get_value('CONTACT_EMAIL', settings.CONTACT_EMAIL),
'site_configuration_values': configuration_helpers.get_current_site_configuration_values(),
})
return context
......
......@@ -427,6 +427,13 @@ def get_email_params(course, auto_enroll, secure=True, course_key=None, display_
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
email_params = {
'site_name': stripped_site_name,
......@@ -437,6 +444,9 @@ def get_email_params(course, auto_enroll, secure=True, course_key=None, display_
'course_url': course_url,
'course_about_url': course_about_url,
'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
......
......@@ -21,6 +21,11 @@ def get_base_template_context(site):
except NoReverseMatch:
dashboard_url = reverse('home')
if hasattr(site, 'configuration'):
site_configuration_values = site.configuration.site_values
else:
site_configuration_values = {}
return {
# Platform information
'homepage_url': marketing_link('ROOT'),
......@@ -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),
'mobile_store_urls': get_config_value_from_site_or_settings('MOBILE_STORE_URLS', site=site),
'logo_url': get_logo_url_for_email(),
'site_configuration_values': site_configuration_values,
}
......@@ -175,6 +175,7 @@ class TestCourseUpdateResolver(SchedulesResolverTestMixin, ModuleStoreTestCase):
'logo_url': 'https://www.logo.png',
'platform_name': '\xe9dX',
'show_upsell': False,
'site_configuration_values': {},
'social_media_urls': {},
'template_revision': 'release',
'unsubscribe_url': None,
......@@ -263,6 +264,7 @@ class TestCourseNextSectionUpdateResolver(SchedulesResolverTestMixin, ModuleStor
'logo_url': 'https://www.logo.png',
'platform_name': '\xe9dX',
'show_upsell': False,
'site_configuration_values': {},
'social_media_urls': {},
'template_revision': 'release',
'unsubscribe_url': None,
......
......@@ -29,6 +29,25 @@ def get_current_site_configuration():
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():
"""
Returns True is there is SiteConfiguration instance associated with the current site and it is enabled, otherwise
......
......@@ -169,3 +169,17 @@ class TestHelpers(TestCase):
list(configuration_helpers.get_current_site_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% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment