Commit 9799d153 by Saleem Latif

course-number and override course-number added in Certificate Editor View

parent ee203ed9
...@@ -50,6 +50,10 @@ ...@@ -50,6 +50,10 @@
.content-supplementary { .content-supplementary {
width: flex-grid(3, 12); width: flex-grid(3, 12);
} }
.certificate-info-section{
overflow: auto;
}
} }
// * +Main - Collection // * +Main - Collection
......
...@@ -84,6 +84,7 @@ import json ...@@ -84,6 +84,7 @@ import json
url_name: "${context_course.location.name | h}", url_name: "${context_course.location.name | h}",
org: "${context_course.location.org | h}", org: "${context_course.location.org | h}",
num: "${context_course.location.course | h}", num: "${context_course.location.course | h}",
display_course_number: "${_(context_course.display_coursenumber)}",
revision: "${context_course.location.revision | h}" revision: "${context_course.location.revision | h}"
}); });
}); });
......
...@@ -16,16 +16,35 @@ ...@@ -16,16 +16,35 @@
<header> <header>
<span class="title"><%= gettext("Certificate Details") %></span> <span class="title"><%= gettext("Certificate Details") %></span>
</header> </header>
<div class="actual-course-title"> <div class='certificate-info-section'>
<span class="certificate-label"><b><%= gettext('Course Title') %>: </b> </span> <div class='course-title-section pull-left'>
<span class="certificate-value"><%= course.get('name') %></span> <div class="actual-course-title">
</div> <span class="certificate-label"><b><%= gettext('Course Title') %>: </b> </span>
<% if (course_title) { %> <span class="certificate-value"><%= course.get('name') %></span>
<div class="course-title-override"> </div>
<span class="certificate-label"><b><%= gettext('Course Title Override') %>: </b></span> <% if (course_title) { %>
<span class="certificate-value"><%= course_title %></span> <div class="course-title-override">
<span class="certificate-label"><b><%= gettext('Course Title Override') %>: </b></span>
<span class="certificate-value"><%= course_title %></span>
</div>
<% } %>
</div>
<div class='course-number-section pull-right'>
<div class="actual-course-number">
<span class="certificate-label"><b><%= gettext('Course Number') %>: </b> </span>
<span class="certificate-value"><%= course.get('num') %></span>
</div>
<% if (course.get('display_course_number')) { %>
<div class="course-number-override">
<span class="certificate-label"><b><%= gettext('Course Number Override') %>: </b></span>
<span class="certificate-value"><%= course.get('display_course_number') %></span>
</div>
<% } %>
</div> </div>
<% } %> </div>
<header style='margin-top: 30px;'> <header style='margin-top: 30px;'>
<span class="title"><%= gettext("Certificate Signatories") %></span> <span class="title"><%= gettext("Certificate Signatories") %></span>
</header> </header>
......
...@@ -11,7 +11,6 @@ The methods in these classes are organized into several conceptual buckets: ...@@ -11,7 +11,6 @@ The methods in these classes are organized into several conceptual buckets:
import os import os
from bok_choy.promise import EmptyPromise from bok_choy.promise import EmptyPromise
from ...tests.helpers import disable_animations
from .course_page import CoursePage from .course_page import CoursePage
from common.test.acceptance.tests.helpers import disable_animations from common.test.acceptance.tests.helpers import disable_animations
...@@ -57,6 +56,18 @@ class CertificatesPage(CoursePage): ...@@ -57,6 +56,18 @@ class CertificatesPage(CoursePage):
""" """
return self.q(css='.signatory-title-value').first.html[0] return self.q(css='.signatory-title-value').first.html[0]
def get_course_number(self):
"""
Return Course Number
"""
return self.q(css='.actual-course-number .certificate-value').first.text[0]
def get_course_number_override(self):
"""
Return Course Number Override
"""
return self.q(css='.course-number-override .certificate-value').first.text[0]
################ ################
# Properties # Properties
################ ################
......
...@@ -4,6 +4,7 @@ Acceptance tests for Studio's Setting pages ...@@ -4,6 +4,7 @@ Acceptance tests for Studio's Setting pages
import re import re
from .base_studio_test import StudioCourseTest from .base_studio_test import StudioCourseTest
from ...pages.studio.settings_certificates import CertificatesPage from ...pages.studio.settings_certificates import CertificatesPage
from ...pages.studio.settings_advanced import AdvancedSettingsPage
class CertificatesTest(StudioCourseTest): class CertificatesTest(StudioCourseTest):
...@@ -18,6 +19,13 @@ class CertificatesTest(StudioCourseTest): ...@@ -18,6 +19,13 @@ class CertificatesTest(StudioCourseTest):
self.course_info['number'], self.course_info['number'],
self.course_info['run'] self.course_info['run']
) )
self.advanced_settings_page = AdvancedSettingsPage(
self.browser,
self.course_info['org'],
self.course_info['number'],
self.course_info['run']
)
self.course_advanced_settings = dict()
def make_signatory_data(self, prefix='First'): def make_signatory_data(self, prefix='First'):
""" """
...@@ -229,3 +237,59 @@ class CertificatesTest(StudioCourseTest): ...@@ -229,3 +237,59 @@ class CertificatesTest(StudioCourseTest):
signatory_title = self.certificates_page.get_first_signatory_title() signatory_title = self.certificates_page.get_first_signatory_title()
self.assertNotEqual([], re.findall(r'<br\s*/?>', signatory_title)) self.assertNotEqual([], re.findall(r'<br\s*/?>', signatory_title))
def test_course_number_in_certificate_details_view(self):
"""
Scenario: Ensure that Course Number is displayed in certificate details view
Given I have a certificate
When I visit certificate details page on studio
Then I see Course Number next to Course Name
"""
self.certificates_page.visit()
certificate = self.create_and_verify_certificate(
"Course Title Override",
0,
[self.make_signatory_data('first')]
)
certificate.wait_for_certificate_delete_button()
# Make sure certificate is created
self.assertEqual(len(self.certificates_page.certificates), 1)
course_number = self.certificates_page.get_course_number()
self.assertEqual(self.course_info['number'], course_number)
def test_course_number_override_in_certificate_details_view(self):
"""
Scenario: Ensure that Course Number Override is displayed in certificate details view
Given I have a certificate
When I visit certificate details page on studio
Then I see Course Number Override next to Course Name
"""
self.course_advanced_settings.update(
{'Course Number Display String': 'Course Number Override String'}
)
self.certificates_page.visit()
certificate = self.create_and_verify_certificate(
"Course Title Override",
0,
[self.make_signatory_data('first')]
)
certificate.wait_for_certificate_delete_button()
# Make sure certificate is created
self.assertEqual(len(self.certificates_page.certificates), 1)
# set up course number override in Advanced Settings Page
self.advanced_settings_page.visit()
self.advanced_settings_page.set_values(self.course_advanced_settings)
self.advanced_settings_page.wait_for_ajax()
self.certificates_page.visit()
course_number_override = self.certificates_page.get_course_number_override()
self.assertEqual(self.course_advanced_settings['Course Number Display String'], course_number_override)
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