Example #1
0
    def handle_response(self, djp):
        '''Handle the response. This function SHOULD NOT be overwritten.
Several functions can be overwritten for tweaking the results.
If that is not enough, maybe more hooks should be put in place.
Hooks:
* 'preget':     for pre-processing and redirects
* 'render':     for creating content when there is no inner_template
* *extra_response*: for more.'''
        # Get page object and template_name
        request = djp.request
        http    = request.site.http
        page    = djp.page
        inner_template  = None
        grid    = self.grid960(page)
        
        context = {'grid': grid}
        
        # Inner template available, fill the context dictionary
        # with has many content keys as the number of blocks in the page
        if page:
            context['htmldoc'] = htmltype.get(page.doctype)
        else:
            context['htmldoc'] = htmltype.get()
            
        if page:
            if not self.editurl and djp.has_own_page():
                context['edit_content_url'] = inline_editing(request,page,djp.instance)
            
        if page and page.inner_template:
            cb = {'djp':  djp,
                  'grid': grid}
            blocks = page.inner_template.numblocks()
            for b in range(0,blocks):
                cb['content%s' % b] = BlockContentGen(djp, b)
            
            # Call the inner-template renderer
            inner = page.inner_template.render(Context(cb, autoescape=False))
        else:
            # No page or no inner_template. Get the inner content directly
            inner = self.render(djp)
            if isinstance(inner,http.HttpResponse):
                return inner
        
        context['inner'] = inner
        self.extra_content(djp,context)
        return djp.render_to_response(context)
Example #2
0
 def has_permission(self, request = None, page = None, obj = None):
     if self._view.has_permission(request,page,obj):
         return inline_editing(request, page, obj)
     else:
         return False