11 from logilab.mtconverter import xml_escape |
11 from logilab.mtconverter import xml_escape |
12 |
12 |
13 from cubicweb import Unauthorized, role as get_role, target as get_target |
13 from cubicweb import Unauthorized, role as get_role, target as get_target |
14 from cubicweb.schema import display_name |
14 from cubicweb.schema import display_name |
15 from cubicweb.selectors import (one_line_rset, primary_view, |
15 from cubicweb.selectors import (one_line_rset, primary_view, |
16 match_context_prop, partial_has_related_entities, |
16 match_context_prop, partial_has_related_entities) |
17 accepts_compat, has_relation_compat, |
|
18 condition_compat, require_group_compat) |
|
19 from cubicweb.view import View, ReloadableMixIn |
17 from cubicweb.view import View, ReloadableMixIn |
20 |
18 |
21 from cubicweb.web.htmlwidgets import (BoxLink, BoxWidget, SideBoxWidget, |
19 from cubicweb.web.htmlwidgets import (BoxLink, BoxWidget, SideBoxWidget, |
22 RawBoxItem, BoxSeparator) |
20 RawBoxItem, BoxSeparator) |
23 from cubicweb.web.action import UnregisteredAction |
21 from cubicweb.web.action import UnregisteredAction |
37 |
35 |
38 box.render(self.w) |
36 box.render(self.w) |
39 """ |
37 """ |
40 __registry__ = 'boxes' |
38 __registry__ = 'boxes' |
41 __select__ = match_context_prop() |
39 __select__ = match_context_prop() |
42 registered = classmethod(require_group_compat(View.registered)) |
|
43 |
40 |
44 categories_in_order = () |
41 categories_in_order = () |
45 cw_property_defs = { |
42 cw_property_defs = { |
46 _('visible'): dict(type='Boolean', default=True, |
43 _('visible'): dict(type='Boolean', default=True, |
47 help=_('display the box or not')), |
44 help=_('display the box or not')), |
136 |
133 |
137 |
134 |
138 class EntityBoxTemplate(BoxTemplate): |
135 class EntityBoxTemplate(BoxTemplate): |
139 """base class for boxes related to a single entity""" |
136 """base class for boxes related to a single entity""" |
140 __select__ = BoxTemplate.__select__ & one_line_rset() & primary_view() |
137 __select__ = BoxTemplate.__select__ & one_line_rset() & primary_view() |
141 registered = accepts_compat(has_relation_compat(condition_compat(BoxTemplate.registered))) |
|
142 context = 'incontext' |
138 context = 'incontext' |
143 |
139 |
144 def call(self, row=0, col=0, **kwargs): |
140 def call(self, row=0, col=0, **kwargs): |
145 """classes inheriting from EntityBoxTemplate should define cell_call""" |
141 """classes inheriting from EntityBoxTemplate should define cell_call""" |
146 self.cell_call(row, col, **kwargs) |
142 self.cell_call(row, col, **kwargs) |