Commit f2abce53 by Nimisha Asthagiri

request-cache grades feature flag to avoid 400+ memcached hits

parent 744fea8a
...@@ -6,6 +6,7 @@ from config_models.models import ConfigurationModel ...@@ -6,6 +6,7 @@ from config_models.models import ConfigurationModel
from django.conf import settings from django.conf import settings
from django.db.models import BooleanField from django.db.models import BooleanField
from openedx.core.djangoapps.xmodule_django.models import CourseKeyField from openedx.core.djangoapps.xmodule_django.models import CourseKeyField
from request_cache.middleware import request_cached
class PersistentGradesEnabledFlag(ConfigurationModel): class PersistentGradesEnabledFlag(ConfigurationModel):
...@@ -19,6 +20,7 @@ class PersistentGradesEnabledFlag(ConfigurationModel): ...@@ -19,6 +20,7 @@ class PersistentGradesEnabledFlag(ConfigurationModel):
enabled_for_all_courses = BooleanField(default=False) enabled_for_all_courses = BooleanField(default=False)
@classmethod @classmethod
@request_cached
def feature_enabled(cls, course_id=None): def feature_enabled(cls, course_id=None):
""" """
Looks at the currently active configuration model to determine whether Looks at the currently active configuration model to determine whether
......
...@@ -2,8 +2,9 @@ ...@@ -2,8 +2,9 @@
Provides helper functions for tests that want Provides helper functions for tests that want
to configure flags related to persistent grading. to configure flags related to persistent grading.
""" """
from lms.djangoapps.grades.config.models import PersistentGradesEnabledFlag, CoursePersistentGradesFlag
from contextlib import contextmanager from contextlib import contextmanager
from lms.djangoapps.grades.config.models import PersistentGradesEnabledFlag, CoursePersistentGradesFlag
from request_cache.middleware import RequestCache
@contextmanager @contextmanager
...@@ -18,6 +19,7 @@ def persistent_grades_feature_flags( ...@@ -18,6 +19,7 @@ def persistent_grades_feature_flags(
as they need to set the global setting and the course-specific as they need to set the global setting and the course-specific
setting for a single course. setting for a single course.
""" """
RequestCache.clear_request_cache()
PersistentGradesEnabledFlag.objects.create(enabled=global_flag, enabled_for_all_courses=enabled_for_all_courses) PersistentGradesEnabledFlag.objects.create(enabled=global_flag, enabled_for_all_courses=enabled_for_all_courses)
if course_id: if course_id:
CoursePersistentGradesFlag.objects.create(course_id=course_id, enabled=enabled_for_course) CoursePersistentGradesFlag.objects.create(course_id=course_id, enabled=enabled_for_course)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment