Commit 7e52af97 by Anthony Mangano

Render certificate templates in the correct language

LEARNER-2921
parent a285ed08
...@@ -503,7 +503,7 @@ def get_certificate_template(course_key, mode, language): ...@@ -503,7 +503,7 @@ def get_certificate_template(course_key, mode, language):
mode=mode mode=mode
) )
template = get_language_specific_template_or_default(language, mode_templates) template = get_language_specific_template_or_default(language, mode_templates)
return template.template if template else None return template if template else None
def get_language_specific_template_or_default(language, templates): def get_language_specific_template_or_default(language, templates):
...@@ -540,7 +540,12 @@ def _get_two_letter_language_code(language_code): ...@@ -540,7 +540,12 @@ def _get_two_letter_language_code(language_code):
Shortens language to only first two characters (e.g. es-419 becomes es) Shortens language to only first two characters (e.g. es-419 becomes es)
This is needed because Catalog returns locale language which is not always a 2 letter code. This is needed because Catalog returns locale language which is not always a 2 letter code.
""" """
return language_code[:2] if language_code else None if language_code is None:
return None
elif language_code == '':
return ''
else:
return language_code[:2]
def emit_certificate_event(event_name, user, course_id, course=None, event_data=None): def emit_certificate_event(event_name, user, course_id, course=None, event_data=None):
......
...@@ -41,6 +41,7 @@ from lms.djangoapps.badges.tests.factories import ( ...@@ -41,6 +41,7 @@ from lms.djangoapps.badges.tests.factories import (
) )
from lms.djangoapps.grades.tests.utils import mock_passing_grade from lms.djangoapps.grades.tests.utils import mock_passing_grade
from openedx.core.djangoapps.certificates.config import waffle from openedx.core.djangoapps.certificates.config import waffle
from openedx.core.djangoapps.dark_lang.models import DarkLangConfig
from openedx.core.lib.tests.assertions.events import assert_event_matches from openedx.core.lib.tests.assertions.events import assert_event_matches
from student.roles import CourseStaffRole from student.roles import CourseStaffRole
from student.tests.factories import CourseEnrollmentFactory, UserFactory from student.tests.factories import CourseEnrollmentFactory, UserFactory
...@@ -1079,6 +1080,8 @@ class CertificatesViewsTests(CommonCertificatesTestCase): ...@@ -1079,6 +1080,8 @@ class CertificatesViewsTests(CommonCertificatesTestCase):
Tests custom template search and rendering. Tests custom template search and rendering.
This test should check template matching when org={org}, course={course}, mode={mode}. This test should check template matching when org={org}, course={course}, mode={mode}.
""" """
DarkLangConfig(released_languages='es-419, fr', changed_by=self.user, enabled=True).save()
right_language = 'es' right_language = 'es'
wrong_language = 'fr' wrong_language = 'fr'
mock_get_org_id.return_value = 1 mock_get_org_id.return_value = 1
...@@ -1137,6 +1140,8 @@ class CertificatesViewsTests(CommonCertificatesTestCase): ...@@ -1137,6 +1140,8 @@ class CertificatesViewsTests(CommonCertificatesTestCase):
match org and mode. match org and mode.
This test should check template matching when org={org}, course=Null, mode={mode}. This test should check template matching when org={org}, course=Null, mode={mode}.
""" """
DarkLangConfig(released_languages='es-419, fr', changed_by=self.user, enabled=True).save()
right_language = 'es' right_language = 'es'
wrong_language = 'fr' wrong_language = 'fr'
mock_get_org_id.return_value = 1 mock_get_org_id.return_value = 1
...@@ -1193,6 +1198,8 @@ class CertificatesViewsTests(CommonCertificatesTestCase): ...@@ -1193,6 +1198,8 @@ class CertificatesViewsTests(CommonCertificatesTestCase):
Tests custom template search when we have a single template for a organization. Tests custom template search when we have a single template for a organization.
This test should check template matching when org={org}, course=Null, mode=null. This test should check template matching when org={org}, course=Null, mode=null.
""" """
DarkLangConfig(released_languages='es-419, fr', changed_by=self.user, enabled=True).save()
right_language = 'es' right_language = 'es'
wrong_language = 'fr' wrong_language = 'fr'
mock_get_org_id.return_value = 1 mock_get_org_id.return_value = 1
...@@ -1248,6 +1255,8 @@ class CertificatesViewsTests(CommonCertificatesTestCase): ...@@ -1248,6 +1255,8 @@ class CertificatesViewsTests(CommonCertificatesTestCase):
Tests custom template search if we have a single template for a course mode. Tests custom template search if we have a single template for a course mode.
This test should check template matching when org=null, course=Null, mode={mode}. This test should check template matching when org=null, course=Null, mode={mode}.
""" """
DarkLangConfig(released_languages='es-419, fr', changed_by=self.user, enabled=True).save()
right_language = 'es' right_language = 'es'
wrong_language = 'fr' wrong_language = 'fr'
mock_get_org_id.return_value = 1 mock_get_org_id.return_value = 1
...@@ -1303,6 +1312,8 @@ class CertificatesViewsTests(CommonCertificatesTestCase): ...@@ -1303,6 +1312,8 @@ class CertificatesViewsTests(CommonCertificatesTestCase):
Tests custom template search if we have a single template for a course mode. Tests custom template search if we have a single template for a course mode.
This test should check template matching when org=null, course=Null, mode={mode}. This test should check template matching when org=null, course=Null, mode={mode}.
""" """
DarkLangConfig(released_languages='es-419, fr', changed_by=self.user, enabled=True).save()
right_language = 'es' right_language = 'es'
wrong_language = 'fr' wrong_language = 'fr'
mock_get_org_id.return_value = 1 mock_get_org_id.return_value = 1
......
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