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()  | 
