diff options
| -rw-r--r-- | README.rst | 7 | ||||
| -rw-r--r-- | debug_toolbar/panels/settings_vars.py | 23 | ||||
| -rw-r--r-- | debug_toolbar/templates/debug_toolbar/panels/settings_vars.html | 17 | ||||
| -rw-r--r-- | debug_toolbar/toolbar/loader.py | 3 |
4 files changed, 46 insertions, 4 deletions
@@ -10,11 +10,12 @@ Currently, the following panels have been written and are working: - Django version - Request timer +- A list of settings in settings.py - Common HTTP headers - GET/POST/cookie/session variable display +- Templates and context used, and their template paths - SQL queries including time to execute and links to EXPLAIN each query - Cache stats -- Templates and context used, and their template paths - Logging output via Python's built-in logging module If you have ideas for other panels please let us know. @@ -54,11 +55,12 @@ Installation DEBUG_TOOLBAR_PANELS = ( '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.template.TemplateDebugPanel', 'debug_toolbar.panels.sql.SQLDebugPanel', 'debug_toolbar.panels.cache.CacheDebugPanel', - 'debug_toolbar.panels.template.TemplateDebugPanel', 'debug_toolbar.panels.logger.LoggingPanel', ) @@ -68,7 +70,6 @@ Installation TODO ==== -- Panel idea: Show some commonly used settings from settings.py - Panel idea: AJAX call to show cprofile data similar to the ?prof idea - CSS Stylings - Restructure panels to popular context that pushes up to the toolbar diff --git a/debug_toolbar/panels/settings_vars.py b/debug_toolbar/panels/settings_vars.py new file mode 100644 index 0000000..e090718 --- /dev/null +++ b/debug_toolbar/panels/settings_vars.py @@ -0,0 +1,23 @@ +from django.conf import settings +from django.template.loader import render_to_string +from django.views.debug import get_safe_settings +from debug_toolbar.panels import DebugPanel + +class SettingsVarsDebugPanel(DebugPanel): + """ + A panel to display all variables in django.conf.settings + """ + name = 'SettingsVars' + has_content = True + + def title(self): + return 'Settings' + + def url(self): + return '' + + def content(self): + context = { + 'settings': get_safe_settings(), + } + return render_to_string('debug_toolbar/panels/settings_vars.html', context) diff --git a/debug_toolbar/templates/debug_toolbar/panels/settings_vars.html b/debug_toolbar/templates/debug_toolbar/panels/settings_vars.html new file mode 100644 index 0000000..f1e6684 --- /dev/null +++ b/debug_toolbar/templates/debug_toolbar/panels/settings_vars.html @@ -0,0 +1,17 @@ +<h3>Settings from <code>{{ settings.SETTINGS_MODULE }}</code></h3> +<table> + <thead> + <tr> + <th>Setting</th> + <th>Value</th> + </tr> + </thead> + <tbody> + {% for var in settings.items|dictsort:"0" %} + <tr> + <td>{{ var.0 }}</td> + <td><code>{{ var.1|pprint }}</code></td> + </tr> + {% endfor %} + </tbody> +</table> diff --git a/debug_toolbar/toolbar/loader.py b/debug_toolbar/toolbar/loader.py index 29ab46e..b217665 100644 --- a/debug_toolbar/toolbar/loader.py +++ b/debug_toolbar/toolbar/loader.py @@ -15,11 +15,12 @@ class DebugToolbar(object): self.default_panels = ( '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.template.TemplateDebugPanel', 'debug_toolbar.panels.sql.SQLDebugPanel', 'debug_toolbar.panels.cache.CacheDebugPanel', - 'debug_toolbar.panels.template.TemplateDebugPanel', 'debug_toolbar.panels.logger.LoggingPanel', ) self.load_panels() |
