web/views/formrenderers.py
changeset 2520 8c5cf48ae9ea
parent 2381 caad2367d940
child 2521 782360fa6cc0
equal deleted inserted replaced
2519:ac1a869e1e93 2520:8c5cf48ae9ea
   186                 w(field.render(form, self))
   186                 w(field.render(form, self))
   187                 fields.remove(field)
   187                 fields.remove(field)
   188         return fields
   188         return fields
   189 
   189 
   190     def _render_fields(self, fields, w, form):
   190     def _render_fields(self, fields, w, form):
   191         w(u'<table class="%s">' % self.table_class)
   191         byfieldset = {}
   192         for field in fields:
   192         for field in fields:
   193             w(u'<tr>')
   193             byfieldset.setdefault(field.fieldset, []).append(field)
   194             if self.display_label:
   194         for fieldset, fields in byfieldset.iteritems():
   195                 w(u'<th class="labelCol">%s</th>' % self.render_label(form, field))
   195             w(u'<fieldset class="%s">' % (fieldset or u'default'))
   196             error = form.form_field_error(field)
   196             if fieldset:
   197             if error:
   197                 w(u'<legend>%s</legend>' % self.req._(fieldset))
   198                 w(u'<td class="error">')
   198             w(u'<table class="%s">' % self.table_class)
   199                 w(error)
   199             for field in fields:
   200             else:
   200                 w(u'<tr id="%s_%s">' % (field.name, field.role))
   201                 w(u'<td>')
   201                 if self.display_label:
   202             w(field.render(form, self))
   202                     w(u'<th class="labelCol">%s</th>' % self.render_label(form, field))
   203             if self.display_help:
   203                 error = form.form_field_error(field)
   204                 w(self.render_help(form, field))
   204                 if error:
   205             w(u'</td></tr>')
   205                     w(u'<td class="error">')
   206         w(u'</table>')
   206                     w(error)
       
   207                 else:
       
   208                     w(u'<td>')
       
   209                 w(field.render(form, self))
       
   210                 if self.display_help:
       
   211                     w(self.render_help(form, field))
       
   212                 w(u'</td></tr>')
       
   213             w(u'</table></fieldset>')
   207 
   214 
   208     def render_buttons(self, w, form):
   215     def render_buttons(self, w, form):
   209         if not form.form_buttons:
   216         if not form.form_buttons:
   210             return
   217             return
   211         w(u'<table class="%s">\n<tr>\n' % self.button_bar_class)
   218         w(u'<table class="%s">\n<tr>\n' % self.button_bar_class)