diff options
| author | Aymeric Augustin | 2013-11-12 21:48:42 +0100 | 
|---|---|---|
| committer | Aymeric Augustin | 2013-11-12 22:10:22 +0100 | 
| commit | c1d50fc79645c71987ae156d371777dd371c422d (patch) | |
| tree | 16bccc82c28a953a1321c685eaa7b0a5b94d3442 /debug_toolbar/toolbar.py | |
| parent | 02716d9ca2728e33e92806f6ed0b3d9375df53a9 (diff) | |
| download | django-debug-toolbar-c1d50fc79645c71987ae156d371777dd371c422d.tar.bz2 | |
Move store/fetch logic inside the DebugToolbar class.
Diffstat (limited to 'debug_toolbar/toolbar.py')
| -rw-r--r-- | debug_toolbar/toolbar.py | 41 | 
1 files changed, 21 insertions, 20 deletions
| diff --git a/debug_toolbar/toolbar.py b/debug_toolbar/toolbar.py index f9262f8..c0c210f 100644 --- a/debug_toolbar/toolbar.py +++ b/debug_toolbar/toolbar.py @@ -52,10 +52,30 @@ class DebugToolbar(object):          context = self.template_context.copy()          context.update({              'panels': self.panels, -            'toolbar_id': save_toolbar(self), +            'storage_id': self.store(),          })          return render_to_string('debug_toolbar/base.html', context) +    # Handle storing toolbars in memory and fetching them later on + +    _counter = 0 +    _storage = SortedDict() + +    def store(self): +        cls = type(self) +        cls._counter += 1 +        cls._storage[cls._counter] = self +        for _ in range(len(cls._storage) - CONFIG['RESULTS_CACHE_SIZE']): +            # When we drop support for Python 2.6 and switch to +            # collections.OrderedDict, use popitem(last=False). +            del cls._storage[cls._storage.keyOrder[0]] +        return cls._counter + +    @classmethod +    def fetch(cls, storage_id): +        return cls._storage.get(storage_id) + +  panel_classes = [] @@ -97,22 +117,3 @@ def load_panel_classes():                  'Toolbar Panel module "%s" does not define a "%s" class' %                  (panel_module, panel_classname))          panel_classes.append(panel_class) - - -toolbar_counter = 0 -toolbar_results = SortedDict() - - -def save_toolbar(toolbar): -    global toolbar_counter, toolbar_results -    toolbar_counter += 1 -    toolbar_results[toolbar_counter] = toolbar -    for _ in range(len(toolbar_results) - CONFIG['RESULTS_CACHE_SIZE']): -        # When we drop support for Python 2.6 and switch to -        # collections.OrderedDict, use popitem(last=False). -        del toolbar_results[toolbar_results.keyOrder[0]] -    return toolbar_counter - - -def get_saved_toolbar(toolbar_id): -    return toolbar_results.get(toolbar_id) | 
