REVEM-239 Add audit access expiration deadline to user-metadata
This commit is contained in:
@@ -239,7 +239,7 @@ class TestFieldOverrideMongoPerformance(FieldOverridePerformanceTestCase):
|
||||
__test__ = True
|
||||
|
||||
# TODO: decrease query count as part of REVO-28
|
||||
QUERY_COUNT = 32
|
||||
QUERY_COUNT = 35
|
||||
TEST_DATA = {
|
||||
# (providers, course_width, enable_ccx, view_as_ccx): (
|
||||
# # of sql queries to default,
|
||||
@@ -268,7 +268,7 @@ class TestFieldOverrideSplitPerformance(FieldOverridePerformanceTestCase):
|
||||
__test__ = True
|
||||
|
||||
# TODO: decrease query count as part of REVO-28
|
||||
QUERY_COUNT = 32
|
||||
QUERY_COUNT = 35
|
||||
|
||||
TEST_DATA = {
|
||||
('no_overrides', 1, True, False): (QUERY_COUNT, 3),
|
||||
|
||||
@@ -430,8 +430,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, 41, 3)
|
||||
self.fetch_course_info_with_queries(self.instructor_paced_course, 44, 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, 41, 3)
|
||||
self.fetch_course_info_with_queries(self.self_paced_course, 44, 3)
|
||||
|
||||
@@ -213,8 +213,8 @@ class IndexQueryTestCase(ModuleStoreTestCase):
|
||||
NUM_PROBLEMS = 20
|
||||
|
||||
@ddt.data(
|
||||
(ModuleStoreEnum.Type.mongo, 10, 176),
|
||||
(ModuleStoreEnum.Type.split, 4, 170),
|
||||
(ModuleStoreEnum.Type.mongo, 10, 179),
|
||||
(ModuleStoreEnum.Type.split, 4, 173),
|
||||
)
|
||||
@ddt.unpack
|
||||
def test_index_query_counts(self, store_type, expected_mongo_query_count, expected_mysql_query_count):
|
||||
@@ -1465,8 +1465,8 @@ class ProgressPageTests(ProgressPageBaseTests):
|
||||
self.assertContains(resp, u"Download Your Certificate")
|
||||
|
||||
@ddt.data(
|
||||
(True, 52),
|
||||
(False, 51)
|
||||
(True, 55),
|
||||
(False, 54)
|
||||
)
|
||||
@ddt.unpack
|
||||
def test_progress_queries_paced_courses(self, self_paced, query_count):
|
||||
@@ -1479,8 +1479,8 @@ class ProgressPageTests(ProgressPageBaseTests):
|
||||
|
||||
@patch.dict(settings.FEATURES, {'ASSUME_ZERO_GRADE_IF_ABSENT_FOR_ALL_TESTS': False})
|
||||
@ddt.data(
|
||||
(False, 60, 40),
|
||||
(True, 51, 35)
|
||||
(False, 63, 43),
|
||||
(True, 54, 38)
|
||||
)
|
||||
@ddt.unpack
|
||||
def test_progress_queries(self, enable_waffle, initial, subsequent):
|
||||
|
||||
@@ -18,6 +18,8 @@ from opaque_keys import InvalidKeyError
|
||||
from openedx.core.djangoapps.catalog.utils import get_programs
|
||||
from openedx.core.djangoapps.django_comment_common.models import Role
|
||||
from openedx.core.djangoapps.waffle_utils import WaffleFlag, WaffleFlagNamespace
|
||||
from openedx.features.course_duration_limits.access import get_user_course_expiration_date
|
||||
from openedx.features.course_duration_limits.models import CourseDurationLimitConfig
|
||||
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
@@ -59,6 +61,23 @@ DASHBOARD_INFO_FLAG = WaffleFlag(experiments_namespace,
|
||||
flag_undefined_default=True)
|
||||
# TODO END: clean up as part of REVEM-199 (End)
|
||||
|
||||
# .. toggle_name: experiments.add_audit_deadline
|
||||
# .. toggle_type: feature_flag
|
||||
# .. toggle_default: True
|
||||
# .. toggle_description: Toggle for adding the current course's audit deadline
|
||||
# .. toggle_category: experiments
|
||||
# .. toggle_use_cases: monitored_rollout
|
||||
# .. toggle_creation_date: 2019-5-7
|
||||
# .. toggle_expiration_date: None
|
||||
# .. toggle_warnings: None
|
||||
# .. toggle_tickets: REVEM-329
|
||||
# .. toggle_status: supported
|
||||
AUDIT_DEADLINE_FLAG = WaffleFlag(
|
||||
waffle_namespace=experiments_namespace,
|
||||
flag_name=u'add_audit_deadline',
|
||||
flag_undefined_default=True
|
||||
)
|
||||
|
||||
|
||||
def check_and_get_upgrade_link_and_date(user, enrollment=None, course=None):
|
||||
"""
|
||||
@@ -343,6 +362,7 @@ def get_experiment_user_metadata_context(course, user):
|
||||
'enrollment_time': enrollment_time,
|
||||
'pacing_type': 'self_paced' if course.self_paced else 'instructor_paced',
|
||||
'upgrade_deadline': upgrade_date,
|
||||
'audit_access_deadline': get_audit_access_expiration(user, course),
|
||||
'course_key': course.id,
|
||||
'course_start': course.start,
|
||||
'course_end': course.end,
|
||||
@@ -358,6 +378,18 @@ def get_experiment_user_metadata_context(course, user):
|
||||
}
|
||||
|
||||
|
||||
def get_audit_access_expiration(user, course):
|
||||
"""
|
||||
Return the expiration date for the user's audit access to this course.
|
||||
"""
|
||||
if AUDIT_DEADLINE_FLAG.is_enabled():
|
||||
if not CourseDurationLimitConfig.enabled_for_enrollment(user=user, course_key=course.id):
|
||||
return None
|
||||
|
||||
return get_user_course_expiration_date(user, course)
|
||||
return None
|
||||
|
||||
|
||||
def get_base_experiment_metadata_context(course, user, enrollment, user_enrollments, audit_enrollments):
|
||||
"""
|
||||
Return a context dictionary with the keys used by dashboard_metadata.html.
|
||||
@@ -381,6 +413,7 @@ def get_base_experiment_metadata_context(course, user, enrollment, user_enrollme
|
||||
'enrollment_time': enrollment_time,
|
||||
'pacing_type': 'self_paced' if course.self_paced else 'instructor_paced',
|
||||
'upgrade_deadline': upgrade_date,
|
||||
'audit_access_deadline': get_audit_access_expiration(user, course),
|
||||
'course_key': course.id,
|
||||
'course_start': course.start,
|
||||
'course_end': course.end,
|
||||
|
||||
@@ -14,6 +14,7 @@ user_metadata = {
|
||||
'enrollment_mode',
|
||||
'upgrade_link',
|
||||
'upgrade_price',
|
||||
'audit_access_deadline',
|
||||
'pacing_type',
|
||||
'has_staff_access',
|
||||
'forum_roles',
|
||||
|
||||
@@ -217,7 +217,7 @@ class TestCourseHomePage(CourseHomePageTestCase):
|
||||
|
||||
# Fetch the view and verify the query counts
|
||||
# TODO: decrease query count as part of REVO-28
|
||||
with self.assertNumQueries(91, table_blacklist=QUERY_COUNT_TABLE_BLACKLIST):
|
||||
with self.assertNumQueries(94, table_blacklist=QUERY_COUNT_TABLE_BLACKLIST):
|
||||
with check_mongo_calls(4):
|
||||
url = course_home_url(self.course)
|
||||
self.client.get(url)
|
||||
|
||||
@@ -134,7 +134,7 @@ class TestCourseUpdatesPage(SharedModuleStoreTestCase):
|
||||
|
||||
# Fetch the view and verify that the query counts haven't changed
|
||||
# TODO: decrease query count as part of REVO-28
|
||||
with self.assertNumQueries(50, table_blacklist=QUERY_COUNT_TABLE_BLACKLIST):
|
||||
with self.assertNumQueries(53, table_blacklist=QUERY_COUNT_TABLE_BLACKLIST):
|
||||
with check_mongo_calls(4):
|
||||
url = course_updates_url(self.course)
|
||||
self.client.get(url)
|
||||
|
||||
Reference in New Issue
Block a user