Introduction of the Microsite feature which allows for limited multi-tenant branding on a subdomain basis, e.g. foo.edx.org and bar.edx.org
fix errorenous logic when running a microsite that could reside in a hosting environment with a marketing site in front of it pep8/pylint fixes address PR feedback, remove underscore from test hostname more pep8/pylint cleanup. Skip test_microsites test, it works on localdev, not on Jenkins. Need to talk with QA team manually add Ned's single-to-double quote fix change aws.py runtimes so that the microsite_dir that is read from configuration is changed to a python path Conflicts: lms/templates/help_modal.html
This commit is contained in:
committed by
Don Mitchell
parent
a86086b771
commit
a3211a7405
@@ -14,6 +14,8 @@ from student.models import CourseEnrollment, CourseEnrollmentAllowed
|
||||
from courseware.models import StudentModule
|
||||
from edxmako.shortcuts import render_to_string
|
||||
|
||||
from microsite_configuration.middleware import MicrositeConfiguration
|
||||
|
||||
# For determining if a shibboleth course
|
||||
SHIBBOLETH_DOMAIN_PREFIX = 'shib:'
|
||||
|
||||
@@ -223,22 +225,58 @@ def send_mail_to_student(student, param_dict):
|
||||
Returns a boolean indicating whether the email was sent successfully.
|
||||
"""
|
||||
|
||||
email_template_dict = {'allowed_enroll': ('emails/enroll_email_allowedsubject.txt', 'emails/enroll_email_allowedmessage.txt'),
|
||||
'enrolled_enroll': ('emails/enroll_email_enrolledsubject.txt', 'emails/enroll_email_enrolledmessage.txt'),
|
||||
'allowed_unenroll': ('emails/unenroll_email_subject.txt', 'emails/unenroll_email_allowedmessage.txt'),
|
||||
'enrolled_unenroll': ('emails/unenroll_email_subject.txt', 'emails/unenroll_email_enrolledmessage.txt')}
|
||||
# add some helpers and microconfig subsitutions
|
||||
if 'course' in param_dict:
|
||||
param_dict['course_name'] = param_dict['course'].display_name_with_default
|
||||
|
||||
subject_template, message_template = email_template_dict.get(param_dict['message'], (None, None))
|
||||
param_dict['site_name'] = MicrositeConfiguration.get_microsite_configuration_value(
|
||||
'SITE_NAME',
|
||||
param_dict['site_name']
|
||||
)
|
||||
|
||||
subject = None
|
||||
message = None
|
||||
|
||||
# see if we are running in a microsite and that there is an
|
||||
# activation email template definition available as configuration, if so, then render that
|
||||
message_type = param_dict['message']
|
||||
|
||||
email_template_dict = {
|
||||
'allowed_enroll': (
|
||||
'emails/enroll_email_allowedsubject.txt',
|
||||
'emails/enroll_email_allowedmessage.txt'
|
||||
),
|
||||
'enrolled_enroll': (
|
||||
'emails/enroll_email_enrolledsubject.txt',
|
||||
'emails/enroll_email_enrolledmessage.txt'
|
||||
),
|
||||
'allowed_unenroll': (
|
||||
'emails/unenroll_email_subject.txt',
|
||||
'emails/unenroll_email_allowedmessage.txt'
|
||||
),
|
||||
'enrolled_unenroll': (
|
||||
'emails/unenroll_email_subject.txt',
|
||||
'emails/unenroll_email_enrolledmessage.txt'
|
||||
)
|
||||
}
|
||||
|
||||
subject_template, message_template = email_template_dict.get(message_type, (None, None))
|
||||
if subject_template is not None and message_template is not None:
|
||||
subject = render_to_string(subject_template, param_dict)
|
||||
message = render_to_string(message_template, param_dict)
|
||||
|
||||
if subject and message:
|
||||
# Remove leading and trailing whitespace from body
|
||||
message = message.strip()
|
||||
|
||||
# Email subject *must not* contain newlines
|
||||
subject = ''.join(subject.splitlines())
|
||||
send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [student], fail_silently=False)
|
||||
from_address = MicrositeConfiguration.get_microsite_configuration_value(
|
||||
'email_from_address',
|
||||
settings.DEFAULT_FROM_EMAIL
|
||||
)
|
||||
|
||||
send_mail(subject, message, from_address, [student], fail_silently=False)
|
||||
|
||||
|
||||
def uses_shib(course):
|
||||
|
||||
@@ -63,6 +63,8 @@ from xblock.fields import ScopeIds
|
||||
from django.utils.translation import ugettext as _u
|
||||
from lms.lib.xblock.runtime import handler_prefix
|
||||
|
||||
from microsite_configuration.middleware import MicrositeConfiguration
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
# internal commands for managing forum roles:
|
||||
@@ -1282,7 +1284,10 @@ def _do_enroll_students(course, course_id, students, overload=False, auto_enroll
|
||||
ceaset.delete()
|
||||
|
||||
if email_students:
|
||||
stripped_site_name = settings.SITE_NAME
|
||||
stripped_site_name = MicrositeConfiguration.get_microsite_configuration_value(
|
||||
'SITE_NAME',
|
||||
settings.SITE_NAME
|
||||
)
|
||||
registration_url = 'https://' + stripped_site_name + reverse('student.views.register_user')
|
||||
#Composition of email
|
||||
d = {'site_name': stripped_site_name,
|
||||
@@ -1291,7 +1296,7 @@ def _do_enroll_students(course, course_id, students, overload=False, auto_enroll
|
||||
'auto_enroll': auto_enroll,
|
||||
'course_url': 'https://' + stripped_site_name + '/courses/' + course_id,
|
||||
'course_about_url': 'https://' + stripped_site_name + '/courses/' + course_id + '/about',
|
||||
'is_shib_course': is_shib_course,
|
||||
'is_shib_course': is_shib_course
|
||||
}
|
||||
|
||||
for student in new_students:
|
||||
@@ -1373,7 +1378,10 @@ def _do_unenroll_students(course_id, students, email_students=False):
|
||||
old_students, _ = get_and_clean_student_list(students)
|
||||
status = dict([x, 'unprocessed'] for x in old_students)
|
||||
|
||||
stripped_site_name = settings.SITE_NAME
|
||||
stripped_site_name = MicrositeConfiguration.get_microsite_configuration_value(
|
||||
'SITE_NAME',
|
||||
settings.SITE_NAME
|
||||
)
|
||||
if email_students:
|
||||
course = course_from_id(course_id)
|
||||
#Composition of email
|
||||
@@ -1447,22 +1455,43 @@ def send_mail_to_student(student, param_dict):
|
||||
Returns a boolean indicating whether the email was sent successfully.
|
||||
"""
|
||||
|
||||
EMAIL_TEMPLATE_DICT = {'allowed_enroll': ('emails/enroll_email_allowedsubject.txt', 'emails/enroll_email_allowedmessage.txt'),
|
||||
'enrolled_enroll': ('emails/enroll_email_enrolledsubject.txt', 'emails/enroll_email_enrolledmessage.txt'),
|
||||
'allowed_unenroll': ('emails/unenroll_email_subject.txt', 'emails/unenroll_email_allowedmessage.txt'),
|
||||
'enrolled_unenroll': ('emails/unenroll_email_subject.txt', 'emails/unenroll_email_enrolledmessage.txt')}
|
||||
# add some helpers and microconfig subsitutions
|
||||
if 'course' in param_dict:
|
||||
param_dict['course_name'] = param_dict['course'].display_name_with_default
|
||||
param_dict['site_name'] = MicrositeConfiguration.get_microsite_configuration_value(
|
||||
'SITE_NAME',
|
||||
param_dict.get('site_name', '')
|
||||
)
|
||||
|
||||
subject_template, message_template = EMAIL_TEMPLATE_DICT.get(param_dict['message'], (None, None))
|
||||
subject = None
|
||||
message = None
|
||||
|
||||
message_type = param_dict['message']
|
||||
|
||||
email_template_dict = {
|
||||
'allowed_enroll': ('emails/enroll_email_allowedsubject.txt', 'emails/enroll_email_allowedmessage.txt'),
|
||||
'enrolled_enroll': ('emails/enroll_email_enrolledsubject.txt', 'emails/enroll_email_enrolledmessage.txt'),
|
||||
'allowed_unenroll': ('emails/unenroll_email_subject.txt', 'emails/unenroll_email_allowedmessage.txt'),
|
||||
'enrolled_unenroll': ('emails/unenroll_email_subject.txt', 'emails/unenroll_email_enrolledmessage.txt'),
|
||||
}
|
||||
|
||||
subject_template, message_template = email_template_dict.get(message_type, (None, None))
|
||||
if subject_template is not None and message_template is not None:
|
||||
subject = render_to_string(subject_template, param_dict)
|
||||
message = render_to_string(message_template, param_dict)
|
||||
|
||||
if subject and message:
|
||||
# Remove leading and trailing whitespace from body
|
||||
message = message.strip()
|
||||
|
||||
# Email subject *must not* contain newlines
|
||||
subject = ''.join(subject.splitlines())
|
||||
send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [student], fail_silently=False)
|
||||
from_address = MicrositeConfiguration.get_microsite_configuration_value(
|
||||
'email_from_address',
|
||||
settings.DEFAULT_FROM_EMAIL
|
||||
)
|
||||
|
||||
send_mail(subject, message, from_address, [student], fail_silently=False)
|
||||
|
||||
return True
|
||||
else:
|
||||
|
||||
Reference in New Issue
Block a user