From 549fbe48156587a2b09277da4e58a9b1b7036bac Mon Sep 17 00:00:00 2001
From: David Baumgold <david@davidbaumgold.com>
Date: Wed, 19 Feb 2014 11:05:25 -0500
Subject: [PATCH] Rollback Django Debug Toolbar from 1.0.1 to 0.9.4

Due to issues with require.js and the latest version of the toolbar.
Also included a note in the requirements file explaining the situation, and what
needs to happen before this can be upgrade properly.
---
 cms/envs/dev.py           | 18 +++++++++---------
 cms/envs/dev_dbperf.py    | 20 ++++++++++----------
 cms/envs/devstack.py      | 19 +++++++++----------
 common/lib/check_debug.py | 14 --------------
 lms/envs/content.py       | 19 +++++++++----------
 lms/envs/dev.py           | 22 ++++++++++++++--------
 lms/envs/devplus.py       | 18 +++++++++---------
 lms/envs/devstack.py      | 30 +++++++++++++++---------------
 requirements/edx/base.txt | 12 ++++++++++--
 9 files changed, 85 insertions(+), 87 deletions(-)
 delete mode 100644 common/lib/check_debug.py

diff --git a/cms/envs/dev.py b/cms/envs/dev.py
index 3f6fd6ab849..cd3e2067f47 100644
--- a/cms/envs/dev.py
+++ b/cms/envs/dev.py
@@ -147,20 +147,20 @@ MIDDLEWARE_CLASSES += ('debug_toolbar.middleware.DebugToolbarMiddleware',)
 INTERNAL_IPS = ('127.0.0.1',)
 
 DEBUG_TOOLBAR_PANELS = (
-    'debug_toolbar.panels.versions.VersionsPanel',
-    'debug_toolbar.panels.timer.TimerPanel',
-    'debug_toolbar.panels.settings.SettingsPanel',
-    'debug_toolbar.panels.headers.HeadersPanel',
-    'debug_toolbar.panels.request.RequestPanel',
-    'debug_toolbar.panels.sql.SQLPanel',
-    'debug_toolbar.panels.signals.SignalsPanel',
-    'debug_toolbar.panels.logging.LoggingPanel',
+    'debug_toolbar.panels.version.VersionDebugPanel',
+    'debug_toolbar.panels.timer.TimerDebugPanel',
+    'debug_toolbar.panels.settings_vars.SettingsVarsDebugPanel',
+    'debug_toolbar.panels.headers.HeaderDebugPanel',
+    'debug_toolbar.panels.request_vars.RequestVarsDebugPanel',
+    'debug_toolbar.panels.sql.SQLDebugPanel',
+    'debug_toolbar.panels.signals.SignalDebugPanel',
+    'debug_toolbar.panels.logger.LoggingPanel',
 
     #  Enabling the profiler has a weird bug as of django-debug-toolbar==0.9.4 and
     #  Django=1.3.1/1.4 where requests to views get duplicated (your method gets
     #  hit twice). So you can uncomment when you need to diagnose performance
     #  problems, but you shouldn't leave it on.
-    #  'debug_toolbar.panels.profiling.ProfilingPanel',
+    #  'debug_toolbar.panels.profiling.ProfilingDebugPanel',
 )
 
 DEBUG_TOOLBAR_CONFIG = {
diff --git a/cms/envs/dev_dbperf.py b/cms/envs/dev_dbperf.py
index 6e40b4b97c4..2ea131b69ea 100644
--- a/cms/envs/dev_dbperf.py
+++ b/cms/envs/dev_dbperf.py
@@ -9,21 +9,21 @@ This configuration is to turn on the Django Toolbar stats for DB access stats, f
 from .dev import *
 
 DEBUG_TOOLBAR_PANELS = (
-    'debug_toolbar.panels.versions.VersionsPanel',
-    'debug_toolbar.panels.timer.TimerPanel',
-    'debug_toolbar.panels.settings.SettingsPanel',
-    'debug_toolbar.panels.headers.HeadersPanel',
-    'debug_toolbar.panels.request.RequestPanel',
-    'debug_toolbar.panels.sql.SQLPanel',
-    'debug_toolbar.panels.signals.SignalsPanel',
-    'debug_toolbar.panels.logging.LoggingPanel',
-    'debug_toolbar_mongo.panel.MongoDebugPanel',
+    'debug_toolbar.panels.version.VersionDebugPanel',
+    'debug_toolbar.panels.timer.TimerDebugPanel',
+    'debug_toolbar.panels.settings_vars.SettingsVarsDebugPanel',
+    'debug_toolbar.panels.headers.HeaderDebugPanel',
+    'debug_toolbar.panels.request_vars.RequestVarsDebugPanel',
+    'debug_toolbar.panels.sql.SQLDebugPanel',
+    'debug_toolbar.panels.signals.SignalDebugPanel',
+    'debug_toolbar.panels.logger.LoggingPanel',
+    'debug_toolbar_mongo.panel.MongoDebugPanel'
 
     #  Enabling the profiler has a weird bug as of django-debug-toolbar==0.9.4 and
     #  Django=1.3.1/1.4 where requests to views get duplicated (your method gets
     #  hit twice). So you can uncomment when you need to diagnose performance
     #  problems, but you shouldn't leave it on.
-    #  'debug_toolbar.panels.profiling.ProfilingPanel',
+    #  'debug_toolbar.panels.profiling.ProfilingDebugPanel',
 )
 
 # To see stacktraces for MongoDB queries, set this to True.
diff --git a/cms/envs/devstack.py b/cms/envs/devstack.py
index d6f871d0802..fa960a44fd9 100644
--- a/cms/envs/devstack.py
+++ b/cms/envs/devstack.py
@@ -37,14 +37,14 @@ MIDDLEWARE_CLASSES += ('debug_toolbar.middleware.DebugToolbarMiddleware',)
 INTERNAL_IPS = ('127.0.0.1',)
 
 DEBUG_TOOLBAR_PANELS = (
-    'debug_toolbar.panels.versions.VersionsPanel',
-    'debug_toolbar.panels.timer.TimerPanel',
-    'debug_toolbar.panels.settings.SettingsPanel',
-    'debug_toolbar.panels.headers.HeadersPanel',
-    'debug_toolbar.panels.request.RequestPanel',
-    'debug_toolbar.panels.sql.SQLPanel',
-    'debug_toolbar.panels.signals.SignalsPanel',
-    'debug_toolbar.panels.logging.LoggingPanel',
+    'debug_toolbar.panels.version.VersionDebugPanel',
+    'debug_toolbar.panels.timer.TimerDebugPanel',
+    'debug_toolbar.panels.settings_vars.SettingsVarsDebugPanel',
+    'debug_toolbar.panels.headers.HeaderDebugPanel',
+    'debug_toolbar.panels.request_vars.RequestVarsDebugPanel',
+    'debug_toolbar.panels.sql.SQLDebugPanel',
+    'debug_toolbar.panels.signals.SignalDebugPanel',
+    'debug_toolbar.panels.logger.LoggingPanel',
 
     #  Enabling the profiler has a weird bug as of django-debug-toolbar==0.9.4 and
     #  Django=1.3.1/1.4 where requests to views get duplicated (your method gets
@@ -54,8 +54,7 @@ DEBUG_TOOLBAR_PANELS = (
 )
 
 DEBUG_TOOLBAR_CONFIG = {
-    'INTERCEPT_REDIRECTS': False,
-    'SHOW_TOOLBAR_CALLBACK': 'check_debug.should_show_debug_toolbar',
+    'INTERCEPT_REDIRECTS': False
 }
 
 # To see stacktraces for MongoDB queries, set this to True.
diff --git a/common/lib/check_debug.py b/common/lib/check_debug.py
deleted file mode 100644
index f0c03e9bbfc..00000000000
--- a/common/lib/check_debug.py
+++ /dev/null
@@ -1,14 +0,0 @@
-"""
-Function to check debug status.
-"""
-import os
-
-def should_show_debug_toolbar(request):
-    """
-    Return True/False to determine whether to show the Django
-    Debug Toolbar.
-
-    If HIDE_TOOLBAR is set in the process environment, the
-    toolbar will be hidden.
-    """
-    return not bool(os.getenv('HIDE_TOOLBAR', ''))
diff --git a/lms/envs/content.py b/lms/envs/content.py
index 7723f4c897d..f85ae0b9cd3 100644
--- a/lms/envs/content.py
+++ b/lms/envs/content.py
@@ -19,19 +19,18 @@ INSTALLED_APPS += ('debug_toolbar',)
 MIDDLEWARE_CLASSES += ('debug_toolbar.middleware.DebugToolbarMiddleware',)
 
 DEBUG_TOOLBAR_PANELS = (
-   'debug_toolbar.panels.versions.VersionsPanel',
-   'debug_toolbar.panels.timer.TimerPanel',
-   'debug_toolbar.panels.settings.SettingsPanel',
-   'debug_toolbar.panels.headers.HeadersPanel',
-   'debug_toolbar.panels.request.RequestPanel',
-   'debug_toolbar.panels.sql.SQLPanel',
-   'debug_toolbar.panels.signals.SignalsPanel',
-   'debug_toolbar.panels.logging.LoggingPanel',
+   'debug_toolbar.panels.version.VersionDebugPanel',
+   'debug_toolbar.panels.timer.TimerDebugPanel',
+   'debug_toolbar.panels.settings_vars.SettingsVarsDebugPanel',
+   'debug_toolbar.panels.headers.HeaderDebugPanel',
+   'debug_toolbar.panels.request_vars.RequestVarsDebugPanel',
+   'debug_toolbar.panels.sql.SQLDebugPanel',
+   'debug_toolbar.panels.signals.SignalDebugPanel',
+   'debug_toolbar.panels.logger.LoggingPanel',
 
 #  Enabling the profiler has a weird bug as of django-debug-toolbar==0.9.4 and
 #  Django=1.3.1/1.4 where requests to views get duplicated (your method gets
 #  hit twice). So you can uncomment when you need to diagnose performance
 #  problems, but you shouldn't leave it on.
-#  'debug_toolbar.panels.profiling.ProfilingPanel',
+#  'debug_toolbar.panels.profiling.ProfilingDebugPanel',
 )
-
diff --git a/lms/envs/dev.py b/lms/envs/dev.py
index 1230e546e53..40013ee42ed 100644
--- a/lms/envs/dev.py
+++ b/lms/envs/dev.py
@@ -217,14 +217,20 @@ MIDDLEWARE_CLASSES += ('django_comment_client.utils.QueryCountDebugMiddleware',
 INTERNAL_IPS = ('127.0.0.1',)
 
 DEBUG_TOOLBAR_PANELS = (
-    'debug_toolbar.panels.versions.VersionsPanel',
-    'debug_toolbar.panels.timer.TimerPanel',
-    'debug_toolbar.panels.settings.SettingsPanel',
-    'debug_toolbar.panels.headers.HeadersPanel',
-    'debug_toolbar.panels.request.RequestPanel',
-    'debug_toolbar.panels.sql.SQLPanel',
-    'debug_toolbar.panels.signals.SignalsPanel',
-    'debug_toolbar.panels.logging.LoggingPanel',
+   'debug_toolbar.panels.version.VersionDebugPanel',
+   'debug_toolbar.panels.timer.TimerDebugPanel',
+   'debug_toolbar.panels.settings_vars.SettingsVarsDebugPanel',
+   'debug_toolbar.panels.headers.HeaderDebugPanel',
+   'debug_toolbar.panels.request_vars.RequestVarsDebugPanel',
+   'debug_toolbar.panels.sql.SQLDebugPanel',
+   'debug_toolbar.panels.signals.SignalDebugPanel',
+   'debug_toolbar.panels.logger.LoggingPanel',
+
+#  Enabling the profiler has a weird bug as of django-debug-toolbar==0.9.4 and
+#  Django=1.3.1/1.4 where requests to views get duplicated (your method gets
+#  hit twice). So you can uncomment when you need to diagnose performance
+#  problems, but you shouldn't leave it on.
+#  'debug_toolbar.panels.profiling.ProfilingDebugPanel',
 )
 
 DEBUG_TOOLBAR_CONFIG = {
diff --git a/lms/envs/devplus.py b/lms/envs/devplus.py
index 8ab60a32d98..adda94ff083 100644
--- a/lms/envs/devplus.py
+++ b/lms/envs/devplus.py
@@ -57,20 +57,20 @@ MIDDLEWARE_CLASSES += ('debug_toolbar.middleware.DebugToolbarMiddleware',)
 INTERNAL_IPS = ('127.0.0.1',)
 
 DEBUG_TOOLBAR_PANELS = (
-   'debug_toolbar.panels.versions.VersionsPanel',
-   'debug_toolbar.panels.timer.TimerPanel',
-   'debug_toolbar.panels.settings.SettingsPanel',
-   'debug_toolbar.panels.headers.HeadersPanel',
-   'debug_toolbar.panels.request.RequestPanel',
-   'debug_toolbar.panels.sql.SQLPanel',
-   'debug_toolbar.panels.signals.SignalsPanel',
-   'debug_toolbar.panels.logging.LoggingPanel',
+   'debug_toolbar.panels.version.VersionDebugPanel',
+   'debug_toolbar.panels.timer.TimerDebugPanel',
+   'debug_toolbar.panels.settings_vars.SettingsVarsDebugPanel',
+   'debug_toolbar.panels.headers.HeaderDebugPanel',
+   'debug_toolbar.panels.request_vars.RequestVarsDebugPanel',
+   'debug_toolbar.panels.sql.SQLDebugPanel',
+   'debug_toolbar.panels.signals.SignalDebugPanel',
+   'debug_toolbar.panels.logger.LoggingPanel',
 
 #  Enabling the profiler has a weird bug as of django-debug-toolbar==0.9.4 and
 #  Django=1.3.1/1.4 where requests to views get duplicated (your method gets
 #  hit twice). So you can uncomment when you need to diagnose performance
 #  problems, but you shouldn't leave it on.
-  'debug_toolbar.panels.profiling.ProfilingPanel',
+  'debug_toolbar.panels.profiling.ProfilingDebugPanel',
 )
 
 #PIPELINE = True
diff --git a/lms/envs/devstack.py b/lms/envs/devstack.py
index 5f15b48ecfd..3722efd6ae3 100644
--- a/lms/envs/devstack.py
+++ b/lms/envs/devstack.py
@@ -35,25 +35,25 @@ MIDDLEWARE_CLASSES += ('django_comment_client.utils.QueryCountDebugMiddleware',
 INTERNAL_IPS = ('127.0.0.1',)
 
 DEBUG_TOOLBAR_PANELS = (
-    'debug_toolbar.panels.versions.VersionsPanel',
-    'debug_toolbar.panels.timer.TimerPanel',
-    'debug_toolbar.panels.settings.SettingsPanel',
-    'debug_toolbar.panels.headers.HeadersPanel',
-    'debug_toolbar.panels.request.RequestPanel',
-    'debug_toolbar.panels.sql.SQLPanel',
-    'debug_toolbar.panels.signals.SignalsPanel',
-    'debug_toolbar.panels.logging.LoggingPanel',
-
-#  Enabling the profiler has a weird bug as of django-debug-toolbar==0.9.4 and
-#  Django=1.3.1/1.4 where requests to views get duplicated (your method gets
-#  hit twice). So you can uncomment when you need to diagnose performance
-#  problems, but you shouldn't leave it on.
-#  'debug_toolbar.panels.profiling.ProfilingPanel',
+    'debug_toolbar.panels.version.VersionDebugPanel',
+    'debug_toolbar.panels.timer.TimerDebugPanel',
+    'debug_toolbar.panels.settings_vars.SettingsVarsDebugPanel',
+    'debug_toolbar.panels.headers.HeaderDebugPanel',
+    'debug_toolbar.panels.request_vars.RequestVarsDebugPanel',
+    'debug_toolbar.panels.sql.SQLDebugPanel',
+    'debug_toolbar.panels.signals.SignalDebugPanel',
+    'debug_toolbar.panels.logger.LoggingPanel',
+
+    #  Enabling the profiler has a weird bug as of django-debug-toolbar==0.9.4 and
+    #  Django=1.3.1/1.4 where requests to views get duplicated (your method gets
+    #  hit twice). So you can uncomment when you need to diagnose performance
+    #  problems, but you shouldn't leave it on.
+    #  'debug_toolbar.panels.profiling.ProfilingPanel',
 )
 
 DEBUG_TOOLBAR_CONFIG = {
     'INTERCEPT_REDIRECTS': False,
-    'SHOW_TOOLBAR_CALLBACK': 'check_debug.should_show_debug_toolbar',
+    'SHOW_TOOLBAR_CALLBACK': lambda _: True,
 }
 
 ########################### PIPELINE #################################
diff --git a/requirements/edx/base.txt b/requirements/edx/base.txt
index 851807f5136..998afbc0fcd 100644
--- a/requirements/edx/base.txt
+++ b/requirements/edx/base.txt
@@ -93,12 +93,20 @@ sphinx_rtd_theme==0.1.5
 Babel==1.3
 transifex-client==0.10
 
+# We've tried several times to update the debug toolbar to version 1.0.1,
+# and had problems each time, resulting in us rolling back to 0.9.4. Before
+# submitting another pull request to do this update, check the following:
+# * https://github.com/django-debug-toolbar/django-debug-toolbar/issues/535 should be resolved
+# * Studio and CMS should both run correctly, both directly and via devstack
+# * Check the Javascript console to be sure there are no Javascript errors
+#   related to the Django debug toolbar
+django_debug_toolbar==0.9.4
+django-debug-toolbar-mongo
+
 # Used for testing
 coverage==3.7
 ddt==0.6.0
 django-crum==0.5
-django-debug-toolbar-mongo
-django_debug_toolbar==1.0.1
 django_nose==1.1
 factory_boy==2.2.1
 freezegun==0.1.11
-- 
GitLab