Fix the theme compilation issue since juniper (#24990)

Replaces the deprecated CachedFilesMixin with ManifestFilesMixin.
Also sorts xmodules and xblocks js bundles to make theme assets
compilation hashes consistent across different machines.
This commit is contained in:
Pooja Kulkarni
2020-12-11 20:06:31 +05:30
committed by GitHub
parent 5279975483
commit e9cba8c282
3 changed files with 30 additions and 19 deletions

View File

@@ -10,7 +10,7 @@ import re
from django.conf import settings
from django.contrib.staticfiles.finders import find
from django.contrib.staticfiles.storage import CachedFilesMixin, StaticFilesStorage
from django.contrib.staticfiles.storage import ManifestFilesMixin, StaticFilesStorage
from django.utils._os import safe_join
from django.utils.six.moves.urllib.parse import ( # pylint: disable=no-name-in-module, import-error
unquote,
@@ -110,10 +110,10 @@ class ThemeStorage(ThemeMixin, StaticFilesStorage):
pass
class ThemeCachedFilesMixin(CachedFilesMixin):
class ThemeManifestFilesMixin(ManifestFilesMixin):
"""
Comprehensive theme aware CachedFilesMixin.
Main purpose of subclassing CachedFilesMixin is to override the following methods.
Comprehensive theme aware ManifestFilesMixin.
Main purpose of subclassing ManifestFilesMixin is to override the following methods.
1 - _url
2 - url_converter
@@ -177,11 +177,11 @@ class ThemeCachedFilesMixin(CachedFilesMixin):
See the class docstring for more info.
"""
processed_asset_name = self._processed_asset_name(name)
return super(ThemeCachedFilesMixin, self)._url(hashed_name_func, processed_asset_name, force, hashed_files)
return super()._url(hashed_name_func, processed_asset_name, force, hashed_files)
def url_converter(self, name, hashed_files, template=None):
"""
This is an override of url_converter from CachedFilesMixin.
This is an override of url_converter from ManifestFilesMixin.
It changes one line near the end of the method (see the NOTE) in order
to return absolute urls instead of relative urls. This behavior is
necessary for theme overrides, as we get 404 on assets with relative

View File

@@ -12,7 +12,7 @@ from pipeline.storage import NonPackagingMixin
from require.storage import OptimizedFilesMixin
from storages.backends.s3boto3 import S3Boto3Storage
from openedx.core.djangoapps.theming.storage import ThemeCachedFilesMixin, ThemePipelineMixin, ThemeMixin
from openedx.core.djangoapps.theming.storage import ThemeManifestFilesMixin, ThemePipelineMixin, ThemeMixin
class PipelineForgivingMixin(object):
@@ -44,7 +44,7 @@ class ProductionMixin(
PipelineForgivingMixin,
OptimizedFilesMixin,
ThemePipelineMixin,
ThemeCachedFilesMixin,
ThemeManifestFilesMixin,
ThemeMixin,
):
"""