From 7f3ffcc047915962239ac2c745c9b386c0f10717 Mon Sep 17 00:00:00 2001 From: Gavin Sidebottom Date: Thu, 1 Feb 2018 15:30:06 -0500 Subject: [PATCH] Changed 'bookmarks' django app to follow plugin pattern --- cms/envs/common.py | 3 --- lms/envs/aws.py | 3 --- lms/envs/common.py | 6 ------ lms/urls.py | 5 +---- openedx/core/djangoapps/bookmarks/apps.py | 20 ++++++++++++++++++- .../djangoapps/bookmarks/settings/__init__.py | 0 .../core/djangoapps/bookmarks/settings/aws.py | 6 ++++++ .../djangoapps/bookmarks/settings/common.py | 3 +++ setup.py | 5 ++++- 9 files changed, 33 insertions(+), 18 deletions(-) create mode 100644 openedx/core/djangoapps/bookmarks/settings/__init__.py create mode 100644 openedx/core/djangoapps/bookmarks/settings/aws.py create mode 100644 openedx/core/djangoapps/bookmarks/settings/common.py diff --git a/cms/envs/common.py b/cms/envs/common.py index 0ae4842b64..c8b713f8ac 100644 --- a/cms/envs/common.py +++ b/cms/envs/common.py @@ -981,9 +981,6 @@ INSTALLED_APPS = [ # Monitor the status of services 'openedx.core.djangoapps.service_status', - # Bookmarks - 'openedx.core.djangoapps.bookmarks.apps.BookmarksConfig', - # Video module configs (This will be moved to Video once it becomes an XBlock) 'openedx.core.djangoapps.video_config', diff --git a/lms/envs/aws.py b/lms/envs/aws.py index 972e7d47ed..2d9c9a9427 100644 --- a/lms/envs/aws.py +++ b/lms/envs/aws.py @@ -930,9 +930,6 @@ MICROSITE_DATABASE_TEMPLATE_CACHE_TTL = ENV_TOKENS.get( "MICROSITE_DATABASE_TEMPLATE_CACHE_TTL", MICROSITE_DATABASE_TEMPLATE_CACHE_TTL ) -# Course Content Bookmarks Settings -MAX_BOOKMARKS_PER_COURSE = ENV_TOKENS.get('MAX_BOOKMARKS_PER_COURSE', MAX_BOOKMARKS_PER_COURSE) - # Offset for pk of courseware.StudentModuleHistoryExtended STUDENTMODULEHISTORYEXTENDED_OFFSET = ENV_TOKENS.get( 'STUDENTMODULEHISTORYEXTENDED_OFFSET', STUDENTMODULEHISTORYEXTENDED_OFFSET diff --git a/lms/envs/common.py b/lms/envs/common.py index 3515fd855c..c2adda4c7c 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -2129,9 +2129,6 @@ INSTALLED_APPS = [ # edX Video Pipeline integration 'openedx.core.djangoapps.video_pipeline', - # Bookmarks - 'openedx.core.djangoapps.bookmarks.apps.BookmarksConfig', - # Our courseware 'courseware', 'student', @@ -3293,9 +3290,6 @@ CCX_MAX_STUDENTS_ALLOWED = 200 FINANCIAL_ASSISTANCE_MIN_LENGTH = 800 FINANCIAL_ASSISTANCE_MAX_LENGTH = 2500 -# Course Content Bookmarks Settings -MAX_BOOKMARKS_PER_COURSE = 100 - #### Registration form extension. #### # Only used if combined login/registration is enabled. # This can be used to add fields to the registration page. diff --git a/lms/urls.py b/lms/urls.py index d3a56c9d7f..26994feaab 100644 --- a/lms/urls.py +++ b/lms/urls.py @@ -107,9 +107,6 @@ urlpatterns = [ # User API endpoints url(r'^api/user/', include('openedx.core.djangoapps.user_api.urls')), - # Bookmarks API endpoints - url(r'^api/bookmarks/', include('openedx.core.djangoapps.bookmarks.urls')), - # Profile Images API endpoints url(r'^api/profile_images/', include('openedx.core.djangoapps.profile_images.urls')), @@ -647,7 +644,7 @@ urlpatterns += [ include('openedx.features.course_experience.urls'), ), - # Course bookmarks + # Course bookmarks UI in LMS url( r'^courses/{}/bookmarks/'.format( settings.COURSE_ID_PATTERN, diff --git a/openedx/core/djangoapps/bookmarks/apps.py b/openedx/core/djangoapps/bookmarks/apps.py index b0ab511bf8..5b4bec4353 100644 --- a/openedx/core/djangoapps/bookmarks/apps.py +++ b/openedx/core/djangoapps/bookmarks/apps.py @@ -2,6 +2,8 @@ Configuration for bookmarks Django app """ from django.apps import AppConfig +from django.utils.translation import ugettext_lazy as _ +from openedx.core.djangoapps.plugins.constants import ProjectType, SettingsType, PluginURLs, PluginSettings class BookmarksConfig(AppConfig): @@ -9,7 +11,23 @@ class BookmarksConfig(AppConfig): Configuration class for bookmarks Django app """ name = 'openedx.core.djangoapps.bookmarks' - verbose_name = "Bookmarks" + verbose_name = _("Bookmarks") + + plugin_app = { + PluginURLs.CONFIG: { + ProjectType.LMS: { + PluginURLs.NAMESPACE: u'', + PluginURLs.REGEX: u'api/bookmarks/', + PluginURLs.RELATIVE_PATH: u'urls', + } + }, + PluginSettings.CONFIG: { + ProjectType.LMS: { + SettingsType.AWS: {PluginSettings.RELATIVE_PATH: u'settings.aws'}, + SettingsType.COMMON: {PluginSettings.RELATIVE_PATH: u'settings.common'}, + } + } + } def ready(self): # Register the signals handled by bookmarks. diff --git a/openedx/core/djangoapps/bookmarks/settings/__init__.py b/openedx/core/djangoapps/bookmarks/settings/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/openedx/core/djangoapps/bookmarks/settings/aws.py b/openedx/core/djangoapps/bookmarks/settings/aws.py new file mode 100644 index 0000000000..fb9587a0e0 --- /dev/null +++ b/openedx/core/djangoapps/bookmarks/settings/aws.py @@ -0,0 +1,6 @@ +def plugin_settings(settings): + # Course Content Bookmarks Settings + settings.MAX_BOOKMARKS_PER_COURSE = settings.ENV_TOKENS.get( + 'MAX_BOOKMARKS_PER_COURSE', + settings.MAX_BOOKMARKS_PER_COURSE + ) diff --git a/openedx/core/djangoapps/bookmarks/settings/common.py b/openedx/core/djangoapps/bookmarks/settings/common.py new file mode 100644 index 0000000000..3d6ea979f5 --- /dev/null +++ b/openedx/core/djangoapps/bookmarks/settings/common.py @@ -0,0 +1,3 @@ +def plugin_settings(settings): + # Course Content Bookmarks Settings + settings.MAX_BOOKMARKS_PER_COURSE = 100 diff --git a/setup.py b/setup.py index 1843d2f570..0e9845e2e0 100644 --- a/setup.py +++ b/setup.py @@ -58,7 +58,7 @@ setup( "course_blocks_api = lms.djangoapps.course_api.blocks.transformers.blocks_api:BlocksAPITransformer", "milestones = lms.djangoapps.course_api.blocks.transformers.milestones:MilestonesAndSpecialExamsTransformer", "grades = lms.djangoapps.grades.transformer:GradesTransformer", - "completion = lms.djangoapps.course_api.blocks.transformers.block_completion:BlockCompletionTransformer" + "completion = lms.djangoapps.course_api.blocks.transformers.block_completion:BlockCompletionTransformer", ], "openedx.ace.policy": [ "bulk_email_optout = lms.djangoapps.bulk_email.policies:CourseEmailOptout" @@ -69,12 +69,15 @@ setup( "plugins = openedx.core.djangoapps.plugins.apps:PluginsConfig", "schedules = openedx.core.djangoapps.schedules.apps:SchedulesConfig", "theming = openedx.core.djangoapps.theming.apps:ThemingConfig", + "instructor = lms.djangoapps.instructor.apps:InstructorConfig", + "bookmarks = openedx.core.djangoapps.bookmarks.apps:BookmarksConfig", ], "cms.djangoapp": [ "ace_common = openedx.core.djangoapps.ace_common.apps:AceCommonConfig", "plugins = openedx.core.djangoapps.plugins.apps:PluginsConfig", "schedules = openedx.core.djangoapps.schedules.apps:SchedulesConfig", "theming = openedx.core.djangoapps.theming.apps:ThemingConfig", + "bookmarks = openedx.core.djangoapps.bookmarks.apps:BookmarksConfig", ], } )