Revert "Learner Dashboard improvements to assist with the Account Activation process"
This commit is contained in:
committed by
GitHub
parent
1250f41e85
commit
e8f6d20119
@@ -112,6 +112,7 @@ class TestActivateAccount(TestCase):
|
||||
def test_activation_without_keys(self, mock_segment_identify):
|
||||
self.assert_no_tracking(mock_segment_identify)
|
||||
|
||||
@override_settings(FEATURES=dict(settings.FEATURES, DISPLAY_ACCOUNT_ACTIVATION_MESSAGE_ON_SIDEBAR=True))
|
||||
def test_account_activation_message(self):
|
||||
"""
|
||||
Verify that account correct activation message is displayed.
|
||||
@@ -121,29 +122,59 @@ class TestActivateAccount(TestCase):
|
||||
"""
|
||||
# Log in with test user.
|
||||
self.login()
|
||||
expected_message = (
|
||||
u"Check your {email_start}{email}{email_end} inbox for an account activation link from "
|
||||
u"{platform_name}. If you need help, contact {link_start}{platform_name} Support{link_end}."
|
||||
).format(
|
||||
platform_name=self.platform_name,
|
||||
email_start="<strong>",
|
||||
email_end="</strong>",
|
||||
email=self.user.email,
|
||||
link_start="<a target='_blank' href='{activation_email_support_link}'>".format(
|
||||
activation_email_support_link=self.activation_email_support_link,
|
||||
),
|
||||
link_end="</a>",
|
||||
expected_message = render_to_string(
|
||||
'registration/account_activation_sidebar_notice.html',
|
||||
{
|
||||
'email': self.user.email,
|
||||
'platform_name': self.platform_name,
|
||||
'activation_email_support_link': self.activation_email_support_link
|
||||
}
|
||||
)
|
||||
|
||||
response = self.client.get(reverse('dashboard'))
|
||||
self.assertContains(response, expected_message)
|
||||
self.assertContains(response, expected_message, html=True)
|
||||
|
||||
# Now make sure account activation message goes away when user activated the account
|
||||
self.user.is_active = True
|
||||
self.user.save()
|
||||
self.login()
|
||||
expected_message = render_to_string(
|
||||
'registration/account_activation_sidebar_notice.html',
|
||||
{
|
||||
'email': self.user.email,
|
||||
'platform_name': self.platform_name,
|
||||
'activation_email_support_link': self.activation_email_support_link
|
||||
}
|
||||
)
|
||||
response = self.client.get(reverse('dashboard'))
|
||||
self.assertNotContains(response, expected_message)
|
||||
self.assertNotContains(response, expected_message, html=True)
|
||||
|
||||
@override_settings(FEATURES=dict(settings.FEATURES, DISPLAY_ACCOUNT_ACTIVATION_MESSAGE_ON_SIDEBAR=False))
|
||||
def test_account_activation_message_disabled(self):
|
||||
"""
|
||||
Verify that old account activation message is displayed when
|
||||
DISPLAY_ACCOUNT_ACTIVATION_MESSAGE_ON_SIDEBAR is disabled.
|
||||
"""
|
||||
# Log in with test user.
|
||||
self.login()
|
||||
expected_message = render_to_string(
|
||||
'registration/activate_account_notice.html',
|
||||
{'email': self.user.email}
|
||||
)
|
||||
|
||||
response = self.client.get(reverse('dashboard'))
|
||||
self.assertContains(response, expected_message, html=True)
|
||||
|
||||
# Now make sure account activation message goes away when user activated the account
|
||||
self.user.is_active = True
|
||||
self.user.save()
|
||||
self.login()
|
||||
expected_message = render_to_string(
|
||||
'registration/activate_account_notice.html',
|
||||
{'email': self.user.email}
|
||||
)
|
||||
response = self.client.get(reverse('dashboard'))
|
||||
self.assertNotContains(response, expected_message, html=True)
|
||||
|
||||
def test_account_activation_notification_on_logistration(self):
|
||||
"""
|
||||
|
||||
@@ -27,7 +27,6 @@ from milestones.tests.utils import MilestonesTestCaseMixin
|
||||
from openedx.core.djangoapps.catalog.tests.factories import ProgramFactory
|
||||
from openedx.core.djangoapps.content.course_overviews.models import CourseOverview
|
||||
from openedx.core.djangoapps.content.course_overviews.tests.factories import CourseOverviewFactory
|
||||
from openedx.core.djangoapps.site_configuration.tests.test_util import with_site_configuration_context
|
||||
from pyquery import PyQuery as pq
|
||||
from student.cookies import get_user_info_cookie_data
|
||||
from student.helpers import DISABLE_UNENROLL_CERT_STATES
|
||||
@@ -265,11 +264,6 @@ class StudentDashboardTests(SharedModuleStoreTestCase, MilestonesTestCaseMixin,
|
||||
'DASHBOARD_TWITTER': True,
|
||||
},
|
||||
}
|
||||
MOCK_SETTINGS_HIDE_COURSES = {
|
||||
'FEATURES': {
|
||||
'HIDE_DASHBOARD_COURSES_UNTIL_ACTIVATED': True,
|
||||
}
|
||||
}
|
||||
|
||||
def setUp(self):
|
||||
"""
|
||||
@@ -625,40 +619,6 @@ class StudentDashboardTests(SharedModuleStoreTestCase, MilestonesTestCaseMixin,
|
||||
response = self.client.get(self.path)
|
||||
self.assertEqual(pq(response.content)(self.EMAIL_SETTINGS_ELEMENT_ID).length, 0)
|
||||
|
||||
@patch.multiple('django.conf.settings', **MOCK_SETTINGS_HIDE_COURSES)
|
||||
def test_hide_dashboard_courses_until_activated(self):
|
||||
"""
|
||||
Verify that when the HIDE_DASHBOARD_COURSES_UNTIL_ACTIVATED feature is enabled,
|
||||
inactive users don't see the Courses list, but active users still do.
|
||||
"""
|
||||
# Ensure active users see the course list
|
||||
self.assertTrue(self.user.is_active)
|
||||
response = self.client.get(reverse('dashboard'))
|
||||
self.assertIn('You are not enrolled in any courses yet.', response.content)
|
||||
|
||||
# Ensure inactive users don't see the course list
|
||||
self.user.is_active = False
|
||||
self.user.save()
|
||||
response = self.client.get(reverse('dashboard'))
|
||||
self.assertNotIn('You are not enrolled in any courses yet.', response.content)
|
||||
|
||||
def test_show_empty_dashboard_message(self):
|
||||
"""
|
||||
Verify that when the EMPTY_DASHBOARD_MESSAGE feature is set,
|
||||
its text is displayed in an empty courses list.
|
||||
"""
|
||||
empty_dashboard_message = "Check out our lovely <i>free</i> courses!"
|
||||
response = self.client.get(reverse('dashboard'))
|
||||
self.assertIn('You are not enrolled in any courses yet.', response.content)
|
||||
self.assertNotIn(empty_dashboard_message, response.content)
|
||||
|
||||
with with_site_configuration_context(configuration={
|
||||
"EMPTY_DASHBOARD_MESSAGE": empty_dashboard_message,
|
||||
}):
|
||||
response = self.client.get(reverse('dashboard'))
|
||||
self.assertIn('You are not enrolled in any courses yet.', response.content)
|
||||
self.assertIn(empty_dashboard_message, response.content)
|
||||
|
||||
@staticmethod
|
||||
def _remove_whitespace_from_html_string(html):
|
||||
return ''.join(html.split())
|
||||
|
||||
@@ -40,7 +40,6 @@ from openedx.core.djangoapps.programs.utils import ProgramDataExtender, ProgramP
|
||||
from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers
|
||||
from openedx.core.djangoapps.util.maintenance_banner import add_maintenance_banner
|
||||
from openedx.core.djangoapps.waffle_utils import WaffleFlag, WaffleFlagNamespace
|
||||
from openedx.core.djangolib.markup import HTML, Text
|
||||
from openedx.features.enterprise_support.api import get_dashboard_consent_notification
|
||||
from shoppingcart.api import order_history
|
||||
from shoppingcart.models import CourseRegistrationCode, DonationConfiguration
|
||||
@@ -563,13 +562,6 @@ def student_dashboard(request):
|
||||
activation_email_support_link = configuration_helpers.get_value(
|
||||
'ACTIVATION_EMAIL_SUPPORT_LINK', settings.ACTIVATION_EMAIL_SUPPORT_LINK
|
||||
) or settings.SUPPORT_SITE_LINK
|
||||
hide_dashboard_courses_until_activated = configuration_helpers.get_value(
|
||||
'HIDE_DASHBOARD_COURSES_UNTIL_ACTIVATED',
|
||||
settings.FEATURES.get('HIDE_DASHBOARD_COURSES_UNTIL_ACTIVATED', False)
|
||||
)
|
||||
empty_dashboard_message = configuration_helpers.get_value(
|
||||
'EMPTY_DASHBOARD_MESSAGE', None
|
||||
)
|
||||
|
||||
# Get the org whitelist or the org blacklist for the current site
|
||||
site_org_whitelist, site_org_blacklist = get_org_black_and_whitelist_for_site()
|
||||
@@ -610,21 +602,28 @@ def student_dashboard(request):
|
||||
)
|
||||
course_optouts = Optout.objects.filter(user=user).values_list('course_id', flat=True)
|
||||
|
||||
# Display activation message
|
||||
activate_account_message = ''
|
||||
if not user.is_active:
|
||||
activate_account_message = Text(_(
|
||||
"Check your {email_start}{email}{email_end} inbox for an account activation link from {platform_name}. "
|
||||
"If you need help, contact {link_start}{platform_name} Support{link_end}."
|
||||
)).format(
|
||||
platform_name=platform_name,
|
||||
email_start=HTML("<strong>"),
|
||||
email_end=HTML("</strong>"),
|
||||
email=user.email,
|
||||
link_start=HTML("<a target='_blank' href='{activation_email_support_link}'>").format(
|
||||
activation_email_support_link=activation_email_support_link,
|
||||
),
|
||||
link_end=HTML("</a>"),
|
||||
sidebar_account_activation_message = ''
|
||||
banner_account_activation_message = ''
|
||||
display_account_activation_message_on_sidebar = configuration_helpers.get_value(
|
||||
'DISPLAY_ACCOUNT_ACTIVATION_MESSAGE_ON_SIDEBAR',
|
||||
settings.FEATURES.get('DISPLAY_ACCOUNT_ACTIVATION_MESSAGE_ON_SIDEBAR', False)
|
||||
)
|
||||
|
||||
# Display activation message in sidebar if DISPLAY_ACCOUNT_ACTIVATION_MESSAGE_ON_SIDEBAR
|
||||
# flag is active. Otherwise display existing message at the top.
|
||||
if display_account_activation_message_on_sidebar and not user.is_active:
|
||||
sidebar_account_activation_message = render_to_string(
|
||||
'registration/account_activation_sidebar_notice.html',
|
||||
{
|
||||
'email': user.email,
|
||||
'platform_name': platform_name,
|
||||
'activation_email_support_link': activation_email_support_link
|
||||
}
|
||||
)
|
||||
elif not user.is_active:
|
||||
banner_account_activation_message = render_to_string(
|
||||
'registration/activate_account_notice.html',
|
||||
{'email': user.email}
|
||||
)
|
||||
|
||||
enterprise_message = get_dashboard_consent_notification(request, user, course_enrollments)
|
||||
@@ -790,12 +789,13 @@ def student_dashboard(request):
|
||||
'enrollment_message': enrollment_message,
|
||||
'redirect_message': redirect_message,
|
||||
'account_activation_messages': account_activation_messages,
|
||||
'activate_account_message': activate_account_message,
|
||||
'course_enrollments': course_enrollments,
|
||||
'course_entitlements': course_entitlements,
|
||||
'course_entitlement_available_sessions': course_entitlement_available_sessions,
|
||||
'unfulfilled_entitlement_pseudo_sessions': unfulfilled_entitlement_pseudo_sessions,
|
||||
'course_optouts': course_optouts,
|
||||
'banner_account_activation_message': banner_account_activation_message,
|
||||
'sidebar_account_activation_message': sidebar_account_activation_message,
|
||||
'staff_access': staff_access,
|
||||
'errored_courses': errored_courses,
|
||||
'show_courseware_links_for': show_courseware_links_for,
|
||||
@@ -825,9 +825,6 @@ def student_dashboard(request):
|
||||
'disable_courseware_js': True,
|
||||
'display_course_modes_on_dashboard': enable_verified_certificates and display_course_modes_on_dashboard,
|
||||
'display_sidebar_on_dashboard': display_sidebar_on_dashboard,
|
||||
'display_sidebar_account_activation_message': not(user.is_active or hide_dashboard_courses_until_activated),
|
||||
'display_dashboard_courses': (user.is_active or not hide_dashboard_courses_until_activated),
|
||||
'empty_dashboard_message': empty_dashboard_message,
|
||||
}
|
||||
|
||||
if ecommerce_service.is_enabled(request.user):
|
||||
|
||||
Reference in New Issue
Block a user