Merge pull request #8942 from mitocw/bdero/import-export-reprise
Public Course Import/Export API (continued)
This commit is contained in:
@@ -138,6 +138,10 @@ DEFAULT_COURSE_ABOUT_IMAGE_URL = ENV_TOKENS.get('DEFAULT_COURSE_ABOUT_IMAGE_URL'
|
||||
MEDIA_ROOT = ENV_TOKENS.get('MEDIA_ROOT', MEDIA_ROOT)
|
||||
MEDIA_URL = ENV_TOKENS.get('MEDIA_URL', MEDIA_URL)
|
||||
|
||||
# GITHUB_REPO_ROOT is the base directory
|
||||
# for course data
|
||||
GITHUB_REPO_ROOT = ENV_TOKENS.get('GITHUB_REPO_ROOT', GITHUB_REPO_ROOT)
|
||||
|
||||
PLATFORM_NAME = ENV_TOKENS.get('PLATFORM_NAME', PLATFORM_NAME)
|
||||
# For displaying on the receipt. At Stanford PLATFORM_NAME != MERCHANT_NAME, but PLATFORM_NAME is a fine default
|
||||
PLATFORM_TWITTER_ACCOUNT = ENV_TOKENS.get('PLATFORM_TWITTER_ACCOUNT', PLATFORM_TWITTER_ACCOUNT)
|
||||
@@ -585,7 +589,14 @@ if FEATURES.get('ENABLE_THIRD_PARTY_AUTH'):
|
||||
|
||||
##### OAUTH2 Provider ##############
|
||||
if FEATURES.get('ENABLE_OAUTH2_PROVIDER'):
|
||||
OAUTH_OIDC_ISSUER = ENV_TOKENS['OAUTH_OIDC_ISSUER']
|
||||
OAUTH_OIDC_ISSUER_PATH = ENV_TOKENS.get('OAUTH_OIDC_ISSUER_PATH', 'oauth2')
|
||||
OAUTH_OIDC_ISSUER = ENV_TOKENS.get(
|
||||
'OAUTH_OIDC_ISSUER',
|
||||
'https://{0}/{1}'.format(
|
||||
SITE_NAME,
|
||||
OAUTH_OIDC_ISSUER_PATH
|
||||
)
|
||||
)
|
||||
OAUTH_ENFORCE_SECURE = ENV_TOKENS.get('OAUTH_ENFORCE_SECURE', True)
|
||||
OAUTH_ENFORCE_CLIENT_SECURE = ENV_TOKENS.get('OAUTH_ENFORCE_CLIENT_SECURE', True)
|
||||
|
||||
|
||||
@@ -400,6 +400,9 @@ FEATURES = {
|
||||
# Credit course API
|
||||
'ENABLE_CREDIT_API': True,
|
||||
|
||||
# Full Course/Library Import/Export API
|
||||
'ENABLE_IMPORT_EXPORT_LMS': False,
|
||||
|
||||
# The block types to disable need to be specified in "x block disable config" in django admin.
|
||||
'ENABLE_DISABLING_XBLOCK_TYPES': True,
|
||||
|
||||
@@ -428,6 +431,7 @@ PROJECT_ROOT = path(__file__).abspath().dirname().dirname() # /edx-platform/lms
|
||||
REPO_ROOT = PROJECT_ROOT.dirname()
|
||||
COMMON_ROOT = REPO_ROOT / "common"
|
||||
ENV_ROOT = REPO_ROOT.dirname() # virtualenv dir /edx-platform is in
|
||||
GITHUB_REPO_ROOT = ENV_ROOT / "data"
|
||||
COURSES_ROOT = ENV_ROOT / "data"
|
||||
|
||||
DATA_DIR = COURSES_ROOT
|
||||
@@ -465,6 +469,7 @@ OPENID_PROVIDER_TRUSTED_ROOTS = ['cs50.net', '*.cs50.net']
|
||||
|
||||
# OpenID Connect issuer ID. Normally the URL of the authentication endpoint.
|
||||
|
||||
OAUTH_OIDC_ISSUER_PATH = 'oauth2'
|
||||
OAUTH_OIDC_ISSUER = 'https:/example.com/oauth2'
|
||||
|
||||
# OpenID Connect claim handlers
|
||||
@@ -587,6 +592,12 @@ COURSE_KEY_PATTERN = r'(?P<course_key_string>[^/+]+(/|\+)[^/+]+(/|\+)[^/?]+)'
|
||||
COURSE_ID_PATTERN = COURSE_KEY_PATTERN.replace('course_key_string', 'course_id')
|
||||
COURSE_KEY_REGEX = COURSE_KEY_PATTERN.replace('P<course_key_string>', ':')
|
||||
|
||||
# Pattern to match a course key or a library key
|
||||
COURSELIKE_KEY_PATTERN = r'(?P<course_key_string>({}|{}))'.format(
|
||||
r'[^/:+]+/[^/:+]+/[^/:+]+',
|
||||
r'[^/:]+:[^/+]+\+[^/+]+(\+[^/]+)?',
|
||||
)
|
||||
|
||||
USAGE_KEY_PATTERN = r'(?P<usage_key_string>(?:i4x://?[^/]+/[^/]+/[^/]+/[^@]+(?:@[^/]+)?)|(?:[^/]+))'
|
||||
ASSET_KEY_PATTERN = r'(?P<asset_key_string>(?:/?c4x(:/)?/[^/]+/[^/]+/[^/]+/[^@]+(?:@[^/]+)?)|(?:[^/]+))'
|
||||
USAGE_ID_PATTERN = r'(?P<usage_id>(?:i4x://?[^/]+/[^/]+/[^/]+/[^@]+(?:@[^/]+)?)|(?:[^/]+))'
|
||||
@@ -1963,6 +1974,9 @@ INSTALLED_APPS = (
|
||||
# Course teams
|
||||
'teams',
|
||||
|
||||
# Import/Export API
|
||||
'openedx.core.djangoapps.import_export',
|
||||
|
||||
'xblock_django',
|
||||
)
|
||||
|
||||
|
||||
@@ -110,7 +110,7 @@ DATA_DIR = COURSES_ROOT
|
||||
|
||||
COMMON_TEST_DATA_ROOT = COMMON_ROOT / "test" / "data"
|
||||
# Where the content data is checked out. This may not exist on jenkins.
|
||||
GITHUB_REPO_ROOT = ENV_ROOT / "data"
|
||||
GITHUB_REPO_ROOT = TEST_ROOT / "data"
|
||||
|
||||
USE_I18N = True
|
||||
LANGUAGE_CODE = 'en' # tests assume they will get English.
|
||||
@@ -532,3 +532,6 @@ AUTHENTICATION_BACKENDS += ('lti_provider.users.LtiBackend',)
|
||||
|
||||
# ORGANIZATIONS
|
||||
FEATURES['ORGANIZATIONS_APP'] = True
|
||||
|
||||
# Enable the Full Course/Library Import/Export API
|
||||
FEATURES['ENABLE_IMPORT_EXPORT_LMS'] = True
|
||||
|
||||
@@ -94,6 +94,12 @@ urlpatterns = (
|
||||
url(r'^api/commerce/', include('commerce.api.urls', namespace='commerce_api')),
|
||||
)
|
||||
|
||||
# Full Course/Library Import/Export API
|
||||
if settings.FEATURES["ENABLE_IMPORT_EXPORT_LMS"]:
|
||||
urlpatterns += (
|
||||
url(r'^api/import_export/v1/', include('openedx.core.djangoapps.import_export.urls')),
|
||||
)
|
||||
|
||||
if settings.FEATURES["ENABLE_COMBINED_LOGIN_REGISTRATION"]:
|
||||
# Backwards compatibility with old URL structure, but serve the new views
|
||||
urlpatterns += (
|
||||
|
||||
Reference in New Issue
Block a user