diff --git a/lms/djangoapps/courseware/course_tools.py b/lms/djangoapps/courseware/course_tools.py index 6a17374c9f..ff567c0f7b 100644 --- a/lms/djangoapps/courseware/course_tools.py +++ b/lms/djangoapps/courseware/course_tools.py @@ -1,82 +1,20 @@ """ -Platform plugins to support a verified upgrade tool. +Platform plugins to support course tools. """ import datetime import pytz -from crum import get_current_request from django.conf import settings from django.utils.translation import ugettext as _ from django.urls import reverse from common.djangoapps.course_modes.models import CourseMode -from lms.djangoapps.courseware.utils import verified_upgrade_deadline_link from openedx.features.course_experience.course_tools import CourseTool from common.djangoapps.student.models import CourseEnrollment from openedx.core.djangoapps.content.course_overviews.models import CourseOverview -class VerifiedUpgradeTool(CourseTool): - """ - The verified upgrade tool. - """ - @classmethod - def analytics_id(cls): - """ - Returns an id to uniquely identify this tool in analytics events. - """ - return 'edx.tool.verified_upgrade' - - @classmethod - def is_enabled(cls, request, course_key): - """ - Show this tool to all learners who are eligible to upgrade. - """ - enrollment = CourseEnrollment.get_enrollment(request.user, course_key) - if enrollment is None: - return False - - if enrollment.dynamic_upgrade_deadline is None: - return False - - if not enrollment.is_active: - return False - - if enrollment.mode not in CourseMode.UPSELL_TO_VERIFIED_MODES: - return False - - if enrollment.course_upgrade_deadline is None: - return False - - if datetime.datetime.now(pytz.UTC) >= enrollment.course_upgrade_deadline: - return False - - return True - - @classmethod - def title(cls): # lint-amnesty, pylint: disable=arguments-differ - """ - Returns the title of this tool. - """ - return _('Upgrade to Verified') - - @classmethod - def icon_classes(cls): # lint-amnesty, pylint: disable=arguments-differ - """ - Returns the icon classes needed to represent this tool. - """ - return 'fa fa-certificate' - - @classmethod - def url(cls, course_key): - """ - Returns the URL for this tool for the specified course key. - """ - request = get_current_request() - return verified_upgrade_deadline_link(request.user, course_id=course_key) - - class FinancialAssistanceTool(CourseTool): """ The financial assistance tool. diff --git a/lms/djangoapps/courseware/tests/test_course_info.py b/lms/djangoapps/courseware/tests/test_course_info.py index 5ea0d6f63a..30b9cd6f9b 100644 --- a/lms/djangoapps/courseware/tests/test_course_info.py +++ b/lms/djangoapps/courseware/tests/test_course_info.py @@ -420,8 +420,8 @@ class SelfPacedCourseInfoTestCase(LoginEnrollmentTestCase, SharedModuleStoreTest def test_num_queries_instructor_paced(self): # TODO: decrease query count as part of REVO-28 - self.fetch_course_info_with_queries(self.instructor_paced_course, 43, 3) + self.fetch_course_info_with_queries(self.instructor_paced_course, 42, 3) def test_num_queries_self_paced(self): # TODO: decrease query count as part of REVO-28 - self.fetch_course_info_with_queries(self.self_paced_course, 43, 3) + self.fetch_course_info_with_queries(self.self_paced_course, 42, 3) diff --git a/lms/djangoapps/courseware/tests/test_course_tools.py b/lms/djangoapps/courseware/tests/test_course_tools.py index c057c55b17..04467a90ea 100644 --- a/lms/djangoapps/courseware/tests/test_course_tools.py +++ b/lms/djangoapps/courseware/tests/test_course_tools.py @@ -12,90 +12,14 @@ from django.test import RequestFactory from common.djangoapps.course_modes.models import CourseMode from common.djangoapps.course_modes.tests.factories import CourseModeFactory -from lms.djangoapps.courseware.course_tools import FinancialAssistanceTool, VerifiedUpgradeTool +from lms.djangoapps.courseware.course_tools import FinancialAssistanceTool from lms.djangoapps.courseware.models import DynamicUpgradeDeadlineConfiguration from openedx.core.djangoapps.content.course_overviews.models import CourseOverview -from common.djangoapps.student.tests.factories import CourseEnrollmentFactory, UserFactory +from common.djangoapps.student.tests.factories import CourseEnrollmentFactory from xmodule.modulestore.tests.django_utils import SharedModuleStoreTestCase from xmodule.modulestore.tests.factories import CourseFactory -class VerifiedUpgradeToolTest(SharedModuleStoreTestCase): # lint-amnesty, pylint: disable=missing-class-docstring - - @classmethod - def setUpClass(cls): - super().setUpClass() - cls.now = datetime.datetime.now(pytz.UTC) - - cls.course = CourseFactory.create( - org='edX', - number='test', - display_name='Test Course', - self_paced=True, - start=cls.now - datetime.timedelta(days=30), - ) - cls.course_overview = CourseOverview.get_from_id(cls.course.id) - - def setUp(self): - super().setUp() - - self.course_verified_mode = CourseModeFactory( - course_id=self.course.id, - mode_slug=CourseMode.VERIFIED, - expiration_datetime=self.now + datetime.timedelta(days=30), - ) - - DynamicUpgradeDeadlineConfiguration.objects.create(enabled=True) - - self.request = RequestFactory().request() - crum.set_current_request(self.request) - self.addCleanup(crum.set_current_request, None) - self.enrollment = CourseEnrollmentFactory( - course_id=self.course.id, - mode=CourseMode.AUDIT, - course=self.course_overview, - ) - self.request.user = self.enrollment.user - - def test_tool_visible(self): - assert VerifiedUpgradeTool().is_enabled(self.request, self.course.id) - - def test_not_visible_when_no_enrollment_exists(self): - self.enrollment.delete() - - request = RequestFactory().request() - request.user = UserFactory() - assert not VerifiedUpgradeTool().is_enabled(self.request, self.course.id) - - def test_not_visible_when_using_deadline_from_course_mode(self): - DynamicUpgradeDeadlineConfiguration.objects.create(enabled=False) - assert not VerifiedUpgradeTool().is_enabled(self.request, self.course.id) - - def test_not_visible_when_enrollment_is_inactive(self): - self.enrollment.is_active = False - self.enrollment.save() - assert not VerifiedUpgradeTool().is_enabled(self.request, self.course.id) - - def test_not_visible_when_already_verified(self): - self.enrollment.mode = CourseMode.VERIFIED - self.enrollment.save() - assert not VerifiedUpgradeTool().is_enabled(self.request, self.course.id) - - def test_not_visible_when_no_verified_track(self): - self.course_verified_mode.delete() - assert not VerifiedUpgradeTool().is_enabled(self.request, self.course.id) - - def test_not_visible_when_course_deadline_has_passed(self): - self.course_verified_mode.expiration_datetime = self.now - datetime.timedelta(days=1) - self.course_verified_mode.save() - assert not VerifiedUpgradeTool().is_enabled(self.request, self.course.id) - - def test_not_visible_when_course_mode_has_no_deadline(self): - self.course_verified_mode.expiration_datetime = None - self.course_verified_mode.save() - assert not VerifiedUpgradeTool().is_enabled(self.request, self.course.id) - - class FinancialAssistanceToolTest(SharedModuleStoreTestCase): """ Tests for FinancialAssistanceTool diff --git a/openedx/features/course_experience/templates/course_experience/course-home-fragment.html b/openedx/features/course_experience/templates/course_experience/course-home-fragment.html index 51426fa2b2..7e2713613e 100644 --- a/openedx/features/course_experience/templates/course_experience/course-home-fragment.html +++ b/openedx/features/course_experience/templates/course_experience/course-home-fragment.html @@ -198,7 +198,6 @@ from openedx.features.course_experience.course_tools import HttpMethod var sockLink = $("#sock"); var upgradeDateLink = $("#course_home_dates"); var GreenUpgradeLink = $("#green_upgrade"); - var courseToolsUpgradeLink = $(document.querySelectorAll("[data-analytics-id='edx.tool.verified_upgrade']")); var GreenUpgradeLink = $("#green_upgrade"); var certificateUpsellLink = $("#certificate_upsell"); @@ -238,12 +237,6 @@ from openedx.features.course_experience.course_tools import HttpMethod linkCategory: "green_upgrade" }); - TrackECommerceEvents.trackUpsellClick(courseToolsUpgradeLink, 'course_home_course_tools', { - pageName: "course_home", - linkType: "link", - linkCategory: "(none)" - }); - TrackECommerceEvents.trackUpsellClick(certificateUpsellLink, 'course_home_certificate', { pageName: "course_home", linkType: "link", diff --git a/setup.py b/setup.py index 8039ff20c9..f38685e67b 100644 --- a/setup.py +++ b/setup.py @@ -42,7 +42,6 @@ setup( "calendar_sync_toggle = openedx.features.calendar_sync.plugins:CalendarSyncToggleTool", "course_bookmarks = openedx.features.course_bookmarks.plugins:CourseBookmarksTool", "course_updates = openedx.features.course_experience.plugins:CourseUpdatesTool", - "verified_upgrade = lms.djangoapps.courseware.course_tools:VerifiedUpgradeTool", "financial_assistance = lms.djangoapps.courseware.course_tools:FinancialAssistanceTool", ], "openedx.user_partition_scheme": [