Exemple #1
0
    def render_fragment(self, request, context, template_name):
        """
        Uses block rendering functions, see end of file.
        """
        if template_name is None:
            if 'redirect' in context:
                return HttpResponse(simplejson.dumps({
                    'redirect':
                    request.build_absolute_uri(context['redirect'])
                }),
                                    mimetype="application/json")
            raise NotImplementedError
        body = render_blocks_to_string(template_name + '.html', context,
                                       RequestContext(request))

        uri = tidy_query_string(request.get_full_path())

        try:
            title = xhtml_slimmer(body['whole_title'])
        except:
            logger.warn('Slimmer failed to slim title', exc_info=True)
            title = body['whole_title']

        try:
            pagebody = xhtml_slimmer(body['body'])
        except:
            logger.warn('Slimmer failed to slim body', exc_info=True)
            pagebody = body['body']

        return HttpResponse(simplejson.dumps({
            'uri': uri,
            'body': pagebody,
            'title': title,
        }),
                            mimetype="application/json")
Exemple #2
0
 def render_fragment(self, request, context, template_name):
     """
     Uses block rendering functions, see end of file.
     """
     if template_name is None:
         if 'redirect' in context:
             return HttpResponse(
                 simplejson.dumps({
                     'redirect': request.build_absolute_uri(
                         context['redirect'])
                 }),
                 mimetype="application/json")
         raise NotImplementedError
     body = render_blocks_to_string(template_name + '.html', context,
                                    RequestContext(request))
     
     scheme, netloc, path, params, query, fragment = \
         urlparse(request.get_full_path())
     args = []
     for k, vs in parse_qs(query).items():
         if k in ('format', 'language_code'):
             continue
         else:
             for v in vs:
                 args.append((k, v))
     query = urlencode(args)
     uri = urlunparse((scheme, netloc, path, params, query, fragment))
     
     try:
         title = xhtml_slimmer(body['whole_title'])
     except Exception:
         logger.warn('Slimmer failed to slim title', exc_info=True)
         title = body['whole_title']
     
     try:
         pagebody = xhtml_slimmer(body['body'])
     except Exception:
         logger.warn('Slimmer failed to slim body', exc_info=True)
         pagebody = body['body']
     
     return HttpResponse(
         simplejson.dumps({
             'uri': uri,
             'body': pagebody,
             'title': title,
         }),
         mimetype="application/json")
Exemple #3
0
 def render_fragment(self, request, context, template_name):
     """
     Uses block rendering functions, see end of file.
     """
     if template_name is None:
         if 'redirect' in context:
             return HttpResponse(
                 simplejson.dumps({
                     'redirect': request.build_absolute_uri(
                         context['redirect'])
                 }),
                 mimetype="application/json")
         raise NotImplementedError
     body = render_blocks_to_string(template_name + '.html', context,
                                    RequestContext(request))
     
     uri = tidy_query_string(request.get_full_path())
     
     try:
         title = xhtml_slimmer(body['whole_title'])
     except:
         logger.warn('Slimmer failed to slim title', exc_info=True)
         title = body['whole_title']
     
     try:
         pagebody = xhtml_slimmer(body['body'])
     except:
         logger.warn('Slimmer failed to slim body', exc_info=True)
         pagebody = body['body']
     
     return HttpResponse(
         simplejson.dumps({
             'uri': uri,
             'body': pagebody,
             'title': title,
         }),
         mimetype="application/json")