Add the "VERIFIED_CERTIFICATES" toggle on dashboard
This commit is contained in:
@@ -12,10 +12,11 @@ import pytz
|
||||
from django.conf import settings
|
||||
from django.test import TestCase
|
||||
from django.test.utils import override_settings
|
||||
from django.test.client import RequestFactory
|
||||
from django.test.client import RequestFactory, Client
|
||||
from django.contrib.auth.models import User, AnonymousUser
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.core.urlresolvers import reverse, NoReverseMatch
|
||||
from django.http import HttpResponse
|
||||
from unittest.case import SkipTest
|
||||
|
||||
from xmodule.modulestore.tests.factories import CourseFactory
|
||||
from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase
|
||||
@@ -146,12 +147,58 @@ class DashboardTest(TestCase):
|
||||
def setUp(self):
|
||||
self.course = CourseFactory.create(org=self.COURSE_ORG, display_name=self.COURSE_NAME, number=self.COURSE_SLUG)
|
||||
self.assertIsNotNone(self.course)
|
||||
self.user = UserFactory.create(username="jack", email="jack@fake.edx.org")
|
||||
self.user = UserFactory.create(username="jack", email="jack@fake.edx.org", password='test')
|
||||
CourseModeFactory.create(
|
||||
course_id=self.course.id,
|
||||
mode_slug='honor',
|
||||
mode_display_name='Honor Code',
|
||||
)
|
||||
self.client = Client()
|
||||
|
||||
def check_verification_status_on(self, mode, value):
|
||||
"""
|
||||
Check that the css class and the status message are in the dashboard html.
|
||||
"""
|
||||
CourseEnrollment.enroll(self.user, self.course.location.course_id, mode=mode)
|
||||
try:
|
||||
response = self.client.get(reverse('dashboard'))
|
||||
except NoReverseMatch:
|
||||
raise SkipTest("Skip this test if url cannot be found (ie running from CMS tests)")
|
||||
self.assertContains(response, "class=\"course {0}\"".format(mode))
|
||||
self.assertContains(response, value)
|
||||
|
||||
@patch.dict("django.conf.settings.FEATURES", {'ENABLE_VERIFIED_CERTIFICATES': True})
|
||||
def test_verification_status_visible(self):
|
||||
"""
|
||||
Test that the certificate verification status for courses is visible on the dashboard.
|
||||
"""
|
||||
self.client.login(username="jack", password="test")
|
||||
self.check_verification_status_on('verified', 'You\'re enrolled as a verified student')
|
||||
self.check_verification_status_on('honor', 'You\'re enrolled as an honor code student')
|
||||
self.check_verification_status_on('audit', 'You\'re auditing this course')
|
||||
|
||||
def check_verification_status_off(self, mode, value):
|
||||
"""
|
||||
Check that the css class and the status message are not in the dashboard html.
|
||||
"""
|
||||
CourseEnrollment.enroll(self.user, self.course.location.course_id, mode=mode)
|
||||
try:
|
||||
response = self.client.get(reverse('dashboard'))
|
||||
except NoReverseMatch:
|
||||
raise SkipTest("Skip this test if url cannot be found (ie running from CMS tests)")
|
||||
self.assertNotContains(response, "class=\"course {0}\"".format(mode))
|
||||
self.assertNotContains(response, value)
|
||||
|
||||
@patch.dict("django.conf.settings.FEATURES", {'ENABLE_VERIFIED_CERTIFICATES': False})
|
||||
def test_verification_status_invisible(self):
|
||||
"""
|
||||
Test that the certificate verification status for courses is not visible on the dashboard
|
||||
if the verified certificates setting is off.
|
||||
"""
|
||||
self.client.login(username="jack", password="test")
|
||||
self.check_verification_status_off('verified', 'You\'re enrolled as a verified student')
|
||||
self.check_verification_status_off('honor', 'You\'re enrolled as an honor code student')
|
||||
self.check_verification_status_off('audit', 'You\'re auditing this course')
|
||||
|
||||
def test_course_mode_info(self):
|
||||
verified_mode = CourseModeFactory.create(
|
||||
|
||||
@@ -6,6 +6,7 @@ from lettuce.django import django_url
|
||||
from course_modes.models import CourseMode
|
||||
from nose.tools import assert_equal
|
||||
|
||||
|
||||
UPSELL_LINK_CSS = '.message-upsell a.action-upgrade[href*="edx/999/Certificates"]'
|
||||
|
||||
def create_cert_course():
|
||||
|
||||
@@ -172,6 +172,9 @@ FEATURES = {
|
||||
# Enable instructor dash beta version link
|
||||
'ENABLE_INSTRUCTOR_BETA_DASHBOARD': True,
|
||||
|
||||
# Toggle to enable certificates of courses on dashboard
|
||||
'ENABLE_VERIFIED_CERTIFICATES': False,
|
||||
|
||||
# Allow use of the hint managment instructor view.
|
||||
'ENABLE_HINTER_INSTRUCTOR_VIEW': False,
|
||||
|
||||
|
||||
@@ -37,6 +37,8 @@ FEATURES['ENABLE_INSTRUCTOR_BETA_DASHBOARD'] = True
|
||||
|
||||
FEATURES['ENABLE_SHOPPING_CART'] = True
|
||||
|
||||
FEATURES['ENABLE_VERIFIED_CERTIFICATES'] = True
|
||||
|
||||
# Enable this feature for course staff grade downloads, to enable acceptance tests
|
||||
FEATURES['ENABLE_S3_GRADE_DOWNLOADS'] = True
|
||||
FEATURES['ALLOW_COURSE_STAFF_GRADE_DOWNLOADS'] = True
|
||||
|
||||
@@ -21,7 +21,11 @@
|
||||
<%namespace name='static' file='../static_content.html'/>
|
||||
|
||||
<li class="course-item">
|
||||
<article class="course ${enrollment.mode}">
|
||||
% if settings.FEATURES.get('ENABLE_VERIFIED_CERTIFICATES'):
|
||||
<article class="course ${enrollment.mode}">
|
||||
% else:
|
||||
<article class="course">
|
||||
%endif
|
||||
<%
|
||||
course_target = reverse('info', args=[course.id])
|
||||
%>
|
||||
@@ -35,23 +39,24 @@
|
||||
<img src="${course_image_url(course)}" alt="${_('{course_number} {course_name} Cover Image').format(course_number=course.number, course_name=course.display_name_with_default) | h}" />
|
||||
</div>
|
||||
% endif
|
||||
|
||||
% if enrollment.mode == "verified":
|
||||
<span class="sts-enrollment" title="${_("You're enrolled as a verified student")}">
|
||||
<span class="label">${_("Enrolled as: ")}</span>
|
||||
<img class="deco-graphic" src="${static.url('images/vcert-ribbon-s.png')}" alt="ID Verified Ribbon/Badge" />
|
||||
<span class="sts-enrollment-value">${_("Verified")}</span>
|
||||
</span>
|
||||
% elif enrollment.mode == "honor":
|
||||
<span class="sts-enrollment" title="${_("You're enrolled as an honor code student")}">
|
||||
<span class="label">${_("Enrolled as: ")}</span>
|
||||
<span class="sts-enrollment-value">${_("Honor Code")}</span>
|
||||
</span>
|
||||
% elif enrollment.mode == "audit":
|
||||
<span class="sts-enrollment" title="${_("You're auditing this course")}>
|
||||
<span class="label">${_("Enrolled as: ")}</span>
|
||||
<span class="sts-enrollment-value">${_("Auditing")}</span>
|
||||
</span>
|
||||
% if settings.FEATURES.get('ENABLE_VERIFIED_CERTIFICATES'):
|
||||
% if enrollment.mode == "verified":
|
||||
<span class="sts-enrollment" title="${_("You're enrolled as a verified student")}">
|
||||
<span class="label">${_("Enrolled as: ")}</span>
|
||||
<img class="deco-graphic" src="${static.url('images/vcert-ribbon-s.png')}" alt="ID Verified Ribbon/Badge" />
|
||||
<span class="sts-enrollment-value">${_("Verified")}</span>
|
||||
</span>
|
||||
% elif enrollment.mode == "honor":
|
||||
<span class="sts-enrollment" title="${_("You're enrolled as an honor code student")}">
|
||||
<span class="label">${_("Enrolled as: ")}</span>
|
||||
<span class="sts-enrollment-value">${_("Honor Code")}</span>
|
||||
</span>
|
||||
% elif enrollment.mode == "audit":
|
||||
<span class="sts-enrollment" title="${_("You're auditing this course")}>
|
||||
<span class="label">${_("Enrolled as: ")}</span>
|
||||
<span class="sts-enrollment-value">${_("Auditing")}</span>
|
||||
</span>
|
||||
% endif
|
||||
% endif
|
||||
|
||||
<section class="info">
|
||||
|
||||
Reference in New Issue
Block a user