app/soc/views/helper/responses.py
changeset 365 74dec172944e
parent 359 4308324241bc
child 405 f3525c1288ed
equal deleted inserted replaced
364:ab47d3f494b3 365:74dec172944e
    21   '"Todd Larsen" <tlarsen@google.com>',
    21   '"Todd Larsen" <tlarsen@google.com>',
    22   '"Pawel Solyga" <pawel.solyga@gmail.com>',
    22   '"Pawel Solyga" <pawel.solyga@gmail.com>',
    23   ]
    23   ]
    24 
    24 
    25 
    25 
    26 import logging
       
    27 
       
    28 from google.appengine.api import users
    26 from google.appengine.api import users
    29 from google.appengine.runtime import DeadlineExceededError
       
    30 
    27 
    31 from django import http
    28 from django import http
    32 from django.template import loader
    29 from django.template import loader
    33 
    30 
    34 from soc.logic import system
    31 from soc.logic import system
    65     context = getUniversalContext(request)
    62     context = getUniversalContext(request)
    66 
    63 
    67   if response_args is None:
    64   if response_args is None:
    68     response_args = {}
    65     response_args = {}
    69 
    66 
    70   try:
    67   response_args['content'] = response_args.get(
    71     response_args['content'] = response_args.get(
    68       'content', loader.render_to_string(template, dictionary=context))
    72         'content', loader.render_to_string(template, dictionary=context))
    69   return http.HttpResponse(**response_args)
    73     return http.HttpResponse(**response_args)
       
    74   except DeadlineExceededError:
       
    75     logging.exception('DeadlineExceededError')
       
    76     return http.HttpResponse('DeadlineExceededError')
       
    77   except MemoryError:
       
    78     logging.exception('MemoryError')
       
    79     return http.HttpResponse('MemoryError')
       
    80   except AssertionError:
       
    81     logging.exception('AssertionError')
       
    82     return http.HttpResponse('AssertionError')
       
    83 
    70 
    84 
    71 
    85 def getUniversalContext(request):
    72 def getUniversalContext(request):
    86   """Constructs a template context dict will many common variables defined.
    73   """Constructs a template context dict will many common variables defined.
    87   
    74   
   109   context = {}
    96   context = {}
   110   context['request'] = request
    97   context['request'] = request
   111 
    98 
   112   if id:
    99   if id:
   113     context['id'] = id
   100     context['id'] = id
   114     context['user'] = soc.logic.models.user.logic.getFromFields(email=id.email())
   101     context['user'] = soc.logic.models.user.logic.getFromFields(
       
   102         email=id.email())
   115     context['is_admin'] = id_user.isIdDeveloper(id=id)
   103     context['is_admin'] = id_user.isIdDeveloper(id=id)
   116 
   104 
   117   context['is_debug'] = system.isDebug()
   105   context['is_debug'] = system.isDebug()
   118   context['sign_in'] = users.create_login_url(request.path)
   106   context['sign_in'] = users.create_login_url(request.path)
   119   context['sign_out'] = users.create_logout_url(request.path)
   107   context['sign_out'] = users.create_logout_url(request.path)