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) |