7 """ |
7 """ |
8 __docformat__ = "restructuredtext en" |
8 __docformat__ = "restructuredtext en" |
9 |
9 |
10 from simplejson import dumps |
10 from simplejson import dumps |
11 |
11 |
12 from logilab.mtconverter import html_escape |
12 from logilab.mtconverter import xml_escape |
13 |
13 |
14 from cubicweb.vregistry import objectify_selector |
14 from cubicweb.vregistry import objectify_selector |
15 from cubicweb.selectors import (non_final_entity, two_lines_rset, |
15 from cubicweb.selectors import (non_final_entity, two_lines_rset, |
16 match_context_prop, yes, relation_possible) |
16 match_context_prop, yes, relation_possible) |
17 from cubicweb.web.box import BoxTemplate |
17 from cubicweb.web.box import BoxTemplate |
81 wdg = facet.get_widget() |
81 wdg = facet.get_widget() |
82 if wdg is not None: |
82 if wdg is not None: |
83 widgets.append(wdg) |
83 widgets.append(wdg) |
84 if not widgets: |
84 if not widgets: |
85 return |
85 return |
86 if self.bkLinkBox_template: |
86 if self.bk_linkbox_template: |
87 self.displayBookmarkLink(rset) |
87 self.display_bookmark_link(rset) |
88 w = self.w |
88 w = self.w |
89 w(u'<form method="post" id="%sForm" cubicweb:facetargs="%s" action="">' % ( |
89 w(u'<form method="post" id="%sForm" cubicweb:facetargs="%s" action="">' % ( |
90 divid, html_escape(dumps([divid, vid, paginate, self.facetargs()])))) |
90 divid, xml_escape(dumps([divid, vid, paginate, self.facetargs()])))) |
91 w(u'<fieldset>') |
91 w(u'<fieldset>') |
92 hiddens = {'facets': ','.join(wdg.facet.id for wdg in widgets), |
92 hiddens = {'facets': ','.join(wdg.facet.id for wdg in widgets), |
93 'baserql': baserql} |
93 'baserql': baserql} |
94 for param in ('subvid', 'vtitle'): |
94 for param in ('subvid', 'vtitle'): |
95 if param in req.form: |
95 if param in req.form: |
101 finally: |
101 finally: |
102 rqlst.recover() |
102 rqlst.recover() |
103 import cubicweb |
103 import cubicweb |
104 cubicweb.info('after facets with rql: %s' % repr(rqlst)) |
104 cubicweb.info('after facets with rql: %s' % repr(rqlst)) |
105 |
105 |
106 def displayBookmarkLink(self, rset): |
106 def display_bookmark_link(self, rset): |
107 eschema = self.schema.eschema('Bookmark') |
107 eschema = self.schema.eschema('Bookmark') |
108 if eschema.has_perm(self.req, 'add'): |
108 if eschema.has_perm(self.req, 'add'): |
109 bk_path = 'view?rql=%s' % rset.printable_rql() |
109 bk_path = 'view?rql=%s' % rset.printable_rql() |
110 bk_title = self.req._('my custom search') |
110 bk_title = self.req._('my custom search') |
111 linkto = 'bookmarked_by:%s:subject' % self.req.user.eid |
111 linkto = 'bookmarked_by:%s:subject' % self.req.user.eid |
112 bk_add_url = self.build_url('add/Bookmark', path=bk_path, title=bk_title, __linkto=linkto) |
112 bk_add_url = self.build_url('add/Bookmark', path=bk_path, title=bk_title, __linkto=linkto) |
113 bk_base_url = self.build_url('add/Bookmark', title=bk_title, __linkto=linkto) |
113 bk_base_url = self.build_url('add/Bookmark', title=bk_title, __linkto=linkto) |
114 bk_link = u'<a cubicweb:target="%s" id="facetBkLink" href="%s">%s</a>' % ( |
114 bk_link = u'<a cubicweb:target="%s" id="facetBkLink" href="%s">%s</a>' % ( |
115 html_escape(bk_base_url), |
115 xml_escape(bk_base_url), |
116 html_escape(bk_add_url), |
116 xml_escape(bk_add_url), |
117 self.req._('bookmark this search')) |
117 self.req._('bookmark this search')) |
118 self.w(self.bkLinkBox_template % bk_link) |
118 self.w(self.bk_linkbox_template % bk_link) |
119 |
119 |
120 def get_facets(self, rset, mainvar): |
120 def get_facets(self, rset, mainvar): |
121 return self.vreg.possible_vobjects('facets', self.req, rset, |
121 return self.vreg.possible_vobjects('facets', self.req, rset, |
122 context='facetbox', |
122 context='facetbox', |
123 filtered_variable=mainvar) |
123 filtered_variable=mainvar) |