# HG changeset patch # User Sylvain Thenault # Date 1229946801 -3600 # Node ID 7fd7a0d387d7a5904ad7c6f498f8a264636b623e # Parent 5ab64969df20e19f713ce024003f91ba31048f90 new RelatedEntityBoxTemplate base class diff -r 5ab64969df20 -r 7fd7a0d387d7 web/box.py --- a/web/box.py Mon Dec 22 12:53:08 2008 +0100 +++ b/web/box.py Mon Dec 22 12:53:21 2008 +0100 @@ -9,19 +9,19 @@ from logilab.common.decorators import cached from logilab.mtconverter import html_escape -from cubicweb import Unauthorized -from cubicweb.common.registerers import (accepts_registerer, - extresources_registerer, - etype_rtype_priority_registerer) -from cubicweb.common.selectors import (etype_rtype_selector, one_line_rset, - accept_selector, accept_rtype_selector, - primaryview_selector, contextprop_selector, - _rqlcondition_selector) +from cubicweb import Unauthorized, role as get_role +from cubicweb.common.registerers import ( + accepts_registerer, extresources_registerer, + etype_rtype_priority_registerer) +from cubicweb.common.selectors import ( + etype_rtype_selector, one_line_rset, accept_selector, accept_rtype_selector, + primaryview_selector, contextprop_selector, has_related_entities, + _rqlcondition_selector) from cubicweb.common.view import Template from cubicweb.common.appobject import ReloadableMixIn from cubicweb.web.htmlwidgets import (BoxLink, BoxWidget, SideBoxWidget, - RawBoxItem, BoxSeparator) + RawBoxItem, BoxSeparator) from cubicweb.web.action import UnregisteredAction _ = unicode @@ -164,6 +164,18 @@ self.cell_call(row, col, **kwargs) +class RelatedEntityBoxTemplate(EntityBoxTemplate): + __selectors__ = EntityBoxTemplate.__selectors__ + (has_related_entities,) + + def cell_call(self, row, col, **kwargs): + entity = self.entity(row, col) + limit = self.req.property_value('navigation.related-limit') + 1 + role = get_role(self) + self.w(u'
') + self.wview('sidebox', entity.related(self.rtype, role, limit=limit), + title=display_name(self.req, self.rtype, role)) + self.w(u'
') + class EditRelationBoxTemplate(ReloadableMixIn, EntityBoxTemplate): """base class for boxes which let add or remove entities linked