Revert "Revert "saleem-latif/WL-328: Multi-Site Comprehensive Theming""
2. Update COMPREHNSIVE_THEME_DIR to COMPREHENSIVE_THEME_DIRS 3. Update paver commands to support multi theme dirs 4. Updating template loaders 5. Add ENABLE_COMPREHENSIVE_THEMING flag to enable or disable theming via settings 6. Update tests 7. Add backward compatibility for COMPREHEHNSIVE_THEME_DIR
This commit is contained in:
committed by
Saleem Latif
parent
d328328ff4
commit
68312bdd2d
@@ -211,7 +211,14 @@ ASSET_IGNORE_REGEX = ENV_TOKENS.get('ASSET_IGNORE_REGEX', ASSET_IGNORE_REGEX)
|
||||
|
||||
# Theme overrides
|
||||
THEME_NAME = ENV_TOKENS.get('THEME_NAME', None)
|
||||
COMPREHENSIVE_THEME_DIR = path(ENV_TOKENS.get('COMPREHENSIVE_THEME_DIR', COMPREHENSIVE_THEME_DIR))
|
||||
|
||||
# following setting is for backward compatibility
|
||||
if ENV_TOKENS.get('COMPREHENSIVE_THEME_DIR', None):
|
||||
COMPREHENSIVE_THEME_DIR = ENV_TOKENS.get('COMPREHENSIVE_THEME_DIR')
|
||||
|
||||
COMPREHENSIVE_THEME_DIRS = ENV_TOKENS.get('COMPREHENSIVE_THEME_DIRS', COMPREHENSIVE_THEME_DIRS) or []
|
||||
DEFAULT_SITE_THEME = ENV_TOKENS.get('DEFAULT_SITE_THEME', DEFAULT_SITE_THEME)
|
||||
ENABLE_COMPREHENSIVE_THEMING = ENV_TOKENS.get('ENABLE_COMPREHENSIVE_THEMING', ENABLE_COMPREHENSIVE_THEMING)
|
||||
|
||||
#Timezone overrides
|
||||
TIME_ZONE = ENV_TOKENS.get('TIME_ZONE', TIME_ZONE)
|
||||
|
||||
@@ -59,9 +59,9 @@ STATIC_URL = "/static/"
|
||||
STATICFILES_FINDERS = (
|
||||
'django.contrib.staticfiles.finders.FileSystemFinder',
|
||||
)
|
||||
STATICFILES_DIRS = (
|
||||
STATICFILES_DIRS = [
|
||||
(TEST_ROOT / "staticfiles" / "cms").abspath(),
|
||||
)
|
||||
]
|
||||
|
||||
# Silence noisy logs
|
||||
import logging
|
||||
|
||||
@@ -47,7 +47,7 @@ import lms.envs.common
|
||||
from lms.envs.common import (
|
||||
USE_TZ, TECH_SUPPORT_EMAIL, PLATFORM_NAME, BUGS_EMAIL, DOC_STORE_CONFIG, DATA_DIR, ALL_LANGUAGES, WIKI_ENABLED,
|
||||
update_module_store_settings, ASSET_IGNORE_REGEX, COPYRIGHT_YEAR,
|
||||
PARENTAL_CONSENT_AGE_LIMIT, COMPREHENSIVE_THEME_DIR, REGISTRATION_EMAIL_PATTERNS_ALLOWED,
|
||||
PARENTAL_CONSENT_AGE_LIMIT, COMPREHENSIVE_THEME_DIRS, REGISTRATION_EMAIL_PATTERNS_ALLOWED,
|
||||
# The following PROFILE_IMAGE_* settings are included as they are
|
||||
# indirectly accessed through the email opt-in API, which is
|
||||
# technically accessible through the CMS via legacy URLs.
|
||||
@@ -61,7 +61,20 @@ from lms.envs.common import (
|
||||
# Django REST framework configuration
|
||||
REST_FRAMEWORK,
|
||||
|
||||
STATICI18N_OUTPUT_DIR
|
||||
STATICI18N_OUTPUT_DIR,
|
||||
|
||||
# Theme to use when no site or site theme is defined,
|
||||
DEFAULT_SITE_THEME,
|
||||
|
||||
# Default site to use if no site exists matching request headers
|
||||
SITE_ID,
|
||||
|
||||
# Enable or disable theming
|
||||
ENABLE_COMPREHENSIVE_THEMING,
|
||||
|
||||
# constants for redirects app
|
||||
REDIRECT_CACHE_TIMEOUT,
|
||||
REDIRECT_CACHE_KEY_PREFIX,
|
||||
)
|
||||
from path import Path as path
|
||||
from warnings import simplefilter
|
||||
@@ -318,6 +331,7 @@ MIDDLEWARE_CLASSES = (
|
||||
'django.middleware.cache.UpdateCacheMiddleware',
|
||||
'django.middleware.common.CommonMiddleware',
|
||||
'django.middleware.csrf.CsrfViewMiddleware',
|
||||
'django.contrib.sites.middleware.CurrentSiteMiddleware',
|
||||
|
||||
# Instead of SessionMiddleware, we use a more secure version
|
||||
# 'django.contrib.sessions.middleware.SessionMiddleware',
|
||||
@@ -356,6 +370,8 @@ MIDDLEWARE_CLASSES = (
|
||||
# for expiring inactive sessions
|
||||
'session_inactivity_timeout.middleware.SessionInactivityTimeout',
|
||||
|
||||
'openedx.core.djangoapps.theming.middleware.CurrentSiteThemeMiddleware',
|
||||
|
||||
# use Django built in clickjacking protection
|
||||
'django.middleware.clickjacking.XFrameOptionsMiddleware',
|
||||
)
|
||||
@@ -451,7 +467,6 @@ SESSION_SERIALIZER = 'django.contrib.sessions.serializers.PickleSerializer'
|
||||
|
||||
|
||||
# Site info
|
||||
SITE_ID = 1
|
||||
SITE_NAME = "localhost:8001"
|
||||
HTTPS = 'on'
|
||||
ROOT_URLCONF = 'cms.urls'
|
||||
@@ -522,7 +537,7 @@ STATICFILES_STORAGE = 'openedx.core.storage.ProductionStorage'
|
||||
# List of finder classes that know how to find static files in various locations.
|
||||
# Note: the pipeline finder is included to be able to discover optimized files
|
||||
STATICFILES_FINDERS = [
|
||||
'openedx.core.djangoapps.theming.finders.ComprehensiveThemeFinder',
|
||||
'openedx.core.djangoapps.theming.finders.ThemeFilesFinder',
|
||||
'django.contrib.staticfiles.finders.FileSystemFinder',
|
||||
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
|
||||
'openedx.core.lib.xblock_pipeline.finder.XBlockPipelineFinder',
|
||||
|
||||
@@ -41,7 +41,7 @@ STATICFILES_STORAGE = 'openedx.core.storage.DevelopmentStorage'
|
||||
|
||||
# Revert to the default set of finders as we don't want the production pipeline
|
||||
STATICFILES_FINDERS = [
|
||||
'openedx.core.djangoapps.theming.finders.ComprehensiveThemeFinder',
|
||||
'openedx.core.djangoapps.theming.finders.ThemeFilesFinder',
|
||||
'django.contrib.staticfiles.finders.FileSystemFinder',
|
||||
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
|
||||
]
|
||||
|
||||
@@ -41,6 +41,6 @@ STATIC_URL = "/static/"
|
||||
STATICFILES_FINDERS = (
|
||||
'django.contrib.staticfiles.finders.FileSystemFinder',
|
||||
)
|
||||
STATICFILES_DIRS = (
|
||||
STATICFILES_DIRS = [
|
||||
(TEST_ROOT / "staticfiles" / "cms").abspath(),
|
||||
)
|
||||
]
|
||||
|
||||
@@ -34,6 +34,7 @@ from lms.envs.test import (
|
||||
DEFAULT_FILE_STORAGE,
|
||||
MEDIA_ROOT,
|
||||
MEDIA_URL,
|
||||
COMPREHENSIVE_THEME_DIRS,
|
||||
)
|
||||
|
||||
# mongo connection settings
|
||||
@@ -285,6 +286,8 @@ MICROSITE_CONFIGURATION = {
|
||||
MICROSITE_TEST_HOSTNAME = 'testmicrosite.testserver'
|
||||
MICROSITE_LOGISTRATION_HOSTNAME = 'logistration.testserver'
|
||||
|
||||
TEST_THEME = COMMON_ROOT / "test" / "test-theme"
|
||||
|
||||
# For consistency in user-experience, keep the value of this setting in sync with
|
||||
# the one in lms/envs/test.py
|
||||
FEATURES['ENABLE_DISCUSSION_SERVICE'] = False
|
||||
|
||||
@@ -18,7 +18,8 @@ from openedx.core.lib.xblock_utils import xblock_local_resource_url
|
||||
import xmodule.x_module
|
||||
import cms.lib.xblock.runtime
|
||||
|
||||
from openedx.core.djangoapps.theming.core import enable_comprehensive_theme
|
||||
from openedx.core.djangoapps.theming.core import enable_theming
|
||||
from openedx.core.djangoapps.theming.helpers import is_comprehensive_theming_enabled
|
||||
|
||||
|
||||
def run():
|
||||
@@ -30,8 +31,8 @@ def run():
|
||||
|
||||
# Comprehensive theming needs to be set up before django startup,
|
||||
# because modifying django template paths after startup has no effect.
|
||||
if settings.COMPREHENSIVE_THEME_DIR:
|
||||
enable_comprehensive_theme(settings.COMPREHENSIVE_THEME_DIR)
|
||||
if is_comprehensive_theming_enabled():
|
||||
enable_theming()
|
||||
|
||||
django.setup()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user