Commit 03914f54 by tasawernawaz Committed by Tasawer Nawaz

email: Marked as reviewed by marketing

ECOM-6080
parent 14d6bbbd
......@@ -227,11 +227,11 @@ def send_email_for_mark_as_reviewed_course_run(course_run, user):
txt_template = 'publisher/email/course_run/mark_as_reviewed.txt'
html_template = 'publisher/email/course_run/mark_as_reviewed.html'
run_name = '{pacing_type}: {start_date}'.format(
pacing_type=course_run.get_pacing_type_display(),
start_date=course_run.start.strftime("%B %d, %Y")
course_key = CourseKey.from_string(course_run.lms_course_id)
subject = _('Review complete: {course_name} {run_number}').format( # pylint: disable=no-member
course_name=course_run.course.title,
run_number=course_key.run
)
subject = _('Changes to {run_name} has been marked as reviewed').format(run_name=run_name) # pylint: disable=no-member
try:
page_path = reverse('publisher:publisher_course_run_detail', kwargs={'pk': course_run.id})
......@@ -242,7 +242,7 @@ def send_email_for_mark_as_reviewed_course_run(course_run, user):
txt_template,
html_template,
page_path,
course_name=run_name
run_number=course_key.run
)
except Exception: # pylint: disable=broad-except
logger.exception('Failed to send email notifications for mark as reviewed of course-run %s', course_run.id)
......@@ -258,12 +258,17 @@ def send_email_to_publisher(course_run, user):
txt_template = 'publisher/email/course_run/mark_as_reviewed.txt'
html_template = 'publisher/email/course_run/mark_as_reviewed.html'
run_name = '{pacing_type}: {start_date}'.format(
pacing_type=course_run.get_pacing_type_display(),
start_date=course_run.start.strftime("%B %d, %Y")
course_key = CourseKey.from_string(course_run.lms_course_id)
subject = _('Review complete: {course_name} {run_number}').format( # pylint: disable=no-member
course_name=course_run.course.title,
run_number=course_key.run
)
subject = _('Changes to {run_name} has been marked as reviewed').format(run_name=run_name) # pylint: disable=no-member
recipient_user = course_run.course.publisher
user_role = course_run.course.course_user_roles.get(user=user)
sender_team = 'course team'
if user_role.role == PublisherUserRole.MarketingReviewer:
sender_team = 'marketing team'
try:
if is_email_notification_enabled(recipient_user):
......@@ -274,12 +279,16 @@ def send_email_to_publisher(course_run, user):
context = {
'recipient_name': recipient_user.full_name or recipient_user.username if recipient_user else '',
'sender_name': user.full_name or user.username,
'course_name': run_name,
'course_name': course_run.course.title,
'run_number': course_key.run,
'org_name': course_run.course.organizations.all().first().name,
'sender_team': sender_team,
'contact_us_email': project_coordinator.email if project_coordinator else '',
'page_url': 'https://{host}{path}'.format(
host=Site.objects.get_current().domain.strip('/'), path=page_path
)
}
template = get_template(txt_template)
plain_content = template.render(context)
template = get_template(html_template)
......@@ -290,6 +299,7 @@ def send_email_to_publisher(course_run, user):
)
email_msg.attach_alternative(html_content, 'text/html')
email_msg.send()
except Exception: # pylint: disable=broad-except
logger.exception('Failed to send email notifications for mark as reviewed of course-run %s', course_run.id)
......
......@@ -332,6 +332,9 @@ class CourseRunMarkAsReviewedEmailTests(TestCase):
def test_email_sent_to_publisher(self):
""" Verify that email works successfully."""
factories.CourseUserRoleFactory(
course=self.course, role=PublisherUserRole.MarketingReviewer, user=self.user
)
emails.send_email_to_publisher(self.course_run_state.course_run, self.user)
self.assert_email_sent(self.user_3)
......@@ -353,13 +356,13 @@ class CourseRunMarkAsReviewedEmailTests(TestCase):
def assert_email_sent(self, to_email):
""" Verify the email data for tests cases."""
run_name = '{pacing_type}: {start_date}'.format(
pacing_type=self.course_run.get_pacing_type_display(),
start_date=self.course_run.start.strftime("%B %d, %Y")
)
subject = 'Changes to {run_name} has been marked as reviewed'.format(
run_name=run_name
course_key = CourseKey.from_string(self.course_run.lms_course_id)
subject = 'Review complete: {course_name} {run_number}'.format(
course_name=self.course.title,
run_number=course_key.run
)
self.assertEqual(len(mail.outbox), 1)
self.assertEqual(to_email.email, mail.outbox[0].to[0])
self.assertEqual(str(mail.outbox[0].subject), subject)
......@@ -367,7 +370,7 @@ class CourseRunMarkAsReviewedEmailTests(TestCase):
page_path = reverse('publisher:publisher_course_run_detail', kwargs={'pk': self.course_run.id})
page_url = 'https://{host}{path}'.format(host=Site.objects.get_current().domain.strip('/'), path=page_path)
self.assertIn(page_url, body)
self.assertIn('has been marked as reviewed.', body)
self.assertIn('You will receive another email when the course run preview is available', body)
class CourseRunPreviewEmailTests(TestCase):
......
......@@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-03-09 15:51+0500\n"
"POT-Creation-Date: 2017-03-10 12:45+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
#: apps/api/filters.py
#, python-brace-format
......@@ -503,7 +503,7 @@ msgstr ""
#: apps/publisher/emails.py
#, python-brace-format
msgid "Changes to {run_name} has been marked as reviewed"
msgid "Review complete: {course_name} {run_number}"
msgstr ""
#: apps/publisher/emails.py
......@@ -2587,13 +2587,18 @@ msgstr ""
#: templates/publisher/email/course_run/mark_as_reviewed.html
#, python-format
msgid ""
"Changes to %(link_start)s%(page_url)s%(link_middle)s %(course_name)s "
"%(link_end)s has been marked as reviewed."
"The %(sender_team)s has reviewed the "
"%(link_start)s%(page_url)s%(link_middle)s %(run_number)s course "
"run%(link_end)s of %(course_name)s. You will receive another email when the "
"course run preview is available for you to review."
msgstr ""
#: templates/publisher/email/course_run/mark_as_reviewed.txt
#, python-format
msgid "Changes to %(course_name)s has been marked as reviewed. %(page_url)s"
msgid ""
"The %(sender_team)s has reviewed the %(run_number)s course run of "
"%(course_name)s %(page_url)s. You will receive another email when the course"
" run preview is available for you to review."
msgstr ""
#: templates/publisher/email/course_run/preview_accepted.html
......
......@@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-03-09 15:51+0500\n"
"POT-Creation-Date: 2017-03-10 12:45+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
#: static/js/catalogs-change-form.js
msgid "Preview"
......
......@@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-03-09 15:51+0500\n"
"POT-Creation-Date: 2017-03-10 12:45+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps/api/filters.py
......@@ -621,10 +621,10 @@ msgstr ""
#: apps/publisher/emails.py
#, python-brace-format
msgid "Changes to {run_name} has been marked as reviewed"
msgid "Review complete: {course_name} {run_number}"
msgstr ""
"Çhängés tö {run_name} häs ßéén märkéd äs révïéwéd Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт "
"αмєт, ¢σηѕє¢тєтυя #"
"Révïéw çömplété: {course_name} {run_number} Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, "
"¢ση#"
#: apps/publisher/emails.py
#, python-brace-format
......@@ -3045,19 +3045,38 @@ msgstr ""
#: templates/publisher/email/course_run/mark_as_reviewed.html
#, python-format
msgid ""
"Changes to %(link_start)s%(page_url)s%(link_middle)s %(course_name)s "
"%(link_end)s has been marked as reviewed."
"The %(sender_team)s has reviewed the "
"%(link_start)s%(page_url)s%(link_middle)s %(run_number)s course "
"run%(link_end)s of %(course_name)s. You will receive another email when the "
"course run preview is available for you to review."
msgstr ""
"Çhängés tö %(link_start)s%(page_url)s%(link_middle)s %(course_name)s "
"%(link_end)s häs ßéén märkéd äs révïéwéd. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, "
"¢σηѕє¢тєтυя α#"
"Thé %(sender_team)s häs révïéwéd thé "
"%(link_start)s%(page_url)s%(link_middle)s %(run_number)s çöürsé "
"rün%(link_end)s öf %(course_name)s. Ýöü wïll réçéïvé änöthér émäïl whén thé "
"çöürsé rün prévïéw ïs äväïläßlé för ýöü tö révïéw. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт "
"αмєт, ¢σηѕє¢тєтυя α∂ιριѕι¢ιηg єłιт, ѕє∂ ∂σ єιυѕмσ∂ тємρσя ιη¢ι∂ι∂υηт υт "
"łαвσяє єт ∂σłσяє мαgηα αłιqυα. υт єηιм α∂ мιηιм νєηιαм, qυιѕ ησѕтяυ∂ "
"єχєя¢ιтαтιση υłłαм¢σ łαвσяιѕ ηιѕι υт αłιqυιρ єχ єα ¢σммσ∂σ ¢σηѕєqυαт. ∂υιѕ "
"αυтє ιяυяє ∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт єѕѕє ¢ιłłυм ∂σłσяє єυ "
"ƒυgιαт ηυłłα ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт ¢υρι∂αтαт ηση ρяσι∂єηт, ѕυηт "
"ιη ¢υłρα qυι σƒƒι¢ια ∂єѕєяυηт мσłłιт α#"
#: templates/publisher/email/course_run/mark_as_reviewed.txt
#, python-format
msgid "Changes to %(course_name)s has been marked as reviewed. %(page_url)s"
msgid ""
"The %(sender_team)s has reviewed the %(run_number)s course run of "
"%(course_name)s %(page_url)s. You will receive another email when the course"
" run preview is available for you to review."
msgstr ""
"Çhängés tö %(course_name)s häs ßéén märkéd äs révïéwéd. %(page_url)s Ⱡ'σяєм "
"ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя α#"
"Thé %(sender_team)s häs révïéwéd thé %(run_number)s çöürsé rün öf "
"%(course_name)s %(page_url)s. Ýöü wïll réçéïvé änöthér émäïl whén thé çöürsé"
" rün prévïéw ïs äväïläßlé för ýöü tö révïéw. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, "
"¢σηѕє¢тєтυя α∂ιριѕι¢ιηg єłιт, ѕє∂ ∂σ єιυѕмσ∂ тємρσя ιη¢ι∂ι∂υηт υт łαвσяє єт "
"∂σłσяє мαgηα αłιqυα. υт єηιм α∂ мιηιм νєηιαм, qυιѕ ησѕтяυ∂ єχєя¢ιтαтιση "
"υłłαм¢σ łαвσяιѕ ηιѕι υт αłιqυιρ єχ єα ¢σммσ∂σ ¢σηѕєqυαт. ∂υιѕ αυтє ιяυяє "
"∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт єѕѕє ¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα"
" ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт ¢υρι∂αтαт ηση ρяσι∂єηт, ѕυηт ιη ¢υłρα qυι"
" σƒƒι¢ια ∂єѕєяυηт мσłłιт αηιм ι∂ єѕт#"
#: templates/publisher/email/course_run/preview_accepted.html
#: templates/publisher/email/course_run/preview_accepted.txt
......
......@@ -7,14 +7,14 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-03-09 15:51+0500\n"
"POT-Creation-Date: 2017-03-10 12:45+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: static/js/catalogs-change-form.js
......
......@@ -8,7 +8,7 @@
{% endblocktrans %}
<p>
{% blocktrans with link_start='<a href="' link_middle='">' link_end='</a>' trimmed %}
Changes to {{ link_start }}{{ page_url }}{{ link_middle }} {{ course_name }} {{ link_end }} has been marked as reviewed.
The {{ sender_team }} has reviewed the {{ link_start }}{{ page_url }}{{ link_middle }} {{ run_number }} course run{{ link_end }} of {{ course_name }}. You will receive another email when the course run preview is available for you to review.
{% endblocktrans %}
</p>
......
......@@ -4,7 +4,7 @@
Dear {{ recipient_name }},
{% endblocktrans %}
{% blocktrans trimmed %}
Changes to {{ course_name }} has been marked as reviewed. {{ page_url }}
The {{ sender_team }} has reviewed the {{ run_number }} course run of {{ course_name }} {{ page_url }}. You will receive another email when the course run preview is available for you to review.
{% endblocktrans %}
{% trans "Thanks," %}
......
Markdown is supported
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