# HG changeset patch # User Sylvain Thénault # Date 1259761039 -3600 # Node ID e4ad7663610be1a033eb9a2e71da11c6c290f559 # Parent 970a748684b51e58ba0d2598341e0e772594c2fc update _render_attribute / _render_relation prototype to gain more control on label through uicfg (for attributes and relations). Keep bw compat for crm/iliane diff -r 970a748684b5 -r e4ad7663610b web/views/primary.py --- a/web/views/primary.py Wed Dec 02 14:35:23 2009 +0100 +++ b/web/views/primary.py Wed Dec 02 14:37:19 2009 +0100 @@ -122,15 +122,26 @@ value = None if self.skip_none and (value is None or value == ''): continue - self._render_attribute(rschema, value, role=role, table=True) + try: + self._render_attribute(dispctrl, rschema, value, + role=role, table=True) + except TypeError: + warn('[3.6] _render_attribute prototype has changed, ' + 'please update %s' % self.__class___, DeprecationWarning) + self._render_attribute(rschema, value, role=role, table=True) self.w(u'') def render_entity_relations(self, entity, siderelations=None): for rschema, tschemas, role, dispctrl in self._section_def(entity, 'relations'): rset = self._relation_rset(entity, rschema, role, dispctrl) if rset: - self._render_relation(rset, dispctrl, 'autolimited', - self.show_rel_label) + try: + self._render_relation(dispctrl, rset, 'autolimited') + except TypeError: + warn('[3.6] _render_relation prototype has changed, ' + 'please update %s' % self.__class___, DeprecationWarning) + self._render_relation(rset, dispctrl, 'autolimited', + self.show_rel_label) def render_side_boxes(self, boxes): """display side related relations: @@ -192,21 +203,25 @@ rset = dispctrl['filter'](rset) return rset - def _render_relation(self, rset, dispctrl, defaultvid, showlabel): + def _render_relation(self, dispctrl, rset, defaultvid, showlabel): self.w(u'
') - if showlabel: + if dispctrl.get('showlabel', self.show_rel_label): self.w(u'

%s

' % self.req._(dispctrl['label'])) self.wview(dispctrl.get('vid', defaultvid), rset, initargs={'dispctrl': dispctrl}) self.w(u'
') - def _render_attribute(self, rschema, value, role='subject', table=False): + def _render_attribute(self, dispctrl, rschema, value, + role='subject', table=False): if rschema.final: - show_label = self.show_attr_label + showlabel = dispctrl.get('showlabel', self.show_attr_label) else: - show_label = self.show_rel_label - label = display_name(self.req, rschema.type, role) - self.field(label, value, show_label=show_label, tr=False, table=table) + showlabel = dispctrl.get('showlabel', self.show_rel_label) + if dispctrl.get('label'): + label = self.req._(dispctrl.get('label')) + else: + label = display_name(self.req, rschema.type, role) + self.field(label, value, show_label=showlabel, tr=False, table=table) class RelatedView(EntityView):