diff --git a/cms/envs/acceptance.py b/cms/envs/acceptance.py index 92e5deca3e24b5a2b0292ac67304cb48d7b3c6e3..242463aa07eae18a2933731543b9b88aa4df0a19 100644 --- a/cms/envs/acceptance.py +++ b/cms/envs/acceptance.py @@ -127,7 +127,3 @@ YOUTUBE['TEXT_API']['url'] = "127.0.0.1:{0}/test_transcripts_youtube/".format(YO # Generate a random UUID so that different runs of acceptance tests don't break each other import uuid SECRET_KEY = uuid.uuid4().hex - -############################### PIPELINE ####################################### - -PIPELINE_ENABLED = False diff --git a/cms/envs/bok_choy.py b/cms/envs/bok_choy.py index 817eedac89fcf73e198550b064a1cd53320e2965..94f90d46adad6f9a870acea54f057e7180f328f7 100644 --- a/cms/envs/bok_choy.py +++ b/cms/envs/bok_choy.py @@ -62,7 +62,7 @@ DEBUG = True # Note: optimized files for testing are generated with settings from test_static_optimized STATIC_URL = "/static/" STATICFILES_FINDERS = ( - 'django.contrib.staticfiles.finders.FileSystemFinder', + 'staticfiles.finders.FileSystemFinder', ) STATICFILES_DIRS = ( (TEST_ROOT / "staticfiles" / "cms").abspath(), diff --git a/cms/envs/common.py b/cms/envs/common.py index 22aa461c66bd15b0ec1a15fc1522299d4ec0ad61..b1002e122294d6de5f194a56c63f67f0b34fcf50 100644 --- a/cms/envs/common.py +++ b/cms/envs/common.py @@ -456,16 +456,14 @@ EMBARGO_SITE_REDIRECT_URL = None ############################### PIPELINE ####################################### -PIPELINE_ENABLED = True - # Process static files using RequireJS Optimizer STATICFILES_STORAGE = 'openedx.core.lib.django_require.staticstorage.OptimizedCachedRequireJsStorage' # 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 = [ - 'django.contrib.staticfiles.finders.FileSystemFinder', - 'django.contrib.staticfiles.finders.AppDirectoriesFinder', + 'staticfiles.finders.FileSystemFinder', + 'staticfiles.finders.AppDirectoriesFinder', 'pipeline.finders.PipelineFinder', ] @@ -740,7 +738,7 @@ INSTALLED_APPS = ( # For asset pipelining 'edxmako', 'pipeline', - 'django.contrib.staticfiles', + 'staticfiles', 'static_replace', 'require', diff --git a/cms/envs/devstack.py b/cms/envs/devstack.py index db003d239bb76197df2cd26f93dfbf293b729b02..bd003236688fe401615145da57d5cbd0fc448178 100644 --- a/cms/envs/devstack.py +++ b/cms/envs/devstack.py @@ -34,13 +34,12 @@ FEATURES['PREVIEW_LMS_BASE'] = "preview." + LMS_BASE ########################### PIPELINE ################################# # Skip packaging and optimization in development -PIPELINE_ENABLED = False STATICFILES_STORAGE = 'pipeline.storage.NonPackagingPipelineStorage' # Revert to the default set of finders as we don't want the production pipeline STATICFILES_FINDERS = [ - 'django.contrib.staticfiles.finders.FileSystemFinder', - 'django.contrib.staticfiles.finders.AppDirectoriesFinder', + 'staticfiles.finders.FileSystemFinder', + 'staticfiles.finders.AppDirectoriesFinder', ] ############################# ADVANCED COMPONENTS ############################# diff --git a/cms/envs/devstack_optimized.py b/cms/envs/devstack_optimized.py index 2eaa3da79f09ca52be684addc662deba1fe3675c..ae2cdd541bd7207307a3857457b8dda98c7bac83 100644 --- a/cms/envs/devstack_optimized.py +++ b/cms/envs/devstack_optimized.py @@ -36,7 +36,7 @@ REQUIRE_DEBUG = False # Note: optimized files for testing are generated with settings from test_static_optimized STATIC_URL = "/static/" STATICFILES_FINDERS = ( - 'django.contrib.staticfiles.finders.FileSystemFinder', + 'staticfiles.finders.FileSystemFinder', ) STATICFILES_DIRS = ( (TEST_ROOT / "staticfiles" / "cms").abspath(), diff --git a/cms/envs/test.py b/cms/envs/test.py index 5ccf606d43cbc2f604e6f038dd7278ffb5d1a3dd..1d7e585f22e4c8ca568906953e953e1a878c90f5 100644 --- a/cms/envs/test.py +++ b/cms/envs/test.py @@ -92,6 +92,7 @@ STATICFILES_DIRS += [ # http://stackoverflow.com/questions/12816941/unit-testing-with-django-pipeline STATICFILES_STORAGE = 'pipeline.storage.NonPackagingPipelineStorage' STATIC_URL = "/static/" +PIPELINE_ENABLED = False # Update module store settings per defaults for tests update_module_store_settings( diff --git a/cms/envs/test_static_optimized.py b/cms/envs/test_static_optimized.py index 9b66e3cc45cd5a3903f36212871a3f467b005cf0..af030f16338875b6d9c82be644a4544515d46850 100644 --- a/cms/envs/test_static_optimized.py +++ b/cms/envs/test_static_optimized.py @@ -28,8 +28,8 @@ STATICFILES_STORAGE = 'openedx.core.lib.django_require.staticstorage.OptimizedCa # Revert to the default set of finders as we don't want to dynamically pick up files from the pipeline STATICFILES_FINDERS = [ - 'django.contrib.staticfiles.finders.FileSystemFinder', - 'django.contrib.staticfiles.finders.AppDirectoriesFinder', + 'staticfiles.finders.FileSystemFinder', + 'staticfiles.finders.AppDirectoriesFinder', ] # Redirect to the test_root folder within the repo diff --git a/common/djangoapps/pipeline_js/views.py b/common/djangoapps/pipeline_js/views.py index d64f17b1a461cb4d2604cada963974d245f9d148..6cd97159d45bc8abd99fc9c75939cc3d75075693 100644 --- a/common/djangoapps/pipeline_js/views.py +++ b/common/djangoapps/pipeline_js/views.py @@ -4,7 +4,7 @@ Views for returning XModule JS (used by requirejs) import json from django.conf import settings from django.http import HttpResponse -from django.contrib.staticfiles.storage import staticfiles_storage +from staticfiles.storage import staticfiles_storage from edxmako.shortcuts import render_to_response diff --git a/common/djangoapps/pipeline_mako/__init__.py b/common/djangoapps/pipeline_mako/__init__.py index c134da9cb1b041499c1af88cf66601944b8d07cc..97c17b6bf39a7d9dd0d9ba94fa70d49c63e3facb 100644 --- a/common/djangoapps/pipeline_mako/__init__.py +++ b/common/djangoapps/pipeline_mako/__init__.py @@ -14,7 +14,7 @@ def compressed_css(package_name, raw=False): package = packager.package_for('css', package_name) - if settings.PIPELINE_ENABLED: + if settings.PIPELINE: return render_css(package, package.output_filename, raw=raw) else: paths = packager.compile(package.paths) @@ -48,7 +48,7 @@ def compressed_js(package_name): package = packager.package_for('js', package_name) - if settings.PIPELINE_ENABLED: + if settings.PIPELINE: return render_js(package, package.output_filename) else: paths = packager.compile(package.paths) diff --git a/common/djangoapps/pipeline_mako/templates/static_content.html b/common/djangoapps/pipeline_mako/templates/static_content.html index 3b461fa08a1b4013bdc1124c940da73d7cb255b7..f62abf6635f48eae7537978f29235548391356d1 100644 --- a/common/djangoapps/pipeline_mako/templates/static_content.html +++ b/common/djangoapps/pipeline_mako/templates/static_content.html @@ -1,5 +1,5 @@ <%! -from django.contrib.staticfiles.storage import staticfiles_storage +from staticfiles.storage import staticfiles_storage from pipeline_mako import compressed_css, compressed_js from django.utils.translation import get_language_bidi from mako.exceptions import TemplateLookupException diff --git a/common/djangoapps/static_replace/__init__.py b/common/djangoapps/static_replace/__init__.py index b22a1058e1998105210a7a2496b55259443161f0..96db5a73b670b32b0ac53e6539b2a7a3917a4694 100644 --- a/common/djangoapps/static_replace/__init__.py +++ b/common/djangoapps/static_replace/__init__.py @@ -1,8 +1,8 @@ import logging import re -from django.contrib.staticfiles.storage import staticfiles_storage -from django.contrib.staticfiles import finders +from staticfiles.storage import staticfiles_storage +from staticfiles import finders from django.conf import settings from xmodule.modulestore.django import modulestore diff --git a/common/djangoapps/terrain/browser.py b/common/djangoapps/terrain/browser.py index ad3d3e6de94afd9ff379a9a295cd8eeaf2619935..2e9da01e9b7eaf2e924f3fcdaced22eaf726f562 100644 --- a/common/djangoapps/terrain/browser.py +++ b/common/djangoapps/terrain/browser.py @@ -19,6 +19,23 @@ from json import dumps import xmodule.modulestore.django from xmodule.contentstore.django import _CONTENTSTORE +# There is an import issue when using django-staticfiles with lettuce +# Lettuce assumes that we are using django.contrib.staticfiles, +# but the rest of the app assumes we are using django-staticfiles +# (in particular, django-pipeline and our mako implementation) +# To resolve this, we check whether staticfiles is installed, +# then redirect imports for django.contrib.staticfiles +# to use staticfiles. +try: + import staticfiles + import staticfiles.handlers +except ImportError: + pass +else: + import sys + sys.modules['django.contrib.staticfiles'] = staticfiles + sys.modules['django.contrib.staticfiles.handlers'] = staticfiles.handlers + LOGGER = getLogger(__name__) LOGGER.info("Loading the lettuce acceptance testing terrain file...") diff --git a/docs/en_us/platform_api/source/conf.py b/docs/en_us/platform_api/source/conf.py index 018eadbdedc8237b58a9019f2998c89b010d2453..b0d76e467538bed6a9ae8415b0282a979162f686 100644 --- a/docs/en_us/platform_api/source/conf.py +++ b/docs/en_us/platform_api/source/conf.py @@ -84,9 +84,9 @@ MOCK_MODULES = [ 'ratelimitbackend', 'analytics', 'courseware.courses', - 'django.contrib.staticfiles', + 'staticfiles', 'storage', - 'django.contrib.staticfiles.storage', + 'staticfiles.storage', 'content', 'xmodule.contentstore', 'xmodule.contentstore.content', diff --git a/lms/djangoapps/branding/__init__.py b/lms/djangoapps/branding/__init__.py index 04e0d8647801584c46c3c5af7ad5cc14febac91f..efe6c93876fffc804b3a055801261aa63ab34116 100644 --- a/lms/djangoapps/branding/__init__.py +++ b/lms/djangoapps/branding/__init__.py @@ -4,7 +4,7 @@ from django.conf import settings from opaque_keys.edx.locations import SlashSeparatedCourseKey from microsite_configuration import microsite -from django.contrib.staticfiles.storage import staticfiles_storage +from staticfiles.storage import staticfiles_storage def get_visible_courses(): diff --git a/lms/djangoapps/branding/api.py b/lms/djangoapps/branding/api.py index 2cda491b530dc1f9e24f093ee5f5298789240990..c1bd3c0c4ee8bb8289e0544038f5af1e93582531 100644 --- a/lms/djangoapps/branding/api.py +++ b/lms/djangoapps/branding/api.py @@ -17,7 +17,7 @@ import urlparse from django.conf import settings from django.utils.translation import ugettext as _ -from django.contrib.staticfiles.storage import staticfiles_storage +from staticfiles.storage import staticfiles_storage from microsite_configuration import microsite from edxmako.shortcuts import marketing_link diff --git a/lms/djangoapps/branding/views.py b/lms/djangoapps/branding/views.py index 0ec77ac4ec51e1ac00337a04729f995621513b0d..17677bdfbd6d4fcc7091410fe9f3513289cc73eb 100644 --- a/lms/djangoapps/branding/views.py +++ b/lms/djangoapps/branding/views.py @@ -10,7 +10,7 @@ from django.http import HttpResponse, Http404 from django.utils import translation from django.shortcuts import redirect from django.views.decorators.csrf import ensure_csrf_cookie -from django.contrib.staticfiles.storage import staticfiles_storage +from staticfiles.storage import staticfiles_storage from edxmako.shortcuts import render_to_response import student.views diff --git a/lms/djangoapps/verify_student/views.py b/lms/djangoapps/verify_student/views.py index 1861d58c47afe60c8350c47f4308dcd489d1d83d..819d7ecac54439e78809ff76ddf8222ec0fc82d9 100644 --- a/lms/djangoapps/verify_student/views.py +++ b/lms/djangoapps/verify_student/views.py @@ -57,7 +57,7 @@ from verify_student.image import decode_image_data, InvalidImageData from util.json_request import JsonResponse from util.date_utils import get_default_time_display from xmodule.modulestore.django import modulestore -from django.contrib.staticfiles.storage import staticfiles_storage +from staticfiles.storage import staticfiles_storage log = logging.getLogger(__name__) diff --git a/lms/envs/acceptance.py b/lms/envs/acceptance.py index 75f9cbec414f4ae785db6b843404e9a9a696d547..53fae641c564b92b7c7d6e81fe6c39d7372badc4 100644 --- a/lms/envs/acceptance.py +++ b/lms/envs/acceptance.py @@ -190,7 +190,3 @@ if FEATURES.get('ENABLE_COURSEWARE_SEARCH') or \ # Generate a random UUID so that different runs of acceptance tests don't break each other import uuid SECRET_KEY = uuid.uuid4().hex - -############################### PIPELINE ####################################### - -PIPELINE_ENABLED = False diff --git a/lms/envs/aws.py b/lms/envs/aws.py index a3e4313fd21fb61785a4845bc25c43762dd648b9..11522fd729656b9e52390ff2c0315a67dbb5d118 100644 --- a/lms/envs/aws.py +++ b/lms/envs/aws.py @@ -131,6 +131,9 @@ if STATIC_URL_BASE: if not STATIC_URL.endswith("/"): STATIC_URL += "/" +# Enable uglification of JavaScript +PIPELINE_JS_COMPRESSOR = 'pipeline.compressors.uglifyjs.UglifyJSCompressor' + # DEFAULT_COURSE_ABOUT_IMAGE_URL specifies the default image to show for courses that don't provide one DEFAULT_COURSE_ABOUT_IMAGE_URL = ENV_TOKENS.get('DEFAULT_COURSE_ABOUT_IMAGE_URL', DEFAULT_COURSE_ABOUT_IMAGE_URL) diff --git a/lms/envs/bok_choy.py b/lms/envs/bok_choy.py index 898504791e48968d43d1557e8dbef75b59c5e4b7..c4115504e55610429f6f23685a6acf65b9237493 100644 --- a/lms/envs/bok_choy.py +++ b/lms/envs/bok_choy.py @@ -64,7 +64,7 @@ DEBUG = True # Note: optimized files for testing are generated with settings from test_static_optimized STATIC_URL = "/static/" STATICFILES_FINDERS = ( - 'django.contrib.staticfiles.finders.FileSystemFinder', + 'staticfiles.finders.FileSystemFinder', ) STATICFILES_DIRS = ( (TEST_ROOT / "staticfiles" / "lms").abspath(), @@ -74,9 +74,6 @@ DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage' MEDIA_ROOT = TEST_ROOT / "uploads" MEDIA_URL = "/static/uploads/" -# Don't use compression during tests -PIPELINE_JS_COMPRESSOR = None - ################################# CELERY ###################################### CELERY_ALWAYS_EAGER = True diff --git a/lms/envs/common.py b/lms/envs/common.py index 7a5e95f73fc8bdfe69c317ef2d09eeb6a8632c81..3040639818719f40b880fb2f742fc77edb0071e1 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -1210,21 +1210,20 @@ X_FRAME_OPTIONS = 'ALLOW' ############################### PIPELINE ####################################### -PIPELINE_ENABLED = True - # Process static files using RequireJS Optimizer STATICFILES_STORAGE = 'openedx.core.lib.django_require.staticstorage.OptimizedCachedRequireJsStorage' # 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 = [ - 'django.contrib.staticfiles.finders.FileSystemFinder', - 'django.contrib.staticfiles.finders.AppDirectoriesFinder', + 'staticfiles.finders.FileSystemFinder', + 'staticfiles.finders.AppDirectoriesFinder', 'pipeline.finders.PipelineFinder', ] +# Don't use compression by default PIPELINE_CSS_COMPRESSOR = None -PIPELINE_JS_COMPRESSOR = 'pipeline.compressors.uglifyjs.UglifyJSCompressor' +PIPELINE_JS_COMPRESSOR = None # Setting that will only affect the edX version of django-pipeline until our changes are merged upstream PIPELINE_COMPILE_INPLACE = True @@ -1828,7 +1827,7 @@ INSTALLED_APPS = ( # For asset pipelining 'edxmako', 'pipeline', - 'django.contrib.staticfiles', + 'staticfiles', 'static_replace', # Theming diff --git a/lms/envs/devstack.py b/lms/envs/devstack.py index 0dd9a187fcdcaa51e24518201bba155b73a9b4c5..34899a8ac75f19cac076f60703d3cca452069ce5 100644 --- a/lms/envs/devstack.py +++ b/lms/envs/devstack.py @@ -86,13 +86,12 @@ def should_show_debug_toolbar(_): ########################### PIPELINE ################################# # Skip packaging and optimization in development -PIPELINE_ENABLED = False STATICFILES_STORAGE = 'pipeline.storage.NonPackagingPipelineStorage' # Revert to the default set of finders as we don't want the production pipeline STATICFILES_FINDERS = [ - 'django.contrib.staticfiles.finders.FileSystemFinder', - 'django.contrib.staticfiles.finders.AppDirectoriesFinder', + 'staticfiles.finders.FileSystemFinder', + 'staticfiles.finders.AppDirectoriesFinder', ] # Disable JavaScript compression in development diff --git a/lms/envs/devstack_optimized.py b/lms/envs/devstack_optimized.py index 251ed4f3437fc1efb02c4a7a81b806c9c0f0b30a..813916c7eb6be52124522a97e5449cc69d6baded 100644 --- a/lms/envs/devstack_optimized.py +++ b/lms/envs/devstack_optimized.py @@ -36,7 +36,7 @@ REQUIRE_DEBUG = False # Note: optimized files for testing are generated with settings from test_static_optimized STATIC_URL = "/static/" STATICFILES_FINDERS = ( - 'django.contrib.staticfiles.finders.FileSystemFinder', + 'staticfiles.finders.FileSystemFinder', ) STATICFILES_DIRS = ( (TEST_ROOT / "staticfiles" / "lms").abspath(), diff --git a/lms/envs/test.py b/lms/envs/test.py index 0ed5986cf717d883be530fcef49360a1c1e82d59..c695f7700a9a503e5cf62308fa02aa44ebb48e26 100644 --- a/lms/envs/test.py +++ b/lms/envs/test.py @@ -129,8 +129,6 @@ XQUEUE_WAITTIME_BETWEEN_REQUESTS = 5 # seconds MOCK_STAFF_GRADING = True MOCK_PEER_GRADING = True -############################ STATIC FILES ############################# - # TODO (cpennington): We need to figure out how envs/test.py can inject things # into common.py so that we don't have to repeat this sort of thing STATICFILES_DIRS = [ @@ -148,9 +146,7 @@ STATICFILES_DIRS += [ # find pipelined assets will raise a ValueError. # http://stackoverflow.com/questions/12816941/unit-testing-with-django-pipeline STATICFILES_STORAGE = 'pipeline.storage.NonPackagingPipelineStorage' - -# Don't use compression during tests -PIPELINE_JS_COMPRESSOR = None +PIPELINE_ENABLED = False update_module_store_settings( MODULESTORE, diff --git a/lms/envs/test_static_optimized.py b/lms/envs/test_static_optimized.py index 58dd303064ac249e7e5810f0ef2d33ed6a4063e2..bd810b4a69cb83bf97f14d37a705e0c3425f8754 100644 --- a/lms/envs/test_static_optimized.py +++ b/lms/envs/test_static_optimized.py @@ -39,8 +39,8 @@ STATICFILES_STORAGE = 'openedx.core.lib.django_require.staticstorage.OptimizedCa # Revert to the default set of finders as we don't want to dynamically pick up files from the pipeline STATICFILES_FINDERS = [ - 'django.contrib.staticfiles.finders.FileSystemFinder', - 'django.contrib.staticfiles.finders.AppDirectoriesFinder', + 'staticfiles.finders.FileSystemFinder', + 'staticfiles.finders.AppDirectoriesFinder', ] # Redirect to the test_root folder within the repo diff --git a/lms/templates/main_django.html b/lms/templates/main_django.html index c8d2aac2d2d6f0827306fcafe532251ad53e974a..457dd672ed02f71380a771517146a2aad847abda 100644 --- a/lms/templates/main_django.html +++ b/lms/templates/main_django.html @@ -1,5 +1,5 @@ <!DOCTYPE html> -{% load pipeline %} +{% load compressed %} {% load sekizai_tags i18n microsite %} {% load url from future %} {% load staticfiles %} @@ -10,13 +10,13 @@ <link rel="icon" type="image/x-icon" href="{% favicon_path %}" /> - {% stylesheet 'style-vendor' %} - {% stylesheet 'style-main' %} - {% stylesheet 'style-course-vendor' %} - {% stylesheet 'style-course' %} + {% compressed_css 'style-vendor' %} + {% compressed_css 'style-main' %} + {% compressed_css 'style-course-vendor' %} + {% compressed_css 'style-course' %} {% block main_vendor_js %} - {% javascript 'main_vendor' %} + {% compressed_js 'main_vendor' %} {% endblock %} {% block headextra %}{% endblock %} {% render_block "css" %} @@ -50,8 +50,8 @@ </div> - {% javascript 'application' %} - {% javascript 'module-js' %} + {% compressed_js 'application' %} + {% compressed_js 'module-js' %} {% render_block "js" %} </body> diff --git a/lms/templates/wiki/base.html b/lms/templates/wiki/base.html index f64206fb6e28d767c6464c3723ae5271db59e372..7191443c32b4e7830eade317b85f928e13027888 100644 --- a/lms/templates/wiki/base.html +++ b/lms/templates/wiki/base.html @@ -1,5 +1,5 @@ {% extends "main_django.html" %} -{% load pipeline %}{% load sekizai_tags i18n microsite %}{% load url from future %}{% load staticfiles %} +{% load compressed %}{% load sekizai_tags i18n microsite %}{% load url from future %}{% load staticfiles %} {% block title %}<title>{% block pagetitle %}{% endblock %} | {% trans "Wiki" %} | {% platform_name %}</title>{% endblock %} @@ -7,7 +7,7 @@ {% block headextra %} <script type="text/javascript" src="/i18n.js"></script> - {% stylesheet 'course' %} + {% compressed_css 'course' %} <script type="text/javascript"> function ajaxError(){} diff --git a/lms/templates/wiki/preview_inline.html b/lms/templates/wiki/preview_inline.html index 67e26234c2c6ca50d65dbeb930eae72c727f0df0..decd185b7d3ae4f34b7677569de53d4a8f9310c2 100644 --- a/lms/templates/wiki/preview_inline.html +++ b/lms/templates/wiki/preview_inline.html @@ -1,9 +1,9 @@ <!DOCTYPE html> -{% load wiki_tags i18n %}{% load pipeline %} +{% load wiki_tags i18n %}{% load compressed %} <html lang="{{LANGUAGE_CODE}}"> <head> - {% stylesheet 'course' %} - {% javascript 'main_vendor' %} + {% compressed_css 'course' %} + {% compressed_js 'main_vendor' %} </head> <body class="modal-preview"> <section class="container wiki view"> diff --git a/openedx/core/djangoapps/credit/email_utils.py b/openedx/core/djangoapps/credit/email_utils.py index 54c6c8f8f69a60df36b74428d52474e811a700e4..b565d2a198911dfe42aa98786e830a638e61b388 100644 --- a/openedx/core/djangoapps/credit/email_utils.py +++ b/openedx/core/djangoapps/credit/email_utils.py @@ -12,7 +12,7 @@ import HTMLParser from django.conf import settings from django.contrib.auth.models import User -from django.contrib.staticfiles import finders +from staticfiles import finders from django.core.cache import cache from django.core.mail import EmailMessage from django.core.urlresolvers import reverse diff --git a/openedx/core/djangoapps/user_api/accounts/image_helpers.py b/openedx/core/djangoapps/user_api/accounts/image_helpers.py index 00de36609c39060ab3f524dcd3d1c9c216dbde1a..f5058a0d9c59997b14e7619848395bd8e62b5601 100644 --- a/openedx/core/djangoapps/user_api/accounts/image_helpers.py +++ b/openedx/core/djangoapps/user_api/accounts/image_helpers.py @@ -6,7 +6,7 @@ import hashlib from django.conf import settings from django.core.exceptions import ObjectDoesNotExist from django.core.files.storage import get_storage_class -from django.contrib.staticfiles.storage import staticfiles_storage +from staticfiles.storage import staticfiles_storage from microsite_configuration import microsite diff --git a/requirements/edx/github.txt b/requirements/edx/github.txt index cf76c9ef748971ed0be10c56d7c7b38c9cf82b32..b6b690c815de425375f5c71460fe6445429b2f5e 100644 --- a/requirements/edx/github.txt +++ b/requirements/edx/github.txt @@ -8,7 +8,8 @@ # Python libraries to install directly from github # Third-party: --e git+https://github.com/cyberdelia/django-pipeline.git@1.5.3#egg=django-pipeline +git+https://github.com/edx/django-staticfiles.git@031bdeaea85798b8c284e2a09977df3e32d06b5d#egg=django-staticfiles==1.2.1.0003 +-e git+https://github.com/edx/django-pipeline.git@88ec8a011e481918fdc9d2682d4017c835acd8be#egg=django-pipeline -e git+https://github.com/edx/django-wiki.git@cd0b2b31997afccde519fe5b3365e61a9edb143f#egg=django-wiki -e git+https://github.com/edx/django-oauth2-provider.git@0.2.7-fork-edx-5#egg=django-oauth2-provider -e git+https://github.com/edx/MongoDBProxy.git@25b99097615bda06bd7cdfe5669ed80dc2a7fed0#egg=mongodb_proxy @@ -39,7 +40,7 @@ git+https://github.com/edx/rfc6266.git@v0.0.5-edx#egg=rfc6266==0.0.5-edx -e git+https://github.com/edx/event-tracking.git@0.2.0#egg=event-tracking -e git+https://github.com/edx-solutions/django-splash.git@7579d052afcf474ece1239153cffe1c89935bc4f#egg=django-splash -e git+https://github.com/edx/acid-block.git@e46f9cda8a03e121a00c7e347084d142d22ebfb7#egg=acid-xblock --e git+https://github.com/edx/edx-ora2.git@usman/remove-font-import#egg=edx-ora2 +-e git+https://github.com/edx/edx-ora2.git@release-2015-08-25T16.16#egg=edx-ora2 -e git+https://github.com/edx/edx-submissions.git@9538ee8a971d04dc1cb05e88f6aa0c36b224455c#egg=edx-submissions -e git+https://github.com/edx/opaque-keys.git@27dc382ea587483b1e3889a3d19cbd90b9023a06#egg=opaque-keys git+https://github.com/edx/ease.git@release-2015-07-14#egg=ease==0.1.3