From fe3df822111d3b56000deca354b0bceed7bde9cc Mon Sep 17 00:00:00 2001 From: Aymeric Augustin Date: Sun, 24 Nov 2013 10:42:43 +0100 Subject: Rename all panels consistently. Enforce absolute imports to avoid clashing with built-in package names. Thanks Jannis for his feedback. --- debug_toolbar/panels/request.py | 54 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 debug_toolbar/panels/request.py (limited to 'debug_toolbar/panels/request.py') diff --git a/debug_toolbar/panels/request.py b/debug_toolbar/panels/request.py new file mode 100644 index 0000000..934946a --- /dev/null +++ b/debug_toolbar/panels/request.py @@ -0,0 +1,54 @@ +from __future__ import absolute_import, unicode_literals + +from django.core.urlresolvers import resolve +from django.http import Http404 +from django.utils.encoding import force_text +from django.utils.translation import ugettext_lazy as _ + +from debug_toolbar.panels import Panel +from debug_toolbar.utils import get_name_from_obj + + +class RequestPanel(Panel): + """ + A panel to display request variables (POST/GET, session, cookies). + """ + name = 'Request' + template = 'debug_toolbar/panels/request.html' + has_content = True + + def nav_title(self): + return _('Request') + + def title(self): + return _('Request') + + def process_response(self, request, response): + self.record_stats({ + 'get': [(k, request.GET.getlist(k)) for k in sorted(request.GET)], + 'post': [(k, request.POST.getlist(k)) for k in sorted(request.POST)], + 'cookies': [(k, request.COOKIES.get(k)) for k in sorted(request.COOKIES)], + }) + view_info = { + 'view_func': _(''), + 'view_args': 'None', + 'view_kwargs': 'None', + 'view_urlname': 'None', + } + try: + match = resolve(request.path) + func, args, kwargs = match + view_info['view_func'] = get_name_from_obj(func) + view_info['view_args'] = args + view_info['view_kwargs'] = kwargs + view_info['view_urlname'] = getattr(match, 'url_name', + _('')) + except Http404: + pass + self.record_stats(view_info) + + if hasattr(request, 'session'): + self.record_stats({ + 'session': [(k, request.session.get(k)) + for k in sorted(request.session.keys(), key=force_text)] + }) -- cgit v1.2.3