7 """ |
7 """ |
8 __docformat__ = "restructuredtext en" |
8 __docformat__ = "restructuredtext en" |
9 _ = unicode |
9 _ = unicode |
10 |
10 |
11 from logilab.common.deprecation import class_renamed |
11 from logilab.common.deprecation import class_renamed |
12 from logilab.mtconverter import html_escape |
12 from logilab.mtconverter import xml_escape |
13 |
13 |
14 from cubicweb import role |
14 from cubicweb import role |
15 from cubicweb.utils import merge_dicts |
15 from cubicweb.utils import merge_dicts |
16 from cubicweb.view import View, Component |
16 from cubicweb.view import View, Component |
17 from cubicweb.selectors import ( |
17 from cubicweb.selectors import ( |
115 del params[self.stop_param] |
115 del params[self.stop_param] |
116 |
116 |
117 def page_link(self, path, params, start, stop, content): |
117 def page_link(self, path, params, start, stop, content): |
118 url = self.build_url(path, **merge_dicts(params, {self.start_param : start, |
118 url = self.build_url(path, **merge_dicts(params, {self.start_param : start, |
119 self.stop_param : stop,})) |
119 self.stop_param : stop,})) |
120 url = html_escape(url) |
120 url = xml_escape(url) |
121 if start == self.starting_from: |
121 if start == self.starting_from: |
122 return self.selected_page_link_templ % (url, content, content) |
122 return self.selected_page_link_templ % (url, content, content) |
123 return self.page_link_templ % (url, content, content) |
123 return self.page_link_templ % (url, content, content) |
124 |
124 |
125 def previous_link(self, params, content='<<', title=_('previous_results')): |
125 def previous_link(self, params, content='<<', title=_('previous_results')): |
128 return self.no_previous_page_link |
128 return self.no_previous_page_link |
129 start = max(0, start - self.page_size) |
129 start = max(0, start - self.page_size) |
130 stop = start + self.page_size - 1 |
130 stop = start + self.page_size - 1 |
131 url = self.build_url(**merge_dicts(params, {self.start_param : start, |
131 url = self.build_url(**merge_dicts(params, {self.start_param : start, |
132 self.stop_param : stop,})) |
132 self.stop_param : stop,})) |
133 url = html_escape(url) |
133 url = xml_escape(url) |
134 return self.previous_page_link_templ % (url, title, content) |
134 return self.previous_page_link_templ % (url, title, content) |
135 |
135 |
136 def next_link(self, params, content='>>', title=_('next_results')): |
136 def next_link(self, params, content='>>', title=_('next_results')): |
137 start = self.starting_from + self.page_size |
137 start = self.starting_from + self.page_size |
138 if start >= self.total: |
138 if start >= self.total: |
139 return self.no_next_page_link |
139 return self.no_next_page_link |
140 stop = start + self.page_size - 1 |
140 stop = start + self.page_size - 1 |
141 url = self.build_url(**merge_dicts(params, {self.start_param : start, |
141 url = self.build_url(**merge_dicts(params, {self.start_param : start, |
142 self.stop_param : stop,})) |
142 self.stop_param : stop,})) |
143 url = html_escape(url) |
143 url = xml_escape(url) |
144 return self.next_page_link_templ % (url, title, content) |
144 return self.next_page_link_templ % (url, title, content) |
145 |
145 |
146 |
146 |
147 class RelatedObjectsVComponent(EntityVComponent): |
147 class RelatedObjectsVComponent(EntityVComponent): |
148 """a section to display some related entities""" |
148 """a section to display some related entities""" |