예제 #1
0
 def test_render_response(self):
     def renderer(template, args, encoding=None):
         return "%s %r" % (template, sorted(args))
     request = http.Request.blank('/', environ={'restish.templating': templating.Templating(renderer)})
     response = templating.render_response(request, None, 'page')
     assert response.status == "200 OK"
     assert response.headers['Content-Type'] == 'text/html; charset=utf-8'
     assert response.body == "page ['element', 'urls']"
예제 #2
0
 def test_render_response(self):
     def renderer(template, args, encoding=None):
         return "%s %r" % (template, sorted(args))
     request = http.Request.blank('/', environ={'restish.templating': templating.Templating(renderer)})
     response = templating.render_response(request, None, 'page')
     assert response.status == "200 OK"
     assert response.headers['Content-Type'] == 'text/html; charset=utf-8'
     assert response.body == "page ['element', 'urls']"
예제 #3
0
파일: resource.py 프로젝트: ish/adminish
 def _html(self, request, form=None):
     if form is None:
         C = _store(request)
         defn = C.config.types[self.type]
         form = _form_for_type(request, C, defn)
     M = request.environ['adminish']['types'][self.type]
     return templating.render_response(
         request, self, M['templates']['new_item'],
         {'metadata': M, 'form': form})
예제 #4
0
    def page(self, request):
        sitemap = navigation.get_navigation(request)
        url = '/%s'%('/'.join(self.segments))

        C = request.environ['couchish']
        with C.session() as S:
            results = list(S.view('page/by_url',key=url,include_docs=True))
        page = results[0].doc
        data = {'page': page,'request':request, 'sitemap':sitemap}
        return templating.render_response(request, self, page['pagetype'], data)
예제 #5
0
 def _html(self, request, form=None):
     if form is None:
         C = _store(request)
         defn = C.config.types[self.type]
         form = _form_for_type(request, C, defn)
     M = request.environ['adminish']['types'][self.type]
     return templating.render_response(request, self,
                                       M['templates']['new_item'], {
                                           'metadata': M,
                                           'form': form
                                       })
예제 #6
0
    def render_page(self, request, form):
        config = _config(request)
        C = _store(request)
        M = config['types'][self.type]
        T = C.config.types[self.type]

        searchform = make_search_form(request)
        if not formish.form_in_request(request) == searchform.name:
            q = None
        else:
            data = searchform.validate(request)
            q = data['q']

        pager = PAGER_FACTORIES[M['pager']]
        if q:
            searcher = request.environ['searcher']
            pagingdata = webpaging.paged_search(request,
                                                searcher,
                                                self.type,
                                                q,
                                                max_pagesize=10)
            keys = [item.id for item in pagingdata['items']]
            with C.session() as S:
                results = S.docs_by_type(self.type, keys=keys)
            items = results
        else:
            pagingdata = pager(request,
                               C.session(),
                               self.type,
                               include_docs=True,
                               metadata=M)
            items = [item.doc for item in pagingdata['items']]

        def page_element(name):
            E = self.element(request, name)
            if isinstance(E, page.Element):
                E = util.RequestBoundCallable(E, request)
            return E

        data = {
            'form': form,
            'items': items,
            'pagingdata': webpaging.Paging(request, pagingdata),
            'metadata': M,
            'element': page_element,
            'types': T,
            'type': self.type,
            'searchform': searchform
        }
        return templating.render_response(request, self,
                                          M['templates']['items'], data)
예제 #7
0
파일: resource.py 프로젝트: ish/adminish
 def render_page(self, request, form):
     M = request.environ['adminish']['types'][self.type]
     template_override = request.GET.get('template',None)
     if template_override == 'bare':
         template = '/adminish/bare.html'
     else:
         template = M['templates']['item']
     def page_element(name):
         E = self.element(request, name)
         if isinstance(E, page.Element):
             E = util.RequestBoundCallable(E, request)
         return E
     data = {'form': form, 'metadata': M,'element':page_element, 'type': self.type}
     return templating.render_response(request, self, template, data)
예제 #8
0
    def render_page(self, request, form):
        M = request.environ['adminish']['types'][self.type]
        template_override = request.GET.get('template', None)
        if template_override == 'bare':
            template = '/adminish/bare.html'
        else:
            template = M['templates']['item']

        def page_element(name):
            E = self.element(request, name)
            if isinstance(E, page.Element):
                E = util.RequestBoundCallable(E, request)
            return E

        data = {
            'form': form,
            'metadata': M,
            'element': page_element,
            'type': self.type
        }
        return templating.render_response(request, self, template, data)
예제 #9
0
파일: resource.py 프로젝트: ish/adminish
    def render_page(self, request, form):
        config = _config(request)
        C = _store(request)
        M = config['types'][self.type]
        T = C.config.types[self.type]

        searchform = make_search_form(request)
        if not formish.form_in_request(request) == searchform.name:
            q = None
        else:
            data = searchform.validate(request)
            q = data['q']

        pager = PAGER_FACTORIES[M['pager']]
        if q:
            searcher = request.environ['searcher']
            pagingdata = webpaging.paged_search(request, searcher, self.type, q, max_pagesize=10)
            keys = [item.id for item in pagingdata['items']]
            with C.session() as S:
                results = S.docs_by_type(self.type, keys=keys)
            items = results
        else:
            pagingdata = pager(request, C.session(), self.type, include_docs=True, metadata=M)
            items = [item.doc for item in pagingdata['items']]





        def page_element(name):
            E = self.element(request, name)
            if isinstance(E, page.Element):
                E = util.RequestBoundCallable(E, request)
            return E
        data = {'form': form, 'items': items, 'pagingdata': webpaging.Paging(request, pagingdata), 'metadata': M,'element':page_element, 'types':T, 'type':self.type, 'searchform': searchform} 
        return templating.render_response(request, self, M['templates']['items'], data)