From c26bb9188ac997f56837a9b60a1d13c50f65f99c Mon Sep 17 00:00:00 2001
From: Brian Beggs <macdiesel@speakeasy.net>
Date: Wed, 23 Sep 2015 15:52:24 -0400
Subject: [PATCH] Revert "Upgrade django-pipeline and staticfiles"

---
 cms/envs/acceptance.py                          |  4 ----
 cms/envs/bok_choy.py                            |  2 +-
 cms/envs/common.py                              |  8 +++-----
 cms/envs/devstack.py                            |  5 ++---
 cms/envs/devstack_optimized.py                  |  2 +-
 cms/envs/test.py                                |  1 +
 cms/envs/test_static_optimized.py               |  4 ++--
 common/djangoapps/pipeline_js/views.py          |  2 +-
 common/djangoapps/pipeline_mako/__init__.py     |  4 ++--
 .../pipeline_mako/templates/static_content.html |  2 +-
 common/djangoapps/static_replace/__init__.py    |  4 ++--
 common/djangoapps/terrain/browser.py            | 17 +++++++++++++++++
 docs/en_us/platform_api/source/conf.py          |  4 ++--
 lms/djangoapps/branding/__init__.py             |  2 +-
 lms/djangoapps/branding/api.py                  |  2 +-
 lms/djangoapps/branding/views.py                |  2 +-
 lms/djangoapps/verify_student/views.py          |  2 +-
 lms/envs/acceptance.py                          |  4 ----
 lms/envs/aws.py                                 |  3 +++
 lms/envs/bok_choy.py                            |  5 +----
 lms/envs/common.py                              | 11 +++++------
 lms/envs/devstack.py                            |  5 ++---
 lms/envs/devstack_optimized.py                  |  2 +-
 lms/envs/test.py                                |  6 +-----
 lms/envs/test_static_optimized.py               |  4 ++--
 lms/templates/main_django.html                  | 16 ++++++++--------
 lms/templates/wiki/base.html                    |  4 ++--
 lms/templates/wiki/preview_inline.html          |  6 +++---
 openedx/core/djangoapps/credit/email_utils.py   |  2 +-
 .../user_api/accounts/image_helpers.py          |  2 +-
 requirements/edx/github.txt                     |  5 +++--
 31 files changed, 72 insertions(+), 70 deletions(-)

diff --git a/cms/envs/acceptance.py b/cms/envs/acceptance.py
index 92e5deca3e2..242463aa07e 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 817eedac89f..94f90d46ada 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 22aa461c66b..b1002e12229 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 db003d239bb..bd003236688 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 2eaa3da79f0..ae2cdd541bd 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 5ccf606d43c..1d7e585f22e 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 9b66e3cc45c..af030f16338 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 d64f17b1a46..6cd97159d45 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 c134da9cb1b..97c17b6bf39 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 3b461fa08a1..f62abf6635f 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 b22a1058e19..96db5a73b67 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 ad3d3e6de94..2e9da01e9b7 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 018eadbdedc..b0d76e46753 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 04e0d864780..efe6c93876f 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 2cda491b530..c1bd3c0c4ee 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 0ec77ac4ec5..17677bdfbd6 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 1861d58c47a..819d7ecac54 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 75f9cbec414..53fae641c56 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 a3e4313fd21..11522fd7296 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 898504791e4..c4115504e55 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 7a5e95f73fc..30406398187 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 0dd9a187fcd..34899a8ac75 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 251ed4f3437..813916c7eb6 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 0ed5986cf71..c695f7700a9 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 58dd303064a..bd810b4a69c 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 c8d2aac2d2d..457dd672ed0 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 f64206fb6e2..7191443c32b 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 67e26234c2c..decd185b7d3 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 54c6c8f8f69..b565d2a1989 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 00de36609c3..f5058a0d9c5 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 cf76c9ef748..b6b690c815d 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
-- 
GitLab