web/views/primary.py
branchstable
changeset 3809 1b9b51ee543e
parent 3778 fd5449479584
child 3843 200719b9221f
equal deleted inserted replaced
3808:60e78e93a0e5 3809:1b9b51ee543e
   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