- Rename escape_json_dumps to dump_js_escaped_json
- Rename escape_js_string to js_escaped_string
- Update js_escaped_string to output empty string for None
- Introduce dump_html_escaped_json
- Move dump_js_escaped_json after the pipe as new best practice
- Introduce additional uses of helpers
- Introduce new djangolib directory and move js_utils
Collectstatic failed in production when comprehensive theme contained custom css files.
This patch fixes that problem by removing ComprehensiveThemeFinder from STATICFILES_FINDERS
and ComprehensiveThemingAware mixin from STATICFILES_STORAGE.
Comprehensive theme static dirs are added to the top of the STATICFILES_DIRS entry,
which means that the default django FilesystemFinder will find theme static files,
and since the theme folder is at the top of STATICFILES_DIRS, theme files will take
precedence over default LMS/CMS static files.
This change means that theme static file URLs are no longer prefixed with themes/<theme-name>/,
but since we currently only support one comprehensive theme at a time, that shouldn't be a problem.
If/when we want to make the choice of a theme dynamic per-request (microsites?), we will have to
bring custom theme finders and storage mixins back, but for now, we don't need them.
Mako filesystem/app_directories loaders already wrap default django template loaders.
Mako loaders delegate the `load_template_source` method to the base loader that
they wrap, so there's no reason to explicitly include the two django loaders in the settings.
This introduces a mechanism to control the time-to-live for an unlocked
course asset, which will allow browsers and intermediate proxies/caches
to cache these course assets, determinstically.
Locked assets, with their nature of requiring authorization, are not
eligible for caching.
Adding the declaration of the settings object to openedx.conf to be able to import it from a nicer location
Resolving quality violations
Merging dicts with the settings definition when they exist in the microsite configuration
Using a cache to improve the perfomance of quering any dictionary in the microsite definition
Ignoring the invalid-name pylint warning since the names must be kept thsi way to stay the same as the ones in django.
Removing the default dict argument as per https://docs.python.org/2/tutorial/controlflow.html#default-argument-values
Extracting the implementation of the microsite to a selectable backend.
Leaving the function startup.enable_microsites for backwards compatibilityy
Adding a database backend
Using a cache to improve the perfomance of quering any dictionary in the microsite definition.
Changed the database backend so that it extends the settings file backend and removed all the unnecessary methods.
Using the backend provider for the get_dict function
some tweeks and some initial unit tests
Using getattr as a function insteal of calling the underlying __getattr__ directly
Adding an ModelAdmin object for the microsite model in the django-admin panel
refactor enable_microsites()
consolidate/refactor some shared code
add config to aws.py and add migration files
fix tests
Changes to get the backends to run after the refactor
add archiving capabilities to microsites. Also make a few notes about performance improvements to make
fix tests
Making the query to find if microsites exist in the database faster
add ORG to microsite mapping tables and some performance improvements
allow for Mako templates to be pulled from the database
fix tests
For the database template backend the uri of the template does not use the filesystem relative path
Fixing pylint violations
Added caching of the templates stored in the database
Fixing pylint errors
fix pylint
Clearing the cache on model save
Fixing pylint errors
rebased and added test coverage
rebased cdodge/microsite-improvements branch with master and added test
coverage
added missing migration
fix quality violations
add more test coverage
mattdrayer: Add microsite_configuration to cms.INSTALLED_APPS
added microsite settings to cms/envs/test.py
run session cookie tests only in LMS
fixed broken tests
putting middleware changes back
Preventing the template_backend to be called on requests which have no microsite
changes to address feedback from mjfrey
changed BaseMicrositeBackend to AbstractBaseMicrositeBackend
changes after feedback from mattdrayer
fixed broken tests and quality violations
Allowing the backend to handle the enable_pre_startup routine
Typos and docstrings
Adressing feedback
Fixing python tests
add comment to explain why we need enable_microsites_pre_startup()
Access tokens last 30 days by default (365 days for confidential
clients). This can be customized with django settings. Here we provide
hooks to inject those settings from a JSON env file.
MA-1955: Allow installations to customize OAuth token expiration times