web/views/facets.py
branchstable
changeset 2260 080167dad19e
parent 2215 b1977f5263ac
child 2283 dc13ec07a70a
equal deleted inserted replaced
2253:0727550c64e2 2260:080167dad19e
    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>'
       
    45     
    44     def facetargs(self):
    46     def facetargs(self):
    45         """this method returns the list of extra arguments that should
    47         """this method returns the list of extra arguments that should
    46         be used by the facet
    48         be used by the facet
    47         """
    49         """
    48         return {}
    50         return {}
    78                     wdg = facet.get_widget()
    80                     wdg = facet.get_widget()
    79                     if wdg is not None:
    81                     if wdg is not None:
    80                         widgets.append(wdg)
    82                         widgets.append(wdg)
    81             if not widgets:
    83             if not widgets:
    82                 return
    84                 return
       
    85             self.displayBookmarkLink(rset)
    83             w = self.w
    86             w = self.w
    84             eschema = self.schema.eschema('Bookmark')
       
    85             if eschema.has_perm(req, 'add'):
       
    86                 bk_path = 'view?rql=%s' % rset.printable_rql()
       
    87                 bk_title = req._('my custom search')
       
    88                 linkto = 'bookmarked_by:%s:subject' % self.req.user.eid
       
    89                 bk_add_url = self.build_url('add/Bookmark', path=bk_path, title=bk_title, __linkto=linkto)
       
    90                 bk_base_url = self.build_url('add/Bookmark', title=bk_title, __linkto=linkto)
       
    91                 w(u'<div class="facetTitle"><a cubicweb:target="%s" id="facetBkLink" href="%s">%s</a></div>' % (
       
    92                     html_escape(bk_base_url),
       
    93                     html_escape(bk_add_url),
       
    94                     req._('bookmark this search')))
       
    95             w(u'<form method="post" id="%sForm" cubicweb:facetargs="%s" action="">'  % (
    87             w(u'<form method="post" id="%sForm" cubicweb:facetargs="%s" action="">'  % (
    96                 divid, html_escape(dumps([divid, vid, paginate, self.facetargs()]))))
    88                 divid, html_escape(dumps([divid, vid, paginate, self.facetargs()]))))
    97             w(u'<fieldset>')
    89             w(u'<fieldset>')
    98             hiddens = {'facets': ','.join(wdg.facet.id for wdg in widgets),
    90             hiddens = {'facets': ','.join(wdg.facet.id for wdg in widgets),
    99                        'baserql': baserql}
    91                        'baserql': baserql}
   106             w(u'</fieldset>\n</form>\n')
    98             w(u'</fieldset>\n</form>\n')
   107         finally:
    99         finally:
   108             rqlst.recover()
   100             rqlst.recover()
   109             import cubicweb
   101             import cubicweb
   110             cubicweb.info('after facets with rql: %s' % repr(rqlst))
   102             cubicweb.info('after facets with rql: %s' % repr(rqlst))
       
   103 
       
   104     def displayBookmarkLink(self, rset):
       
   105         eschema = self.schema.eschema('Bookmark')
       
   106         if eschema.has_perm(self.req, 'add'):
       
   107             bk_path = 'view?rql=%s' % rset.printable_rql()
       
   108             bk_title = self.req._('my custom search')
       
   109             linkto = 'bookmarked_by:%s:subject' % self.req.user.eid
       
   110             bk_add_url = self.build_url('add/Bookmark', path=bk_path, title=bk_title, __linkto=linkto)
       
   111             bk_base_url = self.build_url('add/Bookmark', title=bk_title, __linkto=linkto)
       
   112             bk_link = u'<a cubicweb:target="%s" id="facetBkLink" href="%s">%s</a>' % (
       
   113                     html_escape(bk_base_url),
       
   114                     html_escape(bk_add_url),
       
   115                     self.req._('bookmark this search'))
       
   116             self.w(self.bkLinkBox_template % bk_link)
   111 
   117 
   112     def get_facets(self, rset, mainvar):
   118     def get_facets(self, rset, mainvar):
   113         return self.vreg.possible_vobjects('facets', self.req, rset,
   119         return self.vreg.possible_vobjects('facets', self.req, rset,
   114                                            context='facetbox',
   120                                            context='facetbox',
   115                                            filtered_variable=mainvar)
   121                                            filtered_variable=mainvar)