9 from logilab.common.decorators import cached |
9 from logilab.common.decorators import cached |
10 from logilab.mtconverter import html_escape |
10 from logilab.mtconverter import html_escape |
11 |
11 |
12 from cubicweb import Unauthorized, role as get_role |
12 from cubicweb import Unauthorized, role as get_role |
13 from cubicweb.selectors import (one_line_rset, primary_view, |
13 from cubicweb.selectors import (one_line_rset, primary_view, |
14 match_context_prop, abstract_has_related_entities, |
14 match_context_prop, partial_has_related_entities, |
15 accepts_compat, has_relation_compat, |
15 accepts_compat, has_relation_compat, |
16 condition_compat, require_group_compat) |
16 condition_compat, require_group_compat) |
17 from cubicweb.view import View, ReloadableMixIn |
17 from cubicweb.view import View, ReloadableMixIn |
18 |
18 |
19 from cubicweb.web.htmlwidgets import (BoxLink, BoxWidget, SideBoxWidget, |
19 from cubicweb.web.htmlwidgets import (BoxLink, BoxWidget, SideBoxWidget, |
145 """classes inheriting from EntityBoxTemplate should define cell_call""" |
145 """classes inheriting from EntityBoxTemplate should define cell_call""" |
146 self.cell_call(row, col, **kwargs) |
146 self.cell_call(row, col, **kwargs) |
147 |
147 |
148 |
148 |
149 class RelatedEntityBoxTemplate(EntityBoxTemplate): |
149 class RelatedEntityBoxTemplate(EntityBoxTemplate): |
150 __select__ = EntityBoxTemplate.__select__ & abstract_has_related_entities() |
150 __select__ = EntityBoxTemplate.__select__ & partial_has_related_entities() |
151 |
151 |
152 def cell_call(self, row, col, **kwargs): |
152 def cell_call(self, row, col, **kwargs): |
153 entity = self.entity(row, col) |
153 entity = self.entity(row, col) |
154 limit = self.req.property_value('navigation.related-limit') + 1 |
154 limit = self.req.property_value('navigation.related-limit') + 1 |
155 role = get_role(self) |
155 role = get_role(self) |