|
|
|
|
@@ -26,7 +26,7 @@ Longer TODO:
|
|
|
|
|
# Pylint gets confused by path.py instances, which report themselves as class
|
|
|
|
|
# objects. As a result, pylint applies the wrong regex in validating names,
|
|
|
|
|
# and throws spurious errors. Therefore, we disable invalid-name checking.
|
|
|
|
|
# pylint: disable=invalid-name
|
|
|
|
|
# pylint: disable=invalid-name, wrong-import-position
|
|
|
|
|
|
|
|
|
|
import imp
|
|
|
|
|
import sys
|
|
|
|
|
@@ -63,9 +63,10 @@ CC_MERCHANT_NAME = PLATFORM_NAME
|
|
|
|
|
PLATFORM_FACEBOOK_ACCOUNT = "http://www.facebook.com/YourPlatformFacebookAccount"
|
|
|
|
|
PLATFORM_TWITTER_ACCOUNT = "@YourPlatformTwitterAccount"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ENABLE_JASMINE = False
|
|
|
|
|
|
|
|
|
|
LMS_ROOT_URL = "http://localhost:8000"
|
|
|
|
|
LMS_ROOT_URL = 'https://localhost:18000'
|
|
|
|
|
LMS_INTERNAL_ROOT_URL = LMS_ROOT_URL
|
|
|
|
|
LMS_ENROLLMENT_API_PATH = "/api/enrollment/v1/"
|
|
|
|
|
|
|
|
|
|
@@ -441,6 +442,14 @@ GENERATE_PROFILE_SCORES = False
|
|
|
|
|
|
|
|
|
|
# Used with XQueue
|
|
|
|
|
XQUEUE_WAITTIME_BETWEEN_REQUESTS = 5 # seconds
|
|
|
|
|
XQUEUE_INTERFACE = {
|
|
|
|
|
'url': 'http://localhost:18040',
|
|
|
|
|
'basic_auth': ['edx', 'edx'],
|
|
|
|
|
'django_auth': {
|
|
|
|
|
'username': 'lms',
|
|
|
|
|
'password': 'password'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# Used with Email sending
|
|
|
|
|
RETRY_ACTIVATION_EMAIL_MAX_ATTEMPTS = 5
|
|
|
|
|
@@ -453,7 +462,7 @@ PASSWORD_RESET_EMAIL_RATE_LIMIT = {
|
|
|
|
|
COURSE_MESSAGE_ALERT_DURATION_IN_DAYS = 14
|
|
|
|
|
|
|
|
|
|
############################# SET PATH INFORMATION #############################
|
|
|
|
|
PROJECT_ROOT = path(__file__).abspath().dirname().dirname() # /edx-platform/lms
|
|
|
|
|
PROJECT_ROOT = path(__file__).abspath().dirname().dirname() # /edx-platform/lms pylint: disable=no-value-for-parameter
|
|
|
|
|
REPO_ROOT = PROJECT_ROOT.dirname()
|
|
|
|
|
COMMON_ROOT = REPO_ROOT / "common"
|
|
|
|
|
OPENEDX_ROOT = REPO_ROOT / "openedx"
|
|
|
|
|
@@ -489,6 +498,57 @@ DATABASE_ROUTERS = [
|
|
|
|
|
'openedx.core.lib.django_courseware_routers.StudentModuleHistoryExtendedRouter',
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
############################ Cache Configuration ###############################
|
|
|
|
|
|
|
|
|
|
CACHES = {
|
|
|
|
|
'course_structure_cache': {
|
|
|
|
|
'KEY_PREFIX': 'course_structure',
|
|
|
|
|
'KEY_FUNCTION': 'util.memcache.safe_key',
|
|
|
|
|
'LOCATION': ['localhost:11211'],
|
|
|
|
|
'TIMEOUT': '7200',
|
|
|
|
|
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
|
|
|
|
|
},
|
|
|
|
|
'celery': {
|
|
|
|
|
'KEY_PREFIX': 'celery',
|
|
|
|
|
'KEY_FUNCTION': 'util.memcache.safe_key',
|
|
|
|
|
'LOCATION': ['localhost:11211'],
|
|
|
|
|
'TIMEOUT': '7200',
|
|
|
|
|
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
|
|
|
|
|
},
|
|
|
|
|
'mongo_metadata_inheritance': {
|
|
|
|
|
'KEY_PREFIX': 'mongo_metadata_inheritance',
|
|
|
|
|
'KEY_FUNCTION': 'util.memcache.safe_key',
|
|
|
|
|
'LOCATION': ['localhost:11211'],
|
|
|
|
|
'TIMEOUT': 300,
|
|
|
|
|
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
|
|
|
|
|
},
|
|
|
|
|
'staticfiles': {
|
|
|
|
|
'KEY_FUNCTION': 'util.memcache.safe_key',
|
|
|
|
|
'LOCATION': ['localhost:11211'],
|
|
|
|
|
'KEY_PREFIX': 'staticfiles_general',
|
|
|
|
|
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
|
|
|
|
|
},
|
|
|
|
|
'default': {
|
|
|
|
|
'VERSION': '1',
|
|
|
|
|
'KEY_FUNCTION': 'util.memcache.safe_key',
|
|
|
|
|
'LOCATION': ['localhost:11211'],
|
|
|
|
|
'KEY_PREFIX': 'default',
|
|
|
|
|
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
|
|
|
|
|
},
|
|
|
|
|
'configuration': {
|
|
|
|
|
'KEY_FUNCTION': 'util.memcache.safe_key',
|
|
|
|
|
'LOCATION': ['localhost:11211'],
|
|
|
|
|
'KEY_PREFIX': 'configuration',
|
|
|
|
|
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
|
|
|
|
|
},
|
|
|
|
|
'general': {
|
|
|
|
|
'KEY_FUNCTION': 'util.memcache.safe_key',
|
|
|
|
|
'LOCATION': ['localhost:11211'],
|
|
|
|
|
'KEY_PREFIX': 'general',
|
|
|
|
|
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
############################ OpenID Provider ##################################
|
|
|
|
|
OPENID_PROVIDER_TRUSTED_ROOTS = ['cs50.net', '*.cs50.net']
|
|
|
|
|
|
|
|
|
|
@@ -496,7 +556,7 @@ OPENID_PROVIDER_TRUSTED_ROOTS = ['cs50.net', '*.cs50.net']
|
|
|
|
|
|
|
|
|
|
# OpenID Connect issuer ID. Normally the URL of the authentication endpoint.
|
|
|
|
|
|
|
|
|
|
OAUTH_OIDC_ISSUER = 'https:/example.com/oauth2'
|
|
|
|
|
OAUTH_OIDC_ISSUER = 'http://127.0.0.1:8000/oauth2'
|
|
|
|
|
|
|
|
|
|
# OpenID Connect claim handlers
|
|
|
|
|
|
|
|
|
|
@@ -551,6 +611,9 @@ OAUTH2_PROVIDER_APPLICATION_MODEL = 'oauth2_provider.Application'
|
|
|
|
|
# Automatically clean up edx-django-oauth2-provider tokens on use
|
|
|
|
|
OAUTH_DELETE_EXPIRED = True
|
|
|
|
|
OAUTH_ID_TOKEN_EXPIRATION = 60 * 60
|
|
|
|
|
OAUTH_ENFORCE_SECURE = True
|
|
|
|
|
OAUTH_EXPIRE_CONFIDENTIAL_CLIENT_DAYS = 365
|
|
|
|
|
OAUTH_EXPIRE_PUBLIC_CLIENT_DAYS = 30
|
|
|
|
|
|
|
|
|
|
################################## THIRD_PARTY_AUTH CONFIGURATION #############################
|
|
|
|
|
TPA_PROVIDER_BURST_THROTTLE = '10/min'
|
|
|
|
|
@@ -558,7 +621,7 @@ TPA_PROVIDER_SUSTAINED_THROTTLE = '50/hr'
|
|
|
|
|
|
|
|
|
|
################################## TEMPLATE CONFIGURATION #####################################
|
|
|
|
|
# Mako templating
|
|
|
|
|
import tempfile
|
|
|
|
|
import tempfile # pylint: disable=wrong-import-order
|
|
|
|
|
MAKO_MODULE_DIR = os.path.join(tempfile.gettempdir(), 'mako_lms')
|
|
|
|
|
MAKO_TEMPLATE_DIRS_BASE = [
|
|
|
|
|
PROJECT_ROOT / 'templates',
|
|
|
|
|
@@ -699,16 +762,58 @@ DATA_UPLOAD_MAX_NUMBER_FIELDS = None
|
|
|
|
|
STATIC_GRAB = False
|
|
|
|
|
DEV_CONTENT = True
|
|
|
|
|
|
|
|
|
|
# License for serving content in China
|
|
|
|
|
ICP_LICENSE = None
|
|
|
|
|
ICP_LICENSE_INFO = {}
|
|
|
|
|
|
|
|
|
|
ELASTIC_SEARCH_CONFIG = [
|
|
|
|
|
{
|
|
|
|
|
'use_ssl': False,
|
|
|
|
|
'host': 'localhost',
|
|
|
|
|
'port': 9200
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
VIDEO_CDN_URL = {
|
|
|
|
|
'EXAMPLE_COUNTRY_CODE': "http://example.com/edx/video?s3_url="
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
STATIC_ROOT_BASE = '/edx/var/edxapp/staticfiles'
|
|
|
|
|
|
|
|
|
|
LOGGING_ENV = 'sandbox'
|
|
|
|
|
|
|
|
|
|
EDX_ROOT_URL = ''
|
|
|
|
|
|
|
|
|
|
LOGIN_REDIRECT_URL = EDX_ROOT_URL + '/login'
|
|
|
|
|
LOGIN_URL = EDX_ROOT_URL + '/login'
|
|
|
|
|
|
|
|
|
|
PARTNER_SUPPORT_EMAIL = ''
|
|
|
|
|
|
|
|
|
|
CERT_QUEUE = 'certificates'
|
|
|
|
|
|
|
|
|
|
ALTERNATE_WORKER_QUEUES = 'cms'
|
|
|
|
|
|
|
|
|
|
LOCAL_LOGLEVEL = "INFO"
|
|
|
|
|
|
|
|
|
|
LOG_DIR = '/edx/var/log/edx'
|
|
|
|
|
|
|
|
|
|
DATA_DIR = '/edx/app/edxapp'
|
|
|
|
|
|
|
|
|
|
MAINTENANCE_BANNER_TEXT = 'Sample banner message'
|
|
|
|
|
|
|
|
|
|
GIT_REPO_DIR = '/edx/var/edxapp/course_repos'
|
|
|
|
|
|
|
|
|
|
DJFS = {
|
|
|
|
|
'type': 'osfs',
|
|
|
|
|
'directory_root': '/edx/app/edxapp/django-pyfs/static/django-pyfs',
|
|
|
|
|
'url_root': '/static/django-pyfs',
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
### Dark code. Should be enabled in local settings for devel.
|
|
|
|
|
|
|
|
|
|
ENABLE_MULTICOURSE = False # set to False to disable multicourse display (see lib.util.views.edXhome)
|
|
|
|
|
|
|
|
|
|
WIKI_ENABLED = False
|
|
|
|
|
WIKI_ENABLED = True
|
|
|
|
|
|
|
|
|
|
###
|
|
|
|
|
|
|
|
|
|
@@ -817,6 +922,7 @@ EVENT_TRACKING_BACKENDS = {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
EVENT_TRACKING_PROCESSORS = []
|
|
|
|
|
EVENT_TRACKING_SEGMENTIO_EMIT_WHITELIST = []
|
|
|
|
|
|
|
|
|
|
# Backwards compatibility with ENABLE_SQL_TRACKING_LOGS feature flag.
|
|
|
|
|
# In the future, adding the backend to TRACKING_BACKENDS should be enough.
|
|
|
|
|
@@ -842,11 +948,11 @@ TRACKING_SEGMENTIO_SOURCE_MAP = {
|
|
|
|
|
|
|
|
|
|
######################## GOOGLE ANALYTICS ###########################
|
|
|
|
|
GOOGLE_ANALYTICS_ACCOUNT = None
|
|
|
|
|
GOOGLE_SITE_VERIFICATION_ID = None
|
|
|
|
|
GOOGLE_SITE_VERIFICATION_ID = ''
|
|
|
|
|
GOOGLE_ANALYTICS_LINKEDIN = 'GOOGLE_ANALYTICS_LINKEDIN_DUMMY'
|
|
|
|
|
|
|
|
|
|
######################## BRANCH.IO ###########################
|
|
|
|
|
BRANCH_IO_KEY = None
|
|
|
|
|
BRANCH_IO_KEY = ''
|
|
|
|
|
|
|
|
|
|
######################## OPTIMIZELY ###########################
|
|
|
|
|
OPTIMIZELY_PROJECT_ID = None
|
|
|
|
|
@@ -872,10 +978,14 @@ XBLOCK_SELECT_FUNCTION = prefer_xmodules
|
|
|
|
|
# Paths to wrapper methods which should be applied to every XBlock's FieldData.
|
|
|
|
|
XBLOCK_FIELD_DATA_WRAPPERS = ()
|
|
|
|
|
|
|
|
|
|
XBLOCK_FS_STORAGE_BUCKET = None
|
|
|
|
|
XBLOCK_FS_STORAGE_PREFIX = None
|
|
|
|
|
XBLOCK_SETTINGS = {}
|
|
|
|
|
|
|
|
|
|
############# ModuleStore Configuration ##########
|
|
|
|
|
|
|
|
|
|
MODULESTORE_BRANCH = 'published-only'
|
|
|
|
|
CONTENTSTORE = None
|
|
|
|
|
|
|
|
|
|
DOC_STORE_CONFIG = {
|
|
|
|
|
'host': 'localhost',
|
|
|
|
|
'db': 'xmodule',
|
|
|
|
|
@@ -884,6 +994,23 @@ DOC_STORE_CONFIG = {
|
|
|
|
|
# as the collection name for asset metadata.
|
|
|
|
|
# Otherwise, a default collection name will be used.
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CONTENTSTORE = {
|
|
|
|
|
'ENGINE': 'xmodule.contentstore.mongo.MongoContentStore',
|
|
|
|
|
# connection strings are duplicated temporarily for
|
|
|
|
|
# backward compatibility
|
|
|
|
|
'OPTIONS': {
|
|
|
|
|
'db': 'edxapp',
|
|
|
|
|
'host': 'localhost',
|
|
|
|
|
'password': 'edxapp',
|
|
|
|
|
'port': 27017,
|
|
|
|
|
'user': 'edxapp',
|
|
|
|
|
'ssl': False
|
|
|
|
|
},
|
|
|
|
|
'ADDITIONAL_OPTIONS': {},
|
|
|
|
|
'DOC_STORE_CONFIG': DOC_STORE_CONFIG
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
MODULESTORE = {
|
|
|
|
|
'default': {
|
|
|
|
|
'ENGINE': 'xmodule.modulestore.mixed.MixedModuleStore',
|
|
|
|
|
@@ -915,11 +1042,48 @@ MODULESTORE = {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
DATABASES = {
|
|
|
|
|
# edxapp's edxapp-migrate scripts and the edxapp_migrate play
|
|
|
|
|
# will ensure that any DB not named read_replica will be migrated
|
|
|
|
|
# for both the lms and cms.
|
|
|
|
|
'default': {
|
|
|
|
|
'ATOMIC_REQUESTS': True,
|
|
|
|
|
'CONN_MAX_AGE': 0,
|
|
|
|
|
'ENGINE': 'django.db.backends.mysql',
|
|
|
|
|
'HOST': 'localhost',
|
|
|
|
|
'NAME': 'edxapp',
|
|
|
|
|
'OPTIONS': {},
|
|
|
|
|
'PASSWORD': 'password',
|
|
|
|
|
'PORT': '3306',
|
|
|
|
|
'USER': 'edxapp001'
|
|
|
|
|
},
|
|
|
|
|
'read_replica': {
|
|
|
|
|
'CONN_MAX_AGE': 0,
|
|
|
|
|
'ENGINE': 'django.db.backends.mysql',
|
|
|
|
|
'HOST': 'localhost',
|
|
|
|
|
'NAME': 'dxapp',
|
|
|
|
|
'OPTIONS': {},
|
|
|
|
|
'PASSWORD': 'password',
|
|
|
|
|
'PORT': '3306',
|
|
|
|
|
'USER': 'edxapp001'
|
|
|
|
|
},
|
|
|
|
|
'student_module_history': {
|
|
|
|
|
'CONN_MAX_AGE': 0,
|
|
|
|
|
'ENGINE': 'django.db.backends.mysql',
|
|
|
|
|
'HOST': 'localhost',
|
|
|
|
|
'NAME': 'edxapp_csmh',
|
|
|
|
|
'OPTIONS': {},
|
|
|
|
|
'PASSWORD': 'password',
|
|
|
|
|
'PORT': '3306',
|
|
|
|
|
'USER': 'edxapp'
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#################### Python sandbox ############################################
|
|
|
|
|
|
|
|
|
|
CODE_JAIL = {
|
|
|
|
|
# Path to a sandboxed Python executable. None means don't bother.
|
|
|
|
|
'python_bin': None,
|
|
|
|
|
# from https://github.com/edx/codejail/blob/master/codejail/django_integration.py#L24, '' should be same as None
|
|
|
|
|
'python_bin': '/edx/app/edxapp/venvs/edxapp-sandbox/bin/python',
|
|
|
|
|
# User to run as in the sandbox.
|
|
|
|
|
'user': 'sandbox',
|
|
|
|
|
|
|
|
|
|
@@ -927,6 +1091,12 @@ CODE_JAIL = {
|
|
|
|
|
'limits': {
|
|
|
|
|
# How many CPU seconds can jailed code use?
|
|
|
|
|
'CPU': 1,
|
|
|
|
|
# Limit the memory of the jailed process to something high but not
|
|
|
|
|
# infinite (512MiB in bytes)
|
|
|
|
|
'VMEM': 536870912,
|
|
|
|
|
# Time in seconds that the jailed process has to run.
|
|
|
|
|
'REALTIME': 3,
|
|
|
|
|
'PROXY': 0,
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@@ -947,18 +1117,32 @@ USE_TZ = True
|
|
|
|
|
SESSION_COOKIE_SECURE = False
|
|
|
|
|
SESSION_SAVE_EVERY_REQUEST = False
|
|
|
|
|
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer'
|
|
|
|
|
SESSION_COOKIE_DOMAIN = ""
|
|
|
|
|
SESSION_COOKIE_NAME = 'sessionid'
|
|
|
|
|
|
|
|
|
|
# CMS base
|
|
|
|
|
CMS_BASE = 'localhost:8001'
|
|
|
|
|
CMS_BASE = 'localhost:18010'
|
|
|
|
|
|
|
|
|
|
# LMS base
|
|
|
|
|
LMS_BASE = 'localhost:18000'
|
|
|
|
|
|
|
|
|
|
# Studio name
|
|
|
|
|
STUDIO_NAME = 'Studio'
|
|
|
|
|
STUDIO_SHORT_NAME = 'Studio'
|
|
|
|
|
|
|
|
|
|
# Site info
|
|
|
|
|
SITE_NAME = "example.com"
|
|
|
|
|
SITE_NAME = "localhost"
|
|
|
|
|
HTTPS = 'on'
|
|
|
|
|
ROOT_URLCONF = 'lms.urls'
|
|
|
|
|
# NOTE: Please set ALLOWED_HOSTS to some sane value, as we do not allow the default '*'
|
|
|
|
|
|
|
|
|
|
# Platform Email
|
|
|
|
|
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
|
|
|
|
|
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
|
|
|
|
|
EMAIL_HOST = 'localhost'
|
|
|
|
|
EMAIL_PORT = 25
|
|
|
|
|
EMAIL_USE_TLS = False
|
|
|
|
|
EMAIL_HOST_USER = ''
|
|
|
|
|
EMAIL_HOST_PASSWORD = ''
|
|
|
|
|
DEFAULT_FROM_EMAIL = 'registration@example.com'
|
|
|
|
|
DEFAULT_FEEDBACK_EMAIL = 'feedback@example.com'
|
|
|
|
|
SERVER_EMAIL = 'devops@example.com'
|
|
|
|
|
@@ -970,7 +1154,7 @@ PRESS_EMAIL = 'press@example.com'
|
|
|
|
|
FINANCE_EMAIL = ''
|
|
|
|
|
|
|
|
|
|
# Platform mailing address
|
|
|
|
|
CONTACT_MAILING_ADDRESS = ''
|
|
|
|
|
CONTACT_MAILING_ADDRESS = 'SET-ME-PLEASE'
|
|
|
|
|
|
|
|
|
|
# Account activation email sender address
|
|
|
|
|
ACTIVATION_EMAIL_FROM_ADDRESS = ''
|
|
|
|
|
@@ -981,6 +1165,7 @@ MANAGERS = ADMINS
|
|
|
|
|
# Static content
|
|
|
|
|
STATIC_URL = '/static/'
|
|
|
|
|
STATIC_ROOT = ENV_ROOT / "staticfiles"
|
|
|
|
|
STATIC_URL_BASE = '/static/'
|
|
|
|
|
|
|
|
|
|
STATICFILES_DIRS = [
|
|
|
|
|
COMMON_ROOT / "static",
|
|
|
|
|
@@ -991,6 +1176,10 @@ STATICFILES_DIRS = [
|
|
|
|
|
FAVICON_PATH = 'images/favicon.ico'
|
|
|
|
|
DEFAULT_COURSE_ABOUT_IMAGE_URL = 'images/pencils.jpg'
|
|
|
|
|
|
|
|
|
|
CAS_SERVER_URL = ""
|
|
|
|
|
CAS_EXTRA_LOGIN_PARAMS = ""
|
|
|
|
|
CAS_ATTRIBUTE_CALLBACK = ""
|
|
|
|
|
|
|
|
|
|
# User-uploaded content
|
|
|
|
|
MEDIA_ROOT = '/edx/var/edxapp/media/'
|
|
|
|
|
MEDIA_URL = '/media/'
|
|
|
|
|
@@ -1102,7 +1291,7 @@ STATICI18N_OUTPUT_DIR = "js/i18n"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Localization strings (e.g. django.po) are under these directories
|
|
|
|
|
def _make_locale_paths(settings):
|
|
|
|
|
def _make_locale_paths(settings): # pylint: disable=missing-docstring
|
|
|
|
|
locale_paths = [settings.REPO_ROOT + '/conf/locale'] # edx-platform/conf/locale/
|
|
|
|
|
if settings.ENABLE_COMPREHENSIVE_THEMING:
|
|
|
|
|
# Add locale paths to settings for comprehensive theming.
|
|
|
|
|
@@ -1125,6 +1314,8 @@ TRANSLATORS_GUIDE = 'https://edx.readthedocs.org/projects/edx-developer-guide/en
|
|
|
|
|
# years). This is only used if DEFAULT_FILE_STORAGE is overriden to use S3
|
|
|
|
|
# in the global settings.py
|
|
|
|
|
AWS_QUERYSTRING_EXPIRE = 10 * 365 * 24 * 60 * 60 # 10 years
|
|
|
|
|
AWS_SES_REGION_NAME = 'us-east-1'
|
|
|
|
|
AWS_SES_REGION_ENDPOINT = 'email.us-east-1.amazonaws.com'
|
|
|
|
|
|
|
|
|
|
################################# SIMPLEWIKI ###################################
|
|
|
|
|
SIMPLE_WIKI_REQUIRE_LOGIN_EDIT = True
|
|
|
|
|
@@ -1151,16 +1342,17 @@ WIKI_LINK_DEFAULT_LEVEL = 2
|
|
|
|
|
FEEDBACK_SUBMISSION_EMAIL = None
|
|
|
|
|
|
|
|
|
|
##### Zendesk #####
|
|
|
|
|
ZENDESK_URL = None
|
|
|
|
|
ZENDESK_USER = None
|
|
|
|
|
ZENDESK_API_KEY = None
|
|
|
|
|
ZENDESK_URL = ''
|
|
|
|
|
ZENDESK_USER = ''
|
|
|
|
|
ZENDESK_API_KEY = ''
|
|
|
|
|
ZENDESK_CUSTOM_FIELDS = {}
|
|
|
|
|
ZENDESK_OAUTH_ACCESS_TOKEN = ''
|
|
|
|
|
|
|
|
|
|
##### EMBARGO #####
|
|
|
|
|
EMBARGO_SITE_REDIRECT_URL = None
|
|
|
|
|
|
|
|
|
|
##### shoppingcart Payment #####
|
|
|
|
|
PAYMENT_SUPPORT_EMAIL = 'payment@example.com'
|
|
|
|
|
PAYMENT_SUPPORT_EMAIL = 'billing@example.com'
|
|
|
|
|
|
|
|
|
|
##### Using cybersource by default #####
|
|
|
|
|
|
|
|
|
|
@@ -1844,7 +2036,7 @@ REQUIRE_JS_PATH_OVERRIDES = {
|
|
|
|
|
'js/student_account/logistration_factory': 'js/student_account/logistration_factory.js',
|
|
|
|
|
'js/courseware/courseware_factory': 'js/courseware/courseware_factory.js',
|
|
|
|
|
'js/groups/views/cohorts_dashboard_factory': 'js/groups/views/cohorts_dashboard_factory.js',
|
|
|
|
|
'js/groups/discussions_management/discussions_dashboard_factory': 'js/discussions_management/views/discussions_dashboard_factory.js',
|
|
|
|
|
'js/groups/discussions_management/discussions_dashboard_factory': 'js/discussions_management/views/discussions_dashboard_factory.js', # pylint: disable=line-too-long
|
|
|
|
|
'draggabilly': 'js/vendor/draggabilly.js',
|
|
|
|
|
'hls': 'common/js/vendor/hls.js'
|
|
|
|
|
}
|
|
|
|
|
@@ -1916,15 +2108,25 @@ CELERY_CREATE_MISSING_QUEUES = True
|
|
|
|
|
CELERY_DEFAULT_QUEUE = DEFAULT_PRIORITY_QUEUE
|
|
|
|
|
CELERY_DEFAULT_ROUTING_KEY = DEFAULT_PRIORITY_QUEUE
|
|
|
|
|
|
|
|
|
|
CELERY_QUEUES = {
|
|
|
|
|
HIGH_PRIORITY_QUEUE: {},
|
|
|
|
|
DEFAULT_PRIORITY_QUEUE: {},
|
|
|
|
|
HIGH_MEM_QUEUE: {},
|
|
|
|
|
}
|
|
|
|
|
CELERY_QUEUES = [
|
|
|
|
|
'edx.lms.core.default',
|
|
|
|
|
'edx.lms.core.high',
|
|
|
|
|
'edx.lms.core.high_mem'
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
# let logging work as configured:
|
|
|
|
|
CELERYD_HIJACK_ROOT_LOGGER = False
|
|
|
|
|
|
|
|
|
|
CELERY_BROKER_VHOST = ''
|
|
|
|
|
CELERY_BROKER_USE_SSL = False
|
|
|
|
|
CELERY_EVENT_QUEUE_TTL = None
|
|
|
|
|
|
|
|
|
|
CELERY_BROKER_TRANSPORT = 'amqp'
|
|
|
|
|
CELERY_BROKER_HOSTNAME = 'localhost'
|
|
|
|
|
CELERY_BROKER_USER = 'celery'
|
|
|
|
|
CELERY_BROKER_PASSWORD = 'celery'
|
|
|
|
|
CELERY_TIMEZONE = 'UTC'
|
|
|
|
|
|
|
|
|
|
################################ Block Structures ###################################
|
|
|
|
|
|
|
|
|
|
BLOCK_STRUCTURES_SETTINGS = dict(
|
|
|
|
|
@@ -1952,7 +2154,7 @@ BLOCK_STRUCTURES_SETTINGS = dict(
|
|
|
|
|
BULK_EMAIL_DEFAULT_FROM_EMAIL = 'no-reply@example.com'
|
|
|
|
|
|
|
|
|
|
# Parameters for breaking down course enrollment into subtasks.
|
|
|
|
|
BULK_EMAIL_EMAILS_PER_TASK = 100
|
|
|
|
|
BULK_EMAIL_EMAILS_PER_TASK = 500
|
|
|
|
|
|
|
|
|
|
# Initial delay used for retrying tasks. Additional retries use
|
|
|
|
|
# longer delays. Value is in seconds.
|
|
|
|
|
@@ -2017,7 +2219,7 @@ YOUTUBE = {
|
|
|
|
|
|
|
|
|
|
'IMAGE_API': 'http://img.youtube.com/vi/{youtube_id}/0.jpg', # /maxresdefault.jpg for 1920*1080
|
|
|
|
|
}
|
|
|
|
|
YOUTUBE_API_KEY = None
|
|
|
|
|
YOUTUBE_API_KEY = 'PUT_YOUR_API_KEY_HERE'
|
|
|
|
|
|
|
|
|
|
################################### APPS ######################################
|
|
|
|
|
|
|
|
|
|
@@ -2316,6 +2518,8 @@ CSRF_COOKIE_AGE = 60 * 60 * 24 * 7 * 52
|
|
|
|
|
# end users
|
|
|
|
|
CSRF_COOKIE_SECURE = False
|
|
|
|
|
CSRF_TRUSTED_ORIGINS = []
|
|
|
|
|
CROSS_DOMAIN_CSRF_COOKIE_DOMAIN = ''
|
|
|
|
|
CROSS_DOMAIN_CSRF_COOKIE_NAME = ''
|
|
|
|
|
|
|
|
|
|
######################### Django Rest Framework ########################
|
|
|
|
|
|
|
|
|
|
@@ -2340,23 +2544,7 @@ EDXMKTG_USER_INFO_COOKIE_NAME = 'edx-user-info'
|
|
|
|
|
EDXMKTG_USER_INFO_COOKIE_VERSION = 1
|
|
|
|
|
|
|
|
|
|
MKTG_URLS = {}
|
|
|
|
|
MKTG_URL_LINK_MAP = {
|
|
|
|
|
'ABOUT': 'about',
|
|
|
|
|
'CONTACT': 'contact',
|
|
|
|
|
'FAQ': 'help',
|
|
|
|
|
'COURSES': 'courses',
|
|
|
|
|
'ROOT': 'root',
|
|
|
|
|
'TOS': 'tos',
|
|
|
|
|
'HONOR': 'honor', # If your site does not have an honor code, simply delete this line.
|
|
|
|
|
'PRIVACY': 'privacy',
|
|
|
|
|
'PRESS': 'press',
|
|
|
|
|
'BLOG': 'blog',
|
|
|
|
|
'DONATE': 'donate',
|
|
|
|
|
'SITEMAP.XML': 'sitemap_xml',
|
|
|
|
|
|
|
|
|
|
# Verified Certificates
|
|
|
|
|
'WHAT_IS_VERIFIED_CERT': 'verified-certificate',
|
|
|
|
|
}
|
|
|
|
|
MKTG_URL_LINK_MAP = {}
|
|
|
|
|
|
|
|
|
|
STATIC_TEMPLATE_VIEW_DEFAULT_FILE_EXTENSION = 'html'
|
|
|
|
|
|
|
|
|
|
@@ -2474,10 +2662,7 @@ SOCIAL_MEDIA_FOOTER_DISPLAY = {
|
|
|
|
|
################# Mobile URLS ##########################
|
|
|
|
|
|
|
|
|
|
# These are URLs to the app store for mobile.
|
|
|
|
|
MOBILE_STORE_URLS = {
|
|
|
|
|
'apple': '#',
|
|
|
|
|
'google': '#'
|
|
|
|
|
}
|
|
|
|
|
MOBILE_STORE_URLS = {}
|
|
|
|
|
|
|
|
|
|
################# Student Verification #################
|
|
|
|
|
VERIFY_STUDENT = {
|
|
|
|
|
@@ -2514,12 +2699,14 @@ if FEATURES.get('ENABLE_CORS_HEADERS'):
|
|
|
|
|
'use-jwt-cookie',
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
CORS_ORIGIN_WHITELIST = []
|
|
|
|
|
CORS_ORIGIN_ALLOW_ALL = False
|
|
|
|
|
# Default cache expiration for the cross-domain proxy HTML page.
|
|
|
|
|
# This is a static page that can be iframed into an external page
|
|
|
|
|
# to simulate cross-domain requests.
|
|
|
|
|
XDOMAIN_PROXY_CACHE_TIMEOUT = 60 * 15
|
|
|
|
|
|
|
|
|
|
LOGIN_REDIRECT_WHITELIST = [CMS_BASE]
|
|
|
|
|
LOGIN_REDIRECT_WHITELIST = []
|
|
|
|
|
|
|
|
|
|
###################### Registration ##################################
|
|
|
|
|
|
|
|
|
|
@@ -2588,17 +2775,24 @@ BADGR_TIMEOUT = 10
|
|
|
|
|
# the ones that contain information other than grades.
|
|
|
|
|
GRADES_DOWNLOAD_ROUTING_KEY = HIGH_MEM_QUEUE
|
|
|
|
|
|
|
|
|
|
POLICY_CHANGE_GRADES_ROUTING_KEY = 'edx.lms.core.default'
|
|
|
|
|
|
|
|
|
|
RECALCULATE_GRADES_ROUTING_KEY = 'edx.lms.core.default'
|
|
|
|
|
|
|
|
|
|
GRADES_DOWNLOAD = {
|
|
|
|
|
'STORAGE_TYPE': 'localfs',
|
|
|
|
|
'BUCKET': 'edx-grades',
|
|
|
|
|
'ROOT_PATH': '/tmp/edx-s3/grades',
|
|
|
|
|
'STORAGE_CLASS': 'django.core.files.storage.FileSystemStorage',
|
|
|
|
|
'STORAGE_KWARGS': {
|
|
|
|
|
'location': '/tmp/edx-s3/grades',
|
|
|
|
|
},
|
|
|
|
|
'STORAGE_TYPE': None,
|
|
|
|
|
'BUCKET': None,
|
|
|
|
|
'ROOT_PATH': None,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
FINANCIAL_REPORTS = {
|
|
|
|
|
'STORAGE_TYPE': 'localfs',
|
|
|
|
|
'BUCKET': 'edx-financial-reports',
|
|
|
|
|
'CUSTOM_DOMAIN': 'edx-financial-reports.s3.amazonaws.com',
|
|
|
|
|
'ROOT_PATH': '/tmp/edx-s3/financial_reports',
|
|
|
|
|
'BUCKET': None,
|
|
|
|
|
'ROOT_PATH': 'sandbox',
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#### Grading policy change-related settings #####
|
|
|
|
|
@@ -2624,13 +2818,17 @@ AUTH_PASSWORD_VALIDATORS = [
|
|
|
|
|
},
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
PASSWORD_POLICY_COMPLIANCE_ROLLOUT_CONFIG = {
|
|
|
|
|
'ENFORCE_COMPLIANCE_ON_LOGIN': False
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
############################ ORA 2 ############################################
|
|
|
|
|
|
|
|
|
|
# By default, don't use a file prefix
|
|
|
|
|
ORA2_FILE_PREFIX = None
|
|
|
|
|
|
|
|
|
|
# Default File Upload Storage bucket and prefix. Used by the FileUpload Service.
|
|
|
|
|
FILE_UPLOAD_STORAGE_BUCKET_NAME = 'edxuploads'
|
|
|
|
|
FILE_UPLOAD_STORAGE_BUCKET_NAME = 'SET-ME-PLEASE (ex. bucket-name)'
|
|
|
|
|
FILE_UPLOAD_STORAGE_PREFIX = 'submissions_attachments'
|
|
|
|
|
|
|
|
|
|
##### ACCOUNT LOCKOUT DEFAULT PARAMETERS #####
|
|
|
|
|
@@ -2657,6 +2855,8 @@ VIDEO_IMAGE_SETTINGS = dict(
|
|
|
|
|
DIRECTORY_PREFIX='video-images/',
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
VIDEO_IMAGE_MAX_AGE = 31536000
|
|
|
|
|
|
|
|
|
|
########################## VIDEO TRANSCRIPTS STORAGE ############################
|
|
|
|
|
|
|
|
|
|
VIDEO_TRANSCRIPTS_SETTINGS = dict(
|
|
|
|
|
@@ -2671,6 +2871,7 @@ VIDEO_TRANSCRIPTS_SETTINGS = dict(
|
|
|
|
|
DIRECTORY_PREFIX='video-transcripts/',
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
VIDEO_TRANSCRIPTS_MAX_AGE = 31536000
|
|
|
|
|
|
|
|
|
|
# Source:
|
|
|
|
|
# http://loc.gov/standards/iso639-2/ISO-639-2_utf-8.txt according to http://en.wikipedia.org/wiki/ISO_639-1
|
|
|
|
|
@@ -2924,6 +3125,8 @@ OPENID_DOMAIN_PREFIX = 'openid:'
|
|
|
|
|
### Analytics API
|
|
|
|
|
ANALYTICS_API_KEY = ""
|
|
|
|
|
ANALYTICS_API_URL = "http://localhost:18100"
|
|
|
|
|
ANALYTICS_DASHBOARD_URL = 'http://localhost:18110/courses'
|
|
|
|
|
ANALYTICS_DASHBOARD_NAME = 'Your Platform Name Here Insights'
|
|
|
|
|
|
|
|
|
|
# REGISTRATION CODES DISPLAY INFORMATION SUBTITUTIONS IN THE INVOICE ATTACHMENT
|
|
|
|
|
INVOICE_CORP_ADDRESS = "Please place your corporate address\nin this configuration"
|
|
|
|
|
@@ -2946,7 +3149,7 @@ COURSE_CATALOG_VISIBILITY_PERMISSION = 'see_exists'
|
|
|
|
|
COURSE_ABOUT_VISIBILITY_PERMISSION = 'see_exists'
|
|
|
|
|
|
|
|
|
|
DEFAULT_COURSE_VISIBILITY_IN_CATALOG = "both"
|
|
|
|
|
DEFAULT_MOBILE_AVAILABLE = True
|
|
|
|
|
DEFAULT_MOBILE_AVAILABLE = False
|
|
|
|
|
|
|
|
|
|
# Enrollment API Cache Timeout
|
|
|
|
|
ENROLLMENT_COURSE_DETAILS_CACHE_TIMEOUT = 60
|
|
|
|
|
@@ -2955,12 +3158,12 @@ ENROLLMENT_COURSE_DETAILS_CACHE_TIMEOUT = 60
|
|
|
|
|
NOTES_DISABLED_TABS = ['course_structure', 'tags']
|
|
|
|
|
|
|
|
|
|
# Configuration used for generating PDF Receipts/Invoices
|
|
|
|
|
PDF_RECEIPT_TAX_ID = 'add here'
|
|
|
|
|
PDF_RECEIPT_FOOTER_TEXT = 'add your own specific footer text here'
|
|
|
|
|
PDF_RECEIPT_DISCLAIMER_TEXT = 'add your own specific disclaimer text here'
|
|
|
|
|
PDF_RECEIPT_BILLING_ADDRESS = 'add your own billing address here with appropriate line feed characters'
|
|
|
|
|
PDF_RECEIPT_TERMS_AND_CONDITIONS = 'add your own terms and conditions'
|
|
|
|
|
PDF_RECEIPT_TAX_ID_LABEL = 'Tax ID'
|
|
|
|
|
PDF_RECEIPT_TAX_ID = '00-0000000'
|
|
|
|
|
PDF_RECEIPT_FOOTER_TEXT = 'Enter your receipt footer text here.'
|
|
|
|
|
PDF_RECEIPT_DISCLAIMER_TEXT = 'ENTER YOUR RECEIPT DISCLAIMER TEXT HERE.'
|
|
|
|
|
PDF_RECEIPT_BILLING_ADDRESS = 'Enter your receipt terms and conditions here.'
|
|
|
|
|
PDF_RECEIPT_TERMS_AND_CONDITIONS = 'Enter your receipt terms and conditions here.'
|
|
|
|
|
PDF_RECEIPT_TAX_ID_LABEL = 'fake Tax ID'
|
|
|
|
|
PDF_RECEIPT_LOGO_PATH = PROJECT_ROOT + '/static/images/openedx-logo-tag.png'
|
|
|
|
|
# Height of the Logo in mm
|
|
|
|
|
PDF_RECEIPT_LOGO_HEIGHT_MM = 12
|
|
|
|
|
@@ -3059,16 +3262,23 @@ SOCIAL_PLATFORMS = {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# E-Commerce API Configuration
|
|
|
|
|
ECOMMERCE_PUBLIC_URL_ROOT = None
|
|
|
|
|
ECOMMERCE_API_URL = None
|
|
|
|
|
ECOMMERCE_PUBLIC_URL_ROOT = 'http://localhost:8002'
|
|
|
|
|
ECOMMERCE_API_URL = 'http://localhost:8002/api/v2'
|
|
|
|
|
ECOMMERCE_API_TIMEOUT = 5
|
|
|
|
|
ECOMMERCE_SERVICE_WORKER_USERNAME = 'ecommerce_worker'
|
|
|
|
|
ECOMMERCE_API_SIGNING_KEY = 'SET-ME-PLEASE'
|
|
|
|
|
|
|
|
|
|
COURSE_CATALOG_API_URL = None
|
|
|
|
|
COURSE_CATALOG_API_URL = 'http://localhost:8008/api/v1'
|
|
|
|
|
|
|
|
|
|
CREDENTIALS_INTERNAL_SERVICE_URL = None
|
|
|
|
|
CREDENTIALS_INTERNAL_SERVICE_URL = 'http://localhost:8005'
|
|
|
|
|
CREDENTIALS_PUBLIC_SERVICE_URL = None
|
|
|
|
|
|
|
|
|
|
JOURNALS_URL_ROOT = 'https://journals-localhost:18000'
|
|
|
|
|
JOURNALS_API_URL = 'https://journals-localhost:18000/api/v1/'
|
|
|
|
|
|
|
|
|
|
COMMENTS_SERVICE_URL = 'http://localhost:18080'
|
|
|
|
|
COMMENTS_SERVICE_KEY = 'password'
|
|
|
|
|
|
|
|
|
|
# Reverification checkpoint name pattern
|
|
|
|
|
CHECKPOINT_PATTERN = r'(?P<checkpoint_name>[^/]+)'
|
|
|
|
|
|
|
|
|
|
@@ -3142,7 +3352,7 @@ CREDIT_PROVIDER_SECRET_KEYS = {}
|
|
|
|
|
CREDIT_PROVIDER_TIMESTAMP_EXPIRATION = 15 * 60
|
|
|
|
|
|
|
|
|
|
# The Help link to the FAQ page about the credit
|
|
|
|
|
CREDIT_HELP_LINK_URL = "#"
|
|
|
|
|
CREDIT_HELP_LINK_URL = "/"
|
|
|
|
|
|
|
|
|
|
# Default domain for the e-mail address associated with users who are created
|
|
|
|
|
# via the LTI Provider feature. Note that the generated e-mail addresses are
|
|
|
|
|
@@ -3218,6 +3428,9 @@ MICROSITE_TEMPLATE_BACKEND = 'microsite_configuration.backends.filebased.Filebas
|
|
|
|
|
# TTL for microsite database template cache
|
|
|
|
|
MICROSITE_DATABASE_TEMPLATE_CACHE_TTL = 5 * 60
|
|
|
|
|
|
|
|
|
|
MICROSITE_ROOT_DIR = '/edx/app/edxapp/edx-microsite'
|
|
|
|
|
MICROSITE_CONFIGURATION = {}
|
|
|
|
|
|
|
|
|
|
################################ Settings for rss_proxy ################################
|
|
|
|
|
|
|
|
|
|
RSS_PROXY_CACHE_TIMEOUT = 3600 # The length of time we cache RSS retrieved from remote URLs in seconds
|
|
|
|
|
@@ -3281,7 +3494,7 @@ PROGRAM_CERTIFICATES_ROUTING_KEY = DEFAULT_PRIORITY_QUEUE
|
|
|
|
|
SITE_ID = 1
|
|
|
|
|
|
|
|
|
|
# dir containing all themes
|
|
|
|
|
COMPREHENSIVE_THEME_DIRS = [REPO_ROOT / "themes"]
|
|
|
|
|
COMPREHENSIVE_THEME_DIRS = []
|
|
|
|
|
|
|
|
|
|
# Theme directory locale paths
|
|
|
|
|
COMPREHENSIVE_THEME_LOCALE_PATHS = []
|
|
|
|
|
@@ -3290,7 +3503,7 @@ COMPREHENSIVE_THEME_LOCALE_PATHS = []
|
|
|
|
|
# set to None if you want to use openedx theme
|
|
|
|
|
DEFAULT_SITE_THEME = None
|
|
|
|
|
|
|
|
|
|
ENABLE_COMPREHENSIVE_THEMING = True
|
|
|
|
|
ENABLE_COMPREHENSIVE_THEMING = False
|
|
|
|
|
|
|
|
|
|
# API access management
|
|
|
|
|
API_ACCESS_MANAGER_EMAIL = 'api-access@example.com'
|
|
|
|
|
@@ -3299,7 +3512,7 @@ API_DOCUMENTATION_URL = 'https://course-catalog-api-guide.readthedocs.io/en/late
|
|
|
|
|
AUTH_DOCUMENTATION_URL = 'https://course-catalog-api-guide.readthedocs.io/en/latest/authentication/index.html'
|
|
|
|
|
|
|
|
|
|
# Affiliate cookie tracking
|
|
|
|
|
AFFILIATE_COOKIE_NAME = 'affiliate_id'
|
|
|
|
|
AFFILIATE_COOKIE_NAME = 'dev_affiliate_id'
|
|
|
|
|
|
|
|
|
|
############## Settings for RedirectMiddleware ###############
|
|
|
|
|
|
|
|
|
|
@@ -3334,13 +3547,14 @@ ENTERPRISE_SUPPORT_URL = ''
|
|
|
|
|
# The default value of this needs to be a 16 character string
|
|
|
|
|
ENTERPRISE_REPORTING_SECRET = '0000000000000000'
|
|
|
|
|
ENTERPRISE_CUSTOMER_CATALOG_DEFAULT_CONTENT_FILTER = {}
|
|
|
|
|
ENTERPRISE_CUSTOMER_SUCCESS_EMAIL = "customersuccess@edx.org"
|
|
|
|
|
|
|
|
|
|
############## ENTERPRISE SERVICE API CLIENT CONFIGURATION ######################
|
|
|
|
|
# The LMS communicates with the Enterprise service via the EdxRestApiClient class
|
|
|
|
|
# These default settings are utilized by the LMS when interacting with the service,
|
|
|
|
|
# and are overridden by the configuration parameter accessors defined in production.py
|
|
|
|
|
|
|
|
|
|
ENTERPRISE_API_URL = LMS_INTERNAL_ROOT_URL + '/enterprise/api/v1/'
|
|
|
|
|
ENTERPRISE_API_URL = 'https://localhost:18000/enterprise/api/v1'
|
|
|
|
|
ENTERPRISE_CONSENT_API_URL = LMS_INTERNAL_ROOT_URL + '/consent/api/v1/'
|
|
|
|
|
ENTERPRISE_SERVICE_WORKER_USERNAME = 'enterprise_worker'
|
|
|
|
|
ENTERPRISE_API_CACHE_TIMEOUT = 3600 # Value is in seconds
|
|
|
|
|
@@ -3388,6 +3602,7 @@ SYSTEM_TO_FEATURE_ROLE_MAPPING = {
|
|
|
|
|
DATA_CONSENT_SHARE_CACHE_TIMEOUT = 8 * 60 * 60 # 8 hours
|
|
|
|
|
|
|
|
|
|
ENTERPRISE_MARKETING_FOOTER_QUERY_PARAMS = {}
|
|
|
|
|
ENTERPRISE_TAGLINE = ''
|
|
|
|
|
|
|
|
|
|
############## Settings for Course Enrollment Modes ######################
|
|
|
|
|
# The min_price key refers to the minimum price allowed for an instance
|
|
|
|
|
@@ -3453,7 +3668,7 @@ COURSEGRAPH_JOB_QUEUE = DEFAULT_PRIORITY_QUEUE
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Initialize to 'unknown', but read from JSON in production.py
|
|
|
|
|
EDX_PLATFORM_REVISION = 'unknown'
|
|
|
|
|
EDX_PLATFORM_REVISION = 'release'
|
|
|
|
|
|
|
|
|
|
############## Settings for Completion API #########################
|
|
|
|
|
|
|
|
|
|
@@ -3513,9 +3728,36 @@ USERNAME_REPLACEMENT_WORKER = "REPLACE WITH VALID USERNAME"
|
|
|
|
|
# modify lms/envs/private.py to give it a non-null value
|
|
|
|
|
WRITABLE_GRADEBOOK_URL = None
|
|
|
|
|
|
|
|
|
|
PROFILE_MICROFRONTEND_URL = "http://profile-mfe/abc/"
|
|
|
|
|
ORDER_HISTORY_MICROFRONTEND_URL = "http://order-history-mfe/"
|
|
|
|
|
ACCOUNT_MICROFRONTEND_URL = "http://account-mfe/"
|
|
|
|
|
PROFILE_MICROFRONTEND_URL = None
|
|
|
|
|
ORDER_HISTORY_MICROFRONTEND_URL = None
|
|
|
|
|
ACCOUNT_MICROFRONTEND_URL = None
|
|
|
|
|
PROGRAM_MANAGER_MICROFRONTEND_URL = None
|
|
|
|
|
|
|
|
|
|
############### Settings for the ace_common plugin #################
|
|
|
|
|
ACE_ENABLED_CHANNELS = ['django_email']
|
|
|
|
|
ACE_ENABLED_POLICIES = ['bulk_email_optout']
|
|
|
|
|
ACE_CHANNEL_SAILTHRU_DEBUG = True
|
|
|
|
|
ACE_CHANNEL_SAILTHRU_TEMPLATE_NAME = None
|
|
|
|
|
ACE_ROUTING_KEY = 'edx.lms.core.default'
|
|
|
|
|
ACE_CHANNEL_DEFAULT_EMAIL = 'django_email'
|
|
|
|
|
ACE_CHANNEL_TRANSACTIONAL_EMAIL = 'django_email'
|
|
|
|
|
|
|
|
|
|
############### Settings swift #####################################
|
|
|
|
|
SWIFT_USERNAME = None
|
|
|
|
|
SWIFT_KEY = None
|
|
|
|
|
SWIFT_TENANT_ID = None
|
|
|
|
|
SWIFT_TENANT_NAME = None
|
|
|
|
|
SWIFT_AUTH_URL = None
|
|
|
|
|
SWIFT_AUTH_VERSION = None
|
|
|
|
|
SWIFT_REGION_NAME = None
|
|
|
|
|
SWIFT_USE_TEMP_URLS = None
|
|
|
|
|
SWIFT_TEMP_URL_KEY = None
|
|
|
|
|
SWIFT_TEMP_URL_DURATION = 1800 # seconds
|
|
|
|
|
|
|
|
|
|
############### Settings for facebook ##############################
|
|
|
|
|
FACEBOOK_APP_ID = 'FACEBOOK_APP_ID'
|
|
|
|
|
FACEBOOK_APP_SECRET = 'FACEBOOK_APP_SECRET'
|
|
|
|
|
FACEBOOK_API_VERSION = 'v2.1'
|
|
|
|
|
|
|
|
|
|
############### Settings for django-fernet-fields ##################
|
|
|
|
|
FERNET_KEYS = [
|
|
|
|
|
@@ -3534,3 +3776,28 @@ SYSTEM_WIDE_ROLE_CLASSES = []
|
|
|
|
|
from openedx.core.djangoapps.plugins import plugin_apps, plugin_settings, constants as plugin_constants
|
|
|
|
|
INSTALLED_APPS.extend(plugin_apps.get_apps(plugin_constants.ProjectType.LMS))
|
|
|
|
|
plugin_settings.add_plugins(__name__, plugin_constants.ProjectType.LMS, plugin_constants.SettingsType.COMMON)
|
|
|
|
|
|
|
|
|
|
DEPRECATED_ADVANCED_COMPONENT_TYPES = []
|
|
|
|
|
|
|
|
|
|
############### Settings for video pipeline ##################
|
|
|
|
|
VIDEO_UPLOAD_PIPELINE = {
|
|
|
|
|
'BUCKET': '',
|
|
|
|
|
'ROOT_PATH': '',
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
############### Settings for django file storage ##################
|
|
|
|
|
DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage'
|
|
|
|
|
|
|
|
|
|
### Proctoring configuration (redirct URLs and keys shared between systems) ####
|
|
|
|
|
PROCTORING_BACKENDS = {
|
|
|
|
|
'DEFAULT': 'null',
|
|
|
|
|
# The null key needs to be quoted because
|
|
|
|
|
# null is a language independent type in YAML
|
|
|
|
|
'null': {}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
############### The SAML private/public key values ################
|
|
|
|
|
SOCIAL_AUTH_SAML_SP_PRIVATE_KEY = ""
|
|
|
|
|
SOCIAL_AUTH_SAML_SP_PUBLIC_CERT = ""
|
|
|
|
|
SOCIAL_AUTH_SAML_SP_PRIVATE_KEY_DICT = {}
|
|
|
|
|
SOCIAL_AUTH_SAML_SP_PUBLIC_CERT_DICT = {}
|
|
|
|
|
|