diff options
| author | David Cramer | 2012-01-12 19:04:04 -0800 |
|---|---|---|
| committer | David Cramer | 2012-01-12 19:04:04 -0800 |
| commit | c4eeef24faa81e7bc64ebfbd72c046f25c7b3381 (patch) | |
| tree | 10fcc478d22aff3468f26965c0d151533e3f90ea /debug_toolbar/panels | |
| parent | e4cb445d4079df2f500c7080773023bb4e54507c (diff) | |
| download | django-debug-toolbar-c4eeef24faa81e7bc64ebfbd72c046f25c7b3381.tar.bz2 | |
Improve signals panel
Diffstat (limited to 'debug_toolbar/panels')
| -rw-r--r-- | debug_toolbar/panels/signals.py | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/debug_toolbar/panels/signals.py b/debug_toolbar/panels/signals.py index 4697f96..1d60292 100644 --- a/debug_toolbar/panels/signals.py +++ b/debug_toolbar/panels/signals.py @@ -38,6 +38,17 @@ class SignalDebugPanel(DebugPanel): def nav_title(self): return _("Signals") + def nav_subtitle(self): + signals = self.get_stats()['signals'] + num_receivers = sum(len(s[2]) for s in signals) + num_signals = len(signals) + return '%d %s from %d %s' % ( + num_receivers, + (num_receivers == 1) and 'receiver' or 'receivers', + num_signals, + (num_signals == 1) and 'signal' or 'signals', + ) + def title(self): return _("Signals") @@ -60,10 +71,7 @@ class SignalDebugPanel(DebugPanel): def process_response(self, request, response): signals = [] - keys = self.signals.keys() - keys.sort() - for name in keys: - signal = self.signals[name] + for name, signal in sorted(self.signals.items(), key=lambda x: x[0]): if signal is None: continue receivers = [] @@ -72,12 +80,15 @@ class SignalDebugPanel(DebugPanel): receiver = receiver() if receiver is None: continue + + receiver = getattr(receiver, '__wraps__', receiver) + receiver_name = getattr(receiver, '__name__', str(receiver)) if getattr(receiver, 'im_self', None) is not None: - text = "method %s on %s object" % (receiver.__name__, getattr(receiver.im_self, '__class__', type).__name__) + text = "%s.%s" % (getattr(receiver.im_self, '__class__', type).__name__, receiver_name) elif getattr(receiver, 'im_class', None) is not None: - text = "method %s on %s" % (receiver.__name__, receiver.im_class.__name__) + text = "%s.%s" % (receiver.im_class.__name__, receiver_name) else: - text = "function %s" % getattr(receiver, '__name__', str(receiver)) + text = "%s" % receiver_name receivers.append(text) signals.append((name, signal, receivers)) |
