From 4c6730260422d7cf136c32224ead14443a2b6b0d Mon Sep 17 00:00:00 2001 From: Nimisha Asthagiri Date: Mon, 8 Jan 2018 21:14:08 -0500 Subject: [PATCH] Update grades app to be a Django App Plugin --- lms/djangoapps/grades/apps.py | 18 ++++++++++++++++++ lms/djangoapps/grades/settings/__init__.py | 0 lms/djangoapps/grades/settings/aws.py | 10 ++++++++++ lms/djangoapps/grades/settings/common.py | 6 ++++++ lms/djangoapps/grades/settings/test.py | 3 +++ 5 files changed, 37 insertions(+) create mode 100644 lms/djangoapps/grades/settings/__init__.py create mode 100644 lms/djangoapps/grades/settings/aws.py create mode 100644 lms/djangoapps/grades/settings/common.py create mode 100644 lms/djangoapps/grades/settings/test.py diff --git a/lms/djangoapps/grades/apps.py b/lms/djangoapps/grades/apps.py index 66684d5051..7336695b21 100644 --- a/lms/djangoapps/grades/apps.py +++ b/lms/djangoapps/grades/apps.py @@ -7,6 +7,7 @@ Signal handlers are connected here. from django.apps import AppConfig from django.conf import settings from edx_proctoring.runtime import set_runtime_service +from openedx.core.djangolib.django_plugins import ProjectType, SettingsType, PluginURLs, PluginSettings class GradesConfig(AppConfig): @@ -15,6 +16,23 @@ class GradesConfig(AppConfig): """ name = u'lms.djangoapps.grades' + plugin_app = { + PluginURLs.CONFIG: { + ProjectType.LMS: { + PluginURLs.NAMESPACE: u'grades_api', + PluginURLs.REGEX: u'api/grades/', + PluginURLs.RELATIVE_PATH: u'api.urls', + } + }, + PluginSettings.CONFIG: { + ProjectType.LMS: { + SettingsType.AWS: {PluginSettings.RELATIVE_PATH: u'settings.aws'}, + SettingsType.COMMON: {PluginSettings.RELATIVE_PATH: u'settings.common'}, + SettingsType.TEST: {PluginSettings.RELATIVE_PATH: u'settings.test'}, + } + } + } + def ready(self): """ Connect handlers to recalculate grades. diff --git a/lms/djangoapps/grades/settings/__init__.py b/lms/djangoapps/grades/settings/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/lms/djangoapps/grades/settings/aws.py b/lms/djangoapps/grades/settings/aws.py new file mode 100644 index 0000000000..e929e15313 --- /dev/null +++ b/lms/djangoapps/grades/settings/aws.py @@ -0,0 +1,10 @@ +def plugin_settings(settings): + # Queue to use for updating persistent grades + settings.RECALCULATE_GRADES_ROUTING_KEY = settings.ENV_TOKENS.get( + 'RECALCULATE_GRADES_ROUTING_KEY', settings.LOW_PRIORITY_QUEUE, + ) + + # Queue to use for updating grades due to grading policy change + settings.POLICY_CHANGE_GRADES_ROUTING_KEY = settings.ENV_TOKENS.get( + 'POLICY_CHANGE_GRADES_ROUTING_KEY', settings.LOW_PRIORITY_QUEUE, + ) diff --git a/lms/djangoapps/grades/settings/common.py b/lms/djangoapps/grades/settings/common.py new file mode 100644 index 0000000000..fe198ed2c1 --- /dev/null +++ b/lms/djangoapps/grades/settings/common.py @@ -0,0 +1,6 @@ +def plugin_settings(settings): + # Queue to use for updating persistent grades + settings.RECALCULATE_GRADES_ROUTING_KEY = settings.LOW_PRIORITY_QUEUE + + # Queue to use for updating grades due to grading policy change + settings.POLICY_CHANGE_GRADES_ROUTING_KEY = settings.LOW_PRIORITY_QUEUE diff --git a/lms/djangoapps/grades/settings/test.py b/lms/djangoapps/grades/settings/test.py new file mode 100644 index 0000000000..7837e462fb --- /dev/null +++ b/lms/djangoapps/grades/settings/test.py @@ -0,0 +1,3 @@ +def plugin_settings(settings): + settings.FEATURES['PERSISTENT_GRADES_ENABLED_FOR_ALL_TESTS'] = True + settings.FEATURES['ASSUME_ZERO_GRADE_IF_ABSENT_FOR_ALL_TESTS'] = True