diff options
| author | David Cramer | 2011-05-10 00:02:39 -0700 |
|---|---|---|
| committer | David Cramer | 2011-05-10 00:02:39 -0700 |
| commit | 875a26213b9c623ddc90bfcf92f419ac8b45d007 (patch) | |
| tree | 458cfcc32d2d31ea54a6538aaae0d8b0ff2b0af9 /debug_toolbar/toolbar/loader.py | |
| parent | 3292aff531d4dee5cf30a003d5d2ee745f718f86 (diff) | |
| parent | bbf99c1639bfec6d2edc4473f8adb278970db7a5 (diff) | |
| download | django-debug-toolbar-875a26213b9c623ddc90bfcf92f419ac8b45d007.tar.bz2 | |
Merge branch 'master' into andrepl-master
Conflicts:
debug_toolbar/middleware.py
Diffstat (limited to 'debug_toolbar/toolbar/loader.py')
| -rw-r--r-- | debug_toolbar/toolbar/loader.py | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/debug_toolbar/toolbar/loader.py b/debug_toolbar/toolbar/loader.py index 4b53d2f..3501c69 100644 --- a/debug_toolbar/toolbar/loader.py +++ b/debug_toolbar/toolbar/loader.py @@ -1,14 +1,18 @@ """ The main DebugToolbar class that loads and renders the Toolbar. """ +import os.path, os + from django.conf import settings from django.template.loader import render_to_string +from django.utils.datastructures import SortedDict +from django.utils.safestring import mark_safe class DebugToolbar(object): def __init__(self, request): self.request = request - self.panels = [] + self._panels = SortedDict() base_url = self.request.META.get('SCRIPT_NAME', '') self.config = { 'INTERCEPT_REDIRECTS': True, @@ -34,6 +38,13 @@ class DebugToolbar(object): 'debug_toolbar.panels.logger.LoggingPanel', ) self.load_panels() + + def _get_panels(self): + return self._panels.values() + panels = property(_get_panels) + + def get_panel(self, cls): + return self._panels[cls] def load_panels(self): """ @@ -66,13 +77,19 @@ class DebugToolbar(object): except: raise # Bubble up problem loading panel - self.panels.append(panel_instance) + self._panels[panel_class] = panel_instance def render_toolbar(self): """ Renders the overall Toolbar with panels inside. """ + media_path = os.path.join(os.path.dirname(__file__), os.pardir, 'media', 'debug_toolbar') + context = self.template_context.copy() - context.update({ 'panels': self.panels, }) + context.update({ + 'panels': self.panels, + 'js': mark_safe(open(os.path.join(media_path, 'js', 'toolbar.min.js'), 'r').read()), + 'css': mark_safe(open(os.path.join(media_path, 'css', 'toolbar.min.css'), 'r').read()), + }) return render_to_string('debug_toolbar/base.html', context) |
