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.
Comprehensive theming did not work with django templates (used by course wiki).
The reason it didn't work was that in order for the theme to work, theme template folder
has to be added to django template dirs setting *before* django startup.
After django startup, modifying `settings.DEFAULT_TEMPLATE_ENGINE['DIRS']` has no effect,
because at that point the template engine is already initialized with a copy of the
template dirs list.
Instead of running the theme startup code as an autostartup hook, we manually run it
*before* `django.setup()`. This is fine because theme startup code doesn't have to do
anything else besides modifying some settings and doesn't actually need django to be
initialized.
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()