Skip to content
Snippets Groups Projects
Unverified Commit 08098c83 authored by Farhanah Sheets's avatar Farhanah Sheets Committed by GitHub
Browse files

Merge pull request #23953 from edx/revert-23921-kaplan/REV-1136_financial_aid

Revert "Add financial assistance link in course tools"
parents eaf9cd4b d37b333d
No related branches found
Tags release-2020-05-10-18.42
No related merge requests found
......@@ -8,12 +8,11 @@ import datetime
import pytz
from crum import get_current_request
from django.utils.translation import ugettext as _
from django.urls import reverse
from 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 student.models import CourseEnrollment
from openedx.core.djangoapps.content.course_overviews.models import CourseOverview
class VerifiedUpgradeTool(CourseTool):
......@@ -74,63 +73,3 @@ class VerifiedUpgradeTool(CourseTool):
"""
request = get_current_request()
return verified_upgrade_deadline_link(request.user, course_id=course_key)
class FinancialAssistanceTool(CourseTool):
"""
The financial assistance tool.
"""
@classmethod
def analytics_id(cls):
"""
Returns an id to uniquely identify this tool in analytics events.
"""
return 'edx.tool.financial_assistance'
@classmethod
def is_enabled(cls, request, course_key):
"""
Show this link for active courses where financial assistance is available, unless upgrade deadline has passed
"""
now = datetime.datetime.now(pytz.UTC)
try:
course_overview = CourseOverview.objects.get(id=course_key)
except CourseOverview.DoesNotExist:
course_overview = None
# hide the link for archived courses
if course_overview is not None and course_overview.end_date is not None and now > course_overview.end_date:
return False
# hide the link if not logged in or user not enrolled in the course
if not request.user or not CourseEnrollment.is_enrolled(request.user, course_key):
return False
# hide if there's a course_upgrade_enrollment in the past
enrollment = CourseEnrollment.get_enrollment(request.user, course_key)
if enrollment.course_upgrade_deadline:
if now > enrollment.course_upgrade_deadline:
return False
return bool(course_overview.eligible_for_financial_aid)
@classmethod
def title(cls, course_key=None):
"""
Returns the title of this tool.
"""
return _('Financial Assistance')
@classmethod
def icon_classes(cls, course_key=None):
"""
Returns the icon classes needed to represent this tool.
"""
return 'fa fa-info'
@classmethod
def url(cls, course_key):
"""
Returns the URL for this tool for the specified course key.
"""
return reverse('financial_assistance')
......@@ -431,8 +431,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, 44, 3)
self.fetch_course_info_with_queries(self.instructor_paced_course, 43, 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, 44, 3)
self.fetch_course_info_with_queries(self.self_paced_course, 43, 3)
......@@ -12,7 +12,6 @@ from mock import patch
from course_modes.models import CourseMode
from course_modes.tests.factories import CourseModeFactory
from lms.djangoapps.courseware.course_tools import FinancialAssistanceTool
from lms.djangoapps.courseware.course_tools import VerifiedUpgradeTool
from lms.djangoapps.courseware.models import DynamicUpgradeDeadlineConfiguration
from openedx.core.djangoapps.content.course_overviews.models import CourseOverview
......@@ -104,69 +103,3 @@ class VerifiedUpgradeToolTest(SharedModuleStoreTestCase):
self.course_verified_mode.expiration_datetime = None
self.course_verified_mode.save()
self.assertFalse(VerifiedUpgradeTool().is_enabled(self.request, self.course.id))
class FinancialAssistanceToolTest(SharedModuleStoreTestCase):
"""
Tests for FinancialAssistanceTool
"""
@classmethod
def setUpClass(cls):
super(FinancialAssistanceToolTest, cls).setUpClass()
cls.now = datetime.datetime.now(pytz.UTC)
cls.course = CourseFactory.create(
org='edX',
number='test',
display_name='Test Course',
self_paced=True,
)
cls.course_overview = CourseOverview.get_from_id(cls.course.id)
@override_waffle_flag(CREATE_SCHEDULE_WAFFLE_FLAG, True)
def setUp(self):
super(FinancialAssistanceToolTest, self).setUp()
self.course_financial_mode = CourseModeFactory(
course_id=self.course.id,
mode_slug=CourseMode.VERIFIED,
expiration_datetime=self.now + datetime.timedelta(days=1),
)
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
self.enrollment.course_upgrade_deadline = self.now - datetime.timedelta(days=1)
self.enrollment.save()
def test_tool_visible_logged_in(self):
self.course_financial_mode.save()
self.assertTrue(FinancialAssistanceTool().is_enabled(self.request, self.course.id))
def test_tool_not_visible_when_not_eligible(self):
self.course_overview.eligible_for_financial_aid = False
self.course_overview.save()
self.assertFalse(FinancialAssistanceTool().is_enabled(self.request, self.course_overview.id))
def test_tool_not_visible_when_user_not_unrolled(self):
self.course_financial_mode.save()
self.request.user = None
self.assertFalse(FinancialAssistanceTool().is_enabled(self.request, self.course.id))
# mock the response from get_enrollment to use enrollment with course_upgrade_deadline in the past
@patch('lms.djangoapps.courseware.course_tools.CourseEnrollment.get_enrollment')
def test_not_visible_when_upgrade_deadline_has_passed(self, get_enrollment_mock):
get_enrollment_mock.return_value = self.enrollment
self.assertFalse(FinancialAssistanceTool().is_enabled(self.request, self.course.id))
def test_tool_not_visible_when_end_date_passed(self):
self.course_overview.end_date = self.now - datetime.timedelta(days=30)
self.course_overview.save()
self.assertFalse(FinancialAssistanceTool().is_enabled(self.request, self.course_overview.id))
......@@ -61,9 +61,6 @@ update_module_store_settings(
PLATFORM_NAME = ugettext_lazy(u"édX")
PLATFORM_DESCRIPTION = ugettext_lazy(u"Open édX Platform")
################################ FEATURE FLAGS ################################
FEATURES['ENABLE_FINANCIAL_ASSISTANCE_FORM'] = True
############################ STATIC FILES #############################
# Serve static files at /static directly from the staticfiles directory under test root
......
......@@ -219,7 +219,7 @@ class TestCourseHomePage(CourseHomePageTestCase):
# Fetch the view and verify the query counts
# TODO: decrease query count as part of REVO-28
with self.assertNumQueries(75, table_blacklist=QUERY_COUNT_TABLE_BLACKLIST):
with self.assertNumQueries(74, table_blacklist=QUERY_COUNT_TABLE_BLACKLIST):
with check_mongo_calls(4):
url = course_home_url(self.course)
self.client.get(url)
......
......@@ -42,7 +42,6 @@ setup(
"course_updates = openedx.features.course_experience.plugins:CourseUpdatesTool",
"course_reviews = openedx.features.course_experience.plugins:CourseReviewsTool",
"verified_upgrade = lms.djangoapps.courseware.course_tools:VerifiedUpgradeTool",
"financial_assistance = lms.djangoapps.courseware.course_tools:FinancialAssistanceTool",
],
"openedx.user_partition_scheme": [
"random = openedx.core.djangoapps.user_api.partition_schemes:RandomUserPartitionScheme",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment