Merge pull request #20818 from edx/nadeem/OPS-4041
Defaults to common.py lms (OPS-4041)
This commit is contained in:
@@ -144,6 +144,7 @@ FEATURES['MILESTONES_APP'] = True
|
||||
|
||||
# Enable oauth authentication, which we test.
|
||||
FEATURES['ENABLE_OAUTH2_PROVIDER'] = True
|
||||
OAUTH_ENFORCE_SECURE = False
|
||||
|
||||
# Enable pre-requisite course
|
||||
FEATURES['ENABLE_PREREQUISITE_COURSES'] = True
|
||||
|
||||
@@ -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 = {}
|
||||
|
||||
@@ -125,6 +125,8 @@ XQUEUE_WAITTIME_BETWEEN_REQUESTS = 5 # seconds
|
||||
MOCK_STAFF_GRADING = True
|
||||
MOCK_PEER_GRADING = True
|
||||
|
||||
COMMENTS_SERVICE_URL = 'http://localhost:4567'
|
||||
|
||||
############################ STATIC FILES #############################
|
||||
|
||||
# TODO (cpennington): We need to figure out how envs/test.py can inject things
|
||||
@@ -261,6 +263,7 @@ OPENID_PROVIDER_TRUSTED_ROOTS = ['*']
|
||||
FEATURES['ENABLE_OAUTH2_PROVIDER'] = True
|
||||
# don't cache courses for testing
|
||||
OIDC_COURSE_HANDLER_CACHE_TIMEOUT = 0
|
||||
OAUTH_ENFORCE_SECURE = False
|
||||
|
||||
########################### External REST APIs #################################
|
||||
FEATURES['ENABLE_MOBILE_REST_API'] = True
|
||||
@@ -553,12 +556,14 @@ COURSE_CATALOG_API_URL = 'https://catalog.example.com/api/v1'
|
||||
|
||||
COMPREHENSIVE_THEME_DIRS = [REPO_ROOT / "themes", REPO_ROOT / "common/test"]
|
||||
COMPREHENSIVE_THEME_LOCALE_PATHS = [REPO_ROOT / "themes/conf/locale", ]
|
||||
ENABLE_COMPREHENSIVE_THEMING = True
|
||||
|
||||
LMS_ROOT_URL = "http://localhost:8000"
|
||||
|
||||
FRONTEND_LOGOUT_URL = LMS_ROOT_URL + '/logout'
|
||||
|
||||
ECOMMERCE_API_URL = 'https://ecommerce.example.com/api/v2/'
|
||||
ECOMMERCE_PUBLIC_URL_ROOT = None
|
||||
ENTERPRISE_API_URL = 'http://enterprise.example.com/enterprise/api/v1/'
|
||||
ENTERPRISE_CONSENT_API_URL = 'http://enterprise.example.com/consent/api/v1/'
|
||||
|
||||
@@ -616,3 +621,26 @@ derive_settings(__name__)
|
||||
|
||||
############### Settings for edx-rbac ###############
|
||||
SYSTEM_WIDE_ROLE_CLASSES = os.environ.get("SYSTEM_WIDE_ROLE_CLASSES", [])
|
||||
|
||||
###################### Grade Downloads ######################
|
||||
# These keys are used for all of our asynchronous downloadable files, including
|
||||
# the ones that contain information other than grades.
|
||||
|
||||
GRADES_DOWNLOAD = {
|
||||
'STORAGE_TYPE': 'localfs',
|
||||
'BUCKET': 'edx-grades',
|
||||
'ROOT_PATH': '/tmp/edx-s3/grades',
|
||||
}
|
||||
|
||||
# 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'
|
||||
|
||||
PROFILE_MICROFRONTEND_URL = "http://profile-mfe/abc/"
|
||||
ORDER_HISTORY_MICROFRONTEND_URL = "http://order-history-mfe/"
|
||||
ACCOUNT_MICROFRONTEND_URL = "http://account-mfe/"
|
||||
|
||||
Reference in New Issue
Block a user