web/views/facets.py
branchstable
changeset 2325 363b66a15668
parent 2323 017bc7d7552d
child 2326 05ae71d9a069
equal deleted inserted replaced
2324:810fcd045f7c 2325:363b66a15668
    39     roundcorners = True
    39     roundcorners = True
    40 
    40 
    41     needs_css = 'cubicweb.facets.css'
    41     needs_css = 'cubicweb.facets.css'
    42     needs_js = ('cubicweb.ajax.js', 'cubicweb.formfilter.js')
    42     needs_js = ('cubicweb.ajax.js', 'cubicweb.formfilter.js')
    43 
    43 
    44     bkLinkBox_template = u'<div class="facetTitle">%s</div>'
    44     bk_linkbox_template = u'<div class="facetTitle">%s</div>'
    45 
    45 
    46     def facetargs(self):
    46     def facetargs(self):
    47         """this method returns the list of extra arguments that should
    47         """this method returns the list of extra arguments that should
    48         be used by the facet
    48         be used by the facet
    49         """
    49         """
    80                     wdg = facet.get_widget()
    80                     wdg = facet.get_widget()
    81                     if wdg is not None:
    81                     if wdg is not None:
    82                         widgets.append(wdg)
    82                         widgets.append(wdg)
    83             if not widgets:
    83             if not widgets:
    84                 return
    84                 return
    85             if self.bkLinkBox_template:
    85             if self.bk_linkbox_template:
    86                 self.displayBookmarkLink(rset)
    86                 self.display_bookmark_link(rset)
    87             w = self.w
    87             w = self.w
    88             w(u'<form method="post" id="%sForm" cubicweb:facetargs="%s" action="">'  % (
    88             w(u'<form method="post" id="%sForm" cubicweb:facetargs="%s" action="">'  % (
    89                 divid, html_escape(dumps([divid, vid, paginate, self.facetargs()]))))
    89                 divid, html_escape(dumps([divid, vid, paginate, self.facetargs()]))))
    90             w(u'<fieldset>')
    90             w(u'<fieldset>')
    91             hiddens = {'facets': ','.join(wdg.facet.id for wdg in widgets),
    91             hiddens = {'facets': ','.join(wdg.facet.id for wdg in widgets),
   100         finally:
   100         finally:
   101             rqlst.recover()
   101             rqlst.recover()
   102             import cubicweb
   102             import cubicweb
   103             cubicweb.info('after facets with rql: %s' % repr(rqlst))
   103             cubicweb.info('after facets with rql: %s' % repr(rqlst))
   104 
   104 
   105     def displayBookmarkLink(self, rset):
   105     def display_bookmark_link(self, rset):
   106         eschema = self.schema.eschema('Bookmark')
   106         eschema = self.schema.eschema('Bookmark')
   107         if eschema.has_perm(self.req, 'add'):
   107         if eschema.has_perm(self.req, 'add'):
   108             bk_path = 'view?rql=%s' % rset.printable_rql()
   108             bk_path = 'view?rql=%s' % rset.printable_rql()
   109             bk_title = self.req._('my custom search')
   109             bk_title = self.req._('my custom search')
   110             linkto = 'bookmarked_by:%s:subject' % self.req.user.eid
   110             linkto = 'bookmarked_by:%s:subject' % self.req.user.eid
   112             bk_base_url = self.build_url('add/Bookmark', title=bk_title, __linkto=linkto)
   112             bk_base_url = self.build_url('add/Bookmark', title=bk_title, __linkto=linkto)
   113             bk_link = u'<a cubicweb:target="%s" id="facetBkLink" href="%s">%s</a>' % (
   113             bk_link = u'<a cubicweb:target="%s" id="facetBkLink" href="%s">%s</a>' % (
   114                     html_escape(bk_base_url),
   114                     html_escape(bk_base_url),
   115                     html_escape(bk_add_url),
   115                     html_escape(bk_add_url),
   116                     self.req._('bookmark this search'))
   116                     self.req._('bookmark this search'))
   117             self.w(self.bkLinkBox_template % bk_link)
   117             self.w(self.bk_linkbox_template % bk_link)
   118 
   118 
   119     def get_facets(self, rset, mainvar):
   119     def get_facets(self, rset, mainvar):
   120         return self.vreg.possible_vobjects('facets', self.req, rset,
   120         return self.vreg.possible_vobjects('facets', self.req, rset,
   121                                            context='facetbox',
   121                                            context='facetbox',
   122                                            filtered_variable=mainvar)
   122                                            filtered_variable=mainvar)