Merge pull request #19220 from edx/Educator-3660-add-waffle-disable-quality
Add waffle flag to disable quality for course-v1:HarvardX+SW12.1x+2016
This commit is contained in:
@@ -8,6 +8,9 @@ from rest_framework.response import Response
|
||||
|
||||
from contentstore.views.item import highlights_setting
|
||||
from edxval.api import get_videos_for_course
|
||||
from openedx.core.djangoapps.waffle_utils import (
|
||||
CourseWaffleFlag, WaffleFlagNamespace
|
||||
)
|
||||
from openedx.core.lib.cache_utils import request_cached
|
||||
from openedx.core.lib.api.view_utils import DeveloperErrorViewMixin, view_auth_classes
|
||||
from openedx.core.lib.graph_traversals import traverse_pre_order
|
||||
@@ -17,6 +20,13 @@ from .utils import get_bool_param, course_author_access_required
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
WAFFLE_FLAG_NAMESPACE = WaffleFlagNamespace(name=u'checklist')
|
||||
DISABLE_COURSE_CHECKLIST_QUALITY = CourseWaffleFlag(
|
||||
waffle_namespace=WAFFLE_FLAG_NAMESPACE,
|
||||
flag_name=u'course_checklist',
|
||||
flag_undefined_default=False
|
||||
)
|
||||
|
||||
|
||||
@view_auth_classes()
|
||||
class CourseQualityView(DeveloperErrorViewMixin, GenericAPIView):
|
||||
@@ -82,14 +92,17 @@ class CourseQualityView(DeveloperErrorViewMixin, GenericAPIView):
|
||||
"""
|
||||
Returns validation information for the given course.
|
||||
"""
|
||||
def _execute_method_and_log_time(func, *args):
|
||||
def _execute_method_and_log_time(log_time, func, *args):
|
||||
"""
|
||||
Call func passed in method with logging the time it took to complete.
|
||||
Logging is temporary, we will remove this once we get required information.
|
||||
"""
|
||||
start_time = time.time()
|
||||
output = func(*args)
|
||||
log.info('[%s] completed in [%f]', func.__name__, (time.time() - start_time))
|
||||
if log_time:
|
||||
start_time = time.time()
|
||||
output = func(*args)
|
||||
log.info('[%s] completed in [%f]', func.__name__, (time.time() - start_time))
|
||||
else:
|
||||
output = func(*args)
|
||||
return output
|
||||
|
||||
all_requested = get_bool_param(request, 'all', False)
|
||||
@@ -98,46 +111,29 @@ class CourseQualityView(DeveloperErrorViewMixin, GenericAPIView):
|
||||
with store.bulk_operations(course_key):
|
||||
course = store.get_course(course_key, depth=self._required_course_depth(request, all_requested))
|
||||
# Added for EDUCATOR-3660
|
||||
course_key_harward = True if course_key == 'course-v1:HarvardX+SW12.1x+2016' else False
|
||||
course_key_harvard = str(course_key) == 'course-v1:HarvardX+SW12.1x+2016'
|
||||
|
||||
response = dict(
|
||||
is_self_paced=course.self_paced,
|
||||
)
|
||||
if get_bool_param(request, 'sections', all_requested):
|
||||
if course_key_harward:
|
||||
if not DISABLE_COURSE_CHECKLIST_QUALITY.is_enabled(course_key):
|
||||
if get_bool_param(request, 'sections', all_requested):
|
||||
response.update(
|
||||
sections=_execute_method_and_log_time(self._sections_quality, course)
|
||||
sections=_execute_method_and_log_time(course_key_harvard, self._sections_quality, course)
|
||||
)
|
||||
else:
|
||||
if get_bool_param(request, 'subsections', all_requested):
|
||||
response.update(
|
||||
sections=self._sections_quality(course)
|
||||
subsections=_execute_method_and_log_time(
|
||||
course_key_harvard, self._subsections_quality, course, request
|
||||
)
|
||||
)
|
||||
if get_bool_param(request, 'subsections', all_requested):
|
||||
if course_key_harward:
|
||||
if get_bool_param(request, 'units', all_requested):
|
||||
response.update(
|
||||
subsections=_execute_method_and_log_time(self._subsections_quality, course, request)
|
||||
units=_execute_method_and_log_time(course_key_harvard, self._units_quality, course, request)
|
||||
)
|
||||
else:
|
||||
if get_bool_param(request, 'videos', all_requested):
|
||||
response.update(
|
||||
subsections=self._subsections_quality(course, request)
|
||||
)
|
||||
if get_bool_param(request, 'units', all_requested):
|
||||
if course_key_harward:
|
||||
response.update(
|
||||
units=_execute_method_and_log_time(self._units_quality, course, request)
|
||||
)
|
||||
else:
|
||||
response.update(
|
||||
units=self._units_quality(course, request)
|
||||
)
|
||||
if get_bool_param(request, 'videos', all_requested):
|
||||
if course_key_harward:
|
||||
response.update(
|
||||
videos=_execute_method_and_log_time(self._videos_quality, course)
|
||||
)
|
||||
else:
|
||||
response.update(
|
||||
videos=self._videos_quality(course)
|
||||
videos=_execute_method_and_log_time(course_key_harvard, self._videos_quality, course)
|
||||
)
|
||||
|
||||
return Response(response)
|
||||
|
||||
Reference in New Issue
Block a user