Commit 642f3842 by tasawernawaz Committed by Tasawer Nawaz

email: course run for sent for review

ECOM-6081
parent 06cfbc4a
...@@ -147,7 +147,8 @@ def send_email_for_mark_as_reviewed(course, user): ...@@ -147,7 +147,8 @@ def send_email_for_mark_as_reviewed(course, user):
logger.exception('Failed to send email notifications mark as reviewed of course %s', course.id) logger.exception('Failed to send email notifications mark as reviewed of course %s', course.id)
def send_course_workflow_email(course, user, subject, txt_template, html_template, page_path, course_name=None): def send_course_workflow_email(course, user, subject, txt_template, html_template, page_path, course_name=None,
run_number=None):
""" Send email for course workflow state change. """ Send email for course workflow state change.
Arguments: Arguments:
...@@ -158,6 +159,7 @@ def send_course_workflow_email(course, user, subject, txt_template, html_templat ...@@ -158,6 +159,7 @@ def send_course_workflow_email(course, user, subject, txt_template, html_templat
html_template: (String): Email html template path html_template: (String): Email html template path
page_path: (URL): Detail page url page_path: (URL): Detail page url
course_name: (String): Custom course name, by default None course_name: (String): Custom course name, by default None
run_number: (String): Course run number, by default None
""" """
recipient_user = course.marketing_reviewer recipient_user = course.marketing_reviewer
user_role = course.course_user_roles.get(user=user) user_role = course.course_user_roles.get(user=user)
...@@ -172,6 +174,9 @@ def send_course_workflow_email(course, user, subject, txt_template, html_templat ...@@ -172,6 +174,9 @@ def send_course_workflow_email(course, user, subject, txt_template, html_templat
'recipient_name': recipient_user.full_name or recipient_user.username if recipient_user else '', 'recipient_name': recipient_user.full_name or recipient_user.username if recipient_user else '',
'sender_name': user.full_name or user.username, 'sender_name': user.full_name or user.username,
'course_name': course_name if course_name else course.title, 'course_name': course_name if course_name else course.title,
'run_number': run_number,
'org_name': course.organizations.all().first().name,
'sender_team': 'course team' if user_role.role == PublisherUserRole.MarketingReviewer else 'marketing team',
'contact_us_email': project_coordinator.email if project_coordinator else '', 'contact_us_email': project_coordinator.email if project_coordinator else '',
'page_url': 'https://{host}{path}'.format( 'page_url': 'https://{host}{path}'.format(
host=Site.objects.get_current().domain.strip('/'), path=page_path host=Site.objects.get_current().domain.strip('/'), path=page_path
...@@ -196,13 +201,18 @@ def send_email_for_send_for_review_course_run(course_run, user): ...@@ -196,13 +201,18 @@ def send_email_for_send_for_review_course_run(course_run, user):
course-run (Object): CourseRun object course-run (Object): CourseRun object
user (Object): User object user (Object): User object
""" """
course_key = CourseKey.from_string(course_run.lms_course_id)
txt_template = 'publisher/email/course_run/send_for_review.txt' txt_template = 'publisher/email/course_run/send_for_review.txt'
html_template = 'publisher/email/course_run/send_for_review.html' html_template = 'publisher/email/course_run/send_for_review.html'
subject = _('Changes to {title} are ready for review').format(title=course_run.course.title) # pylint: disable=no-member subject = _('Review requested: {title} {run_number}').format( # pylint: disable=no-member
title=course_run.course.title,
run_number=course_key.run)
try: try:
page_path = reverse('publisher:publisher_course_run_detail', kwargs={'pk': course_run.id}) page_path = reverse('publisher:publisher_course_run_detail', kwargs={'pk': course_run.id})
send_course_workflow_email(course_run.course, user, subject, txt_template, html_template, page_path) send_course_workflow_email(course_run.course, user, subject, txt_template, html_template, page_path,
run_number=course_key.run)
except Exception: # pylint: disable=broad-except except Exception: # pylint: disable=broad-except
logger.exception('Failed to send email notifications send for review of course-run %s', course_run.id) logger.exception('Failed to send email notifications send for review of course-run %s', course_run.id)
......
...@@ -209,6 +209,7 @@ class CourseRunSendForReviewEmailTests(TestCase): ...@@ -209,6 +209,7 @@ class CourseRunSendForReviewEmailTests(TestCase):
self.seat = factories.SeatFactory() self.seat = factories.SeatFactory()
self.course_run = self.seat.course_run self.course_run = self.seat.course_run
self.course = self.course_run.course self.course = self.course_run.course
self.course.organizations.add(OrganizationFactory())
# add user in course-user-role table # add user in course-user-role table
factories.CourseUserRoleFactory( factories.CourseUserRoleFactory(
...@@ -218,6 +219,10 @@ class CourseRunSendForReviewEmailTests(TestCase): ...@@ -218,6 +219,10 @@ class CourseRunSendForReviewEmailTests(TestCase):
course=self.course, role=PublisherUserRole.Publisher, user=self.user_3 course=self.course, role=PublisherUserRole.Publisher, user=self.user_3
) )
self.course_run_state = factories.CourseRunStateFactory(course_run=self.course_run) self.course_run_state = factories.CourseRunStateFactory(course_run=self.course_run)
self.course_run.lms_course_id = 'course-v1:edX+DemoX+Demo_Course'
self.course_run.save()
self.course_key = CourseKey.from_string(self.course_run.lms_course_id)
toggle_switch('enable_publisher_email_notifications', True) toggle_switch('enable_publisher_email_notifications', True)
...@@ -227,7 +232,7 @@ class CourseRunSendForReviewEmailTests(TestCase): ...@@ -227,7 +232,7 @@ class CourseRunSendForReviewEmailTests(TestCase):
course=self.course, role=PublisherUserRole.MarketingReviewer, user=self.user course=self.course, role=PublisherUserRole.MarketingReviewer, user=self.user
) )
emails.send_email_for_send_for_review_course_run(self.course_run_state.course_run, self.user) emails.send_email_for_send_for_review_course_run(self.course_run_state.course_run, self.user)
subject = 'Changes to {title} are ready for review'.format(title=self.course_run.course.title) subject = 'Review requested: {title} {run_number}'.format(title=self.course, run_number=self.course_key.run)
self.assert_email_sent(subject, self.user_2) self.assert_email_sent(subject, self.user_2)
def test_email_sent_by_course_team(self): def test_email_sent_by_course_team(self):
...@@ -236,7 +241,7 @@ class CourseRunSendForReviewEmailTests(TestCase): ...@@ -236,7 +241,7 @@ class CourseRunSendForReviewEmailTests(TestCase):
course=self.course, role=PublisherUserRole.MarketingReviewer, user=self.user course=self.course, role=PublisherUserRole.MarketingReviewer, user=self.user
) )
emails.send_email_for_send_for_review_course_run(self.course_run_state.course_run, self.user_2) emails.send_email_for_send_for_review_course_run(self.course_run_state.course_run, self.user_2)
subject = 'Changes to {title} are ready for review'.format(title=self.course_run.course.title) subject = 'Review requested: {title} {run_number}'.format(title=self.course, run_number=self.course_key.run)
self.assert_email_sent(subject, self.user) self.assert_email_sent(subject, self.user)
def test_email_with_error(self): def test_email_with_error(self):
...@@ -263,7 +268,7 @@ class CourseRunSendForReviewEmailTests(TestCase): ...@@ -263,7 +268,7 @@ class CourseRunSendForReviewEmailTests(TestCase):
page_path = reverse('publisher:publisher_course_run_detail', kwargs={'pk': self.course_run.id}) 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) page_url = 'https://{host}{path}'.format(host=Site.objects.get_current().domain.strip('/'), path=page_path)
self.assertIn(page_url, body) self.assertIn(page_url, body)
self.assertIn('are ready for your review.', body) self.assertIn('Visit the course run details page to approve or decline this course run.', body)
class CourseRunMarkAsReviewedEmailTests(TestCase): class CourseRunMarkAsReviewedEmailTests(TestCase):
...@@ -278,6 +283,7 @@ class CourseRunMarkAsReviewedEmailTests(TestCase): ...@@ -278,6 +283,7 @@ class CourseRunMarkAsReviewedEmailTests(TestCase):
self.seat = factories.SeatFactory() self.seat = factories.SeatFactory()
self.course_run = self.seat.course_run self.course_run = self.seat.course_run
self.course = self.course_run.course self.course = self.course_run.course
self.course.organizations.add(OrganizationFactory())
# add user in course-user-role table # add user in course-user-role table
factories.CourseUserRoleFactory( factories.CourseUserRoleFactory(
...@@ -288,6 +294,9 @@ class CourseRunMarkAsReviewedEmailTests(TestCase): ...@@ -288,6 +294,9 @@ class CourseRunMarkAsReviewedEmailTests(TestCase):
) )
self.course_run_state = factories.CourseRunStateFactory(course_run=self.course_run) self.course_run_state = factories.CourseRunStateFactory(course_run=self.course_run)
self.course_run.lms_course_id = 'course-v1:edX+DemoX+Demo_Course'
self.course_run.save()
toggle_switch('enable_publisher_email_notifications', True) toggle_switch('enable_publisher_email_notifications', True)
def test_email_sent_by_marketing_reviewer(self): def test_email_sent_by_marketing_reviewer(self):
......
...@@ -7,14 +7,14 @@ msgid "" ...@@ -7,14 +7,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-03-07 18:14+0500\n" "POT-Creation-Date: 2017-03-09 14:55+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
#: apps/api/filters.py #: apps/api/filters.py
#, python-brace-format #, python-brace-format
...@@ -498,6 +498,11 @@ msgstr "" ...@@ -498,6 +498,11 @@ msgstr ""
#: apps/publisher/emails.py #: apps/publisher/emails.py
#, python-brace-format #, python-brace-format
msgid "Review requested: {title} {run_number}"
msgstr ""
#: apps/publisher/emails.py
#, python-brace-format
msgid "Changes to {run_name} has been marked as reviewed" msgid "Changes to {run_name} has been marked as reviewed"
msgstr "" msgstr ""
...@@ -2486,8 +2491,6 @@ msgstr "" ...@@ -2486,8 +2491,6 @@ msgstr ""
#: templates/publisher/email/course_run/preview_available.txt #: templates/publisher/email/course_run/preview_available.txt
#: templates/publisher/email/course_run/published.html #: templates/publisher/email/course_run/published.html
#: templates/publisher/email/course_run/published.txt #: templates/publisher/email/course_run/published.txt
#: templates/publisher/email/course_run/send_for_review.html
#: templates/publisher/email/course_run/send_for_review.txt
#: templates/publisher/email/studio_instance_created.html #: templates/publisher/email/studio_instance_created.html
#: templates/publisher/email/studio_instance_created.txt #: templates/publisher/email/studio_instance_created.txt
#: templates/publisher/email/studio_instance_needed.html #: templates/publisher/email/studio_instance_needed.html
...@@ -2538,7 +2541,6 @@ msgid "" ...@@ -2538,7 +2541,6 @@ msgid ""
msgstr "" msgstr ""
#: templates/publisher/email/course/send_for_review.txt #: templates/publisher/email/course/send_for_review.txt
#: templates/publisher/email/course_run/send_for_review.txt
#, python-format #, python-format
msgid "" msgid ""
"New changes to %(course_name)s are ready for your review. %(page_url)s View " "New changes to %(course_name)s are ready for your review. %(page_url)s View "
...@@ -2606,6 +2608,8 @@ msgstr "" ...@@ -2606,6 +2608,8 @@ msgstr ""
#. Translators: It's closing of mail. #. Translators: It's closing of mail.
#: templates/publisher/email/course_run/preview_accepted.html #: templates/publisher/email/course_run/preview_accepted.html
#: templates/publisher/email/course_run/send_for_review.html
#: templates/publisher/email/course_run/send_for_review.txt
msgid "Thank you," msgid "Thank you,"
msgstr "" msgstr ""
...@@ -2653,10 +2657,20 @@ msgstr "" ...@@ -2653,10 +2657,20 @@ msgstr ""
#: templates/publisher/email/course_run/send_for_review.html #: templates/publisher/email/course_run/send_for_review.html
#, python-format #, python-format
msgid "" msgid ""
"New changes to %(link_start)s%(page_url)s%(link_middle)s %(course_name)s " "The %(sender_team)s for %(course_name)s from %(org_name)s has submitted the "
"%(link_end)s are ready for your review. " "%(link_start)s%(page_url)s%(link_middle)s%(run_number)s course "
"%(link_start)s%(page_url)s%(link_middle)s View this course-run in Publisher " "run%(link_end)s for review. Visit the course run details page to approve or "
"%(link_end)s to approve or decline the changes." "decline this course run."
msgstr ""
#: templates/publisher/email/course_run/send_for_review.txt
#, python-format
msgid ""
"New changes to %(course_name)s are ready for your review. %(page_url)s View "
"this course in Publisher to approve or decline the changes. The "
"%(sender_team)s for %(course_name)s from %(org_name)s has submitted the "
"%(run_number)s course run for review. %(page_url)s Visit the course run "
"details page to approve or decline this course run."
msgstr "" msgstr ""
#: templates/publisher/email/decline_preview.html #: templates/publisher/email/decline_preview.html
......
...@@ -7,14 +7,14 @@ msgid "" ...@@ -7,14 +7,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-03-07 18:14+0500\n" "POT-Creation-Date: 2017-03-09 14:55+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
#: static/js/catalogs-change-form.js #: static/js/catalogs-change-form.js
msgid "Preview" msgid "Preview"
......
...@@ -7,14 +7,14 @@ msgid "" ...@@ -7,14 +7,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-03-07 18:14+0500\n" "POT-Creation-Date: 2017-03-09 14:55+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: apps/api/filters.py #: apps/api/filters.py
...@@ -615,6 +615,12 @@ msgstr "" ...@@ -615,6 +615,12 @@ msgstr ""
#: apps/publisher/emails.py #: apps/publisher/emails.py
#, python-brace-format #, python-brace-format
msgid "Review requested: {title} {run_number}"
msgstr ""
"Révïéw réqüéstéd: {title} {run_number} Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕ#"
#: apps/publisher/emails.py
#, python-brace-format
msgid "Changes to {run_name} has been marked as reviewed" msgid "Changes to {run_name} has been marked as reviewed"
msgstr "" msgstr ""
"Çhängés tö {run_name} häs ßéén märkéd äs révïéwéd Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт " "Çhängés tö {run_name} häs ßéén märkéd äs révïéwéd Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт "
...@@ -2913,8 +2919,6 @@ msgstr "" ...@@ -2913,8 +2919,6 @@ msgstr ""
#: templates/publisher/email/course_run/preview_available.txt #: templates/publisher/email/course_run/preview_available.txt
#: templates/publisher/email/course_run/published.html #: templates/publisher/email/course_run/published.html
#: templates/publisher/email/course_run/published.txt #: templates/publisher/email/course_run/published.txt
#: templates/publisher/email/course_run/send_for_review.html
#: templates/publisher/email/course_run/send_for_review.txt
#: templates/publisher/email/studio_instance_created.html #: templates/publisher/email/studio_instance_created.html
#: templates/publisher/email/studio_instance_created.txt #: templates/publisher/email/studio_instance_created.txt
#: templates/publisher/email/studio_instance_needed.html #: templates/publisher/email/studio_instance_needed.html
...@@ -2981,7 +2985,6 @@ msgstr "" ...@@ -2981,7 +2985,6 @@ msgstr ""
" σƒƒι¢ια ∂єѕєяυηт мσłłιт αηιм ι∂ єѕт łαв#" " σƒƒι¢ια ∂єѕєяυηт мσłłιт αηιм ι∂ єѕт łαв#"
#: templates/publisher/email/course/send_for_review.txt #: templates/publisher/email/course/send_for_review.txt
#: templates/publisher/email/course_run/send_for_review.txt
#, python-format #, python-format
msgid "" msgid ""
"New changes to %(course_name)s are ready for your review. %(page_url)s View " "New changes to %(course_name)s are ready for your review. %(page_url)s View "
...@@ -3070,6 +3073,8 @@ msgstr "" ...@@ -3070,6 +3073,8 @@ msgstr ""
#. Translators: It's closing of mail. #. Translators: It's closing of mail.
#: templates/publisher/email/course_run/preview_accepted.html #: templates/publisher/email/course_run/preview_accepted.html
#: templates/publisher/email/course_run/send_for_review.html
#: templates/publisher/email/course_run/send_for_review.txt
msgid "Thank you," msgid "Thank you,"
msgstr "Thänk ýöü, Ⱡ'σяєм ιρѕυм ∂σłσ#" msgstr "Thänk ýöü, Ⱡ'σяєм ιρѕυм ∂σłσ#"
...@@ -3140,21 +3145,40 @@ msgstr "" ...@@ -3140,21 +3145,40 @@ msgstr ""
#: templates/publisher/email/course_run/send_for_review.html #: templates/publisher/email/course_run/send_for_review.html
#, python-format #, python-format
msgid "" msgid ""
"New changes to %(link_start)s%(page_url)s%(link_middle)s %(course_name)s " "The %(sender_team)s for %(course_name)s from %(org_name)s has submitted the "
"%(link_end)s are ready for your review. " "%(link_start)s%(page_url)s%(link_middle)s%(run_number)s course "
"%(link_start)s%(page_url)s%(link_middle)s View this course-run in Publisher " "run%(link_end)s for review. Visit the course run details page to approve or "
"%(link_end)s to approve or decline the changes." "decline this course run."
msgstr "" msgstr ""
"Néw çhängés tö %(link_start)s%(page_url)s%(link_middle)s %(course_name)s " "Thé %(sender_team)s för %(course_name)s fröm %(org_name)s häs süßmïttéd thé "
"%(link_end)s äré réädý för ýöür révïéw. " "%(link_start)s%(page_url)s%(link_middle)s%(run_number)s çöürsé "
"%(link_start)s%(page_url)s%(link_middle)s Vïéw thïs çöürsé-rün ïn Püßlïshér " "rün%(link_end)s för révïéw. Vïsït thé çöürsé rün détäïls pägé tö äpprövé ör "
"%(link_end)s tö äpprövé ör déçlïné thé çhängés. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт," "déçlïné thïs çöürsé rün. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт αмєт, ¢σηѕє¢тєтυя "
" ¢σηѕє¢тєтυя α∂ιριѕι¢ιηg єłιт, ѕє∂ ∂σ єιυѕмσ∂ тємρσя ιη¢ι∂ι∂υηт υт łαвσяє єт" "α∂ιριѕι¢ιηg єłιт, ѕє∂ ∂σ єιυѕмσ∂ тємρσя ιη¢ι∂ι∂υηт υт łαвσяє єт ∂σłσяє мαgηα"
" ∂σłσяє мαgηα αłιqυα. υт єηιм α∂ мιηιм νєηιαм, qυιѕ ησѕтяυ∂ єχєя¢ιтαтιση " " αłιqυα. υт єηιм α∂ мιηιм νєηιαм, qυιѕ ησѕтяυ∂ єχєя¢ιтαтιση υłłαм¢σ łαвσяιѕ "
"υłłαм¢σ łαвσяιѕ ηιѕι υт αłιqυιρ єχ єα ¢σммσ∂σ ¢σηѕєqυαт. ∂υιѕ αυтє ιяυяє " "ηιѕι υт αłιqυιρ єχ єα ¢σммσ∂σ ¢σηѕєqυαт. ∂υιѕ αυтє ιяυяє ∂σłσя ιη "
"∂σłσя ιη яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт єѕѕє ¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα" "яєρяєнєη∂єяιт ιη νσłυρтαтє νєłιт єѕѕє ¢ιłłυм ∂σłσяє єυ ƒυgιαт ηυłłα "
" ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт ¢υρι∂αтαт ηση ρяσι∂єηт, ѕυηт ιη ¢υłρα qυι" "ραяιαтυя. єχ¢єρтєυя ѕιηт σ¢¢αє¢αт ¢υρι∂αтαт ηση ρяσι∂єηт, ѕυηт ιη ¢υłρα qυι "
" σƒƒι¢ια ∂єѕєяυηт мσłłιт αηιм ι∂ єѕт#" "σƒƒι¢ια ∂єѕєяυηт мσłł#"
#: templates/publisher/email/course_run/send_for_review.txt
#, python-format
msgid ""
"New changes to %(course_name)s are ready for your review. %(page_url)s View "
"this course in Publisher to approve or decline the changes. The "
"%(sender_team)s for %(course_name)s from %(org_name)s has submitted the "
"%(run_number)s course run for review. %(page_url)s Visit the course run "
"details page to approve or decline this course run."
msgstr ""
"Néw çhängés tö %(course_name)s äré réädý för ýöür révïéw. %(page_url)s Vïéw "
"thïs çöürsé ïn Püßlïshér tö äpprövé ör déçlïné thé çhängés. Thé "
"%(sender_team)s för %(course_name)s fröm %(org_name)s häs süßmïttéd thé "
"%(run_number)s çöürsé rün för révïéw. %(page_url)s Vïsït thé çöürsé rün "
"détäïls pägé tö äpprövé ör déçlïné thïs çöürsé rün. Ⱡ'σяєм ιρѕυм ∂σłσя ѕιт "
"αмєт, ¢σηѕє¢тєтυя α∂ιριѕι¢ιηg єłιт, ѕє∂ ∂σ єιυѕмσ∂ тємρσя ιη¢ι∂ι∂υηт υт "
"łαвσяє єт ∂σłσяє мαgηα αłιqυα. υт єηιм α∂ мιηιм νєηιαм, qυιѕ ησѕтяυ∂ "
"єχєя¢ιтαтιση υłłαм¢σ łαвσяιѕ ηιѕι υт αłιqυιρ єχ єα ¢σммσ∂σ ¢σηѕєqυαт. ∂υιѕ "
"αυтє ιяυяє ∂σł#"
#: templates/publisher/email/decline_preview.html #: templates/publisher/email/decline_preview.html
#, python-format #, python-format
......
...@@ -7,14 +7,14 @@ msgid "" ...@@ -7,14 +7,14 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-03-07 18:14+0500\n" "POT-Creation-Date: 2017-03-09 14:55+0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: static/js/catalogs-change-form.js #: static/js/catalogs-change-form.js
......
...@@ -8,12 +8,12 @@ ...@@ -8,12 +8,12 @@
{% endblocktrans %} {% endblocktrans %}
<p> <p>
{% blocktrans with link_start='<a href="' link_middle='">' link_end='</a>' trimmed %} {% blocktrans with link_start='<a href="' link_middle='">' link_end='</a>' trimmed %}
New changes to {{ link_start }}{{ page_url }}{{ link_middle }} {{ course_name }} {{ link_end }} are ready for your review. {{ link_start }}{{ page_url }}{{ link_middle }} View this course-run in Publisher {{ link_end }} to approve or decline the changes. The {{ sender_team }} for {{ course_name }} from {{ org_name }} has submitted the {{ link_start }}{{ page_url }}{{ link_middle }}{{ run_number }} course run{{ link_end }} for review. Visit the course run details page to approve or decline this course run.
{% endblocktrans %} {% endblocktrans %}
</p> </p>
{% comment %}Translators: It's closing of mail.{% endcomment %} {% comment %}Translators: It's closing of mail.{% endcomment %}
{% trans "Thanks," %}<br> {% trans "Thank you," %}<br>
{{ sender_name }} {{ sender_name }}
......
...@@ -5,9 +5,10 @@ ...@@ -5,9 +5,10 @@
{% endblocktrans %} {% endblocktrans %}
{% blocktrans trimmed %} {% blocktrans trimmed %}
New changes to {{ course_name }} are ready for your review. {{ page_url }} View this course in Publisher to approve or decline the changes. New changes to {{ course_name }} are ready for your review. {{ page_url }} View this course in Publisher to approve or decline the changes.
The {{ sender_team }} for {{ course_name }} from {{ org_name }} has submitted the {{ run_number }} course run for review. {{ page_url }} Visit the course run details page to approve or decline this course run.
{% endblocktrans %} {% endblocktrans %}
{% trans "Thanks," %} {% trans "Thank you," %}
{{ sender_name }} {{ sender_name }}
{% blocktrans trimmed %} {% blocktrans trimmed %}
......
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