100 def summary(self, entity): |
100 def summary(self, entity): |
101 """default implementation return an empty string""" |
101 """default implementation return an empty string""" |
102 return u'' |
102 return u'' |
103 |
103 |
104 def render_entity_attributes(self, entity, siderelations=None): |
104 def render_entity_attributes(self, entity, siderelations=None): |
105 for rschema, tschemas, role, dispctrl in self._section_def(entity, 'attributes'): |
105 entity_attributes = self._section_def(entity, 'attributes') |
|
106 if not entity_attributes: |
|
107 return |
|
108 self.w(u'<table>') |
|
109 for rschema, tschemas, role, dispctrl in entity_attributes: |
106 vid = dispctrl.get('vid', 'reledit') |
110 vid = dispctrl.get('vid', 'reledit') |
107 if rschema.final or vid == 'reledit': |
111 if rschema.final or vid == 'reledit': |
108 value = entity.view(vid, rtype=rschema.type, role=role) |
112 value = entity.view(vid, rtype=rschema.type, role=role) |
109 else: |
113 else: |
110 rset = self._relation_rset(entity, rschema, role, dispctrl) |
114 rset = self._relation_rset(entity, rschema, role, dispctrl) |
112 value = self.view(vid, rset) |
116 value = self.view(vid, rset) |
113 else: |
117 else: |
114 value = None |
118 value = None |
115 if self.skip_none and (value is None or value == ''): |
119 if self.skip_none and (value is None or value == ''): |
116 continue |
120 continue |
117 self._render_attribute(rschema, value) |
121 self._render_attribute(rschema, value, role=role, table=True) |
|
122 self.w(u'</table>') |
118 |
123 |
119 def render_entity_relations(self, entity, siderelations=None): |
124 def render_entity_relations(self, entity, siderelations=None): |
120 for rschema, tschemas, role, dispctrl in self._section_def(entity, 'relations'): |
125 for rschema, tschemas, role, dispctrl in self._section_def(entity, 'relations'): |
121 rset = self._relation_rset(entity, rschema, role, dispctrl) |
126 rset = self._relation_rset(entity, rschema, role, dispctrl) |
122 if rset: |
127 if rset: |
189 self.w(u'<h4>%s</h4>' % self.req._(dispctrl['label'])) |
194 self.w(u'<h4>%s</h4>' % self.req._(dispctrl['label'])) |
190 self.wview(dispctrl.get('vid', defaultvid), rset, |
195 self.wview(dispctrl.get('vid', defaultvid), rset, |
191 initargs={'dispctrl': dispctrl}) |
196 initargs={'dispctrl': dispctrl}) |
192 self.w(u'</div>') |
197 self.w(u'</div>') |
193 |
198 |
194 def _render_attribute(self, rschema, value, role='subject'): |
199 def _render_attribute(self, rschema, value, role='subject', table=False): |
195 if rschema.final: |
200 if rschema.final: |
196 show_label = self.show_attr_label |
201 show_label = self.show_attr_label |
197 else: |
202 else: |
198 show_label = self.show_rel_label |
203 show_label = self.show_rel_label |
199 label = display_name(self.req, rschema.type, role) |
204 label = display_name(self.req, rschema.type, role) |
200 self.field(label, value, show_label=show_label, tr=False) |
205 self.field(label, value, show_label=show_label, tr=False, table=table) |
201 |
206 |
202 |
207 |
203 class RelatedView(EntityView): |
208 class RelatedView(EntityView): |
204 id = 'autolimited' |
209 id = 'autolimited' |
205 |
210 |