web/views/formrenderers.py
changeset 2574 37154aa90947
parent 2561 c6f0634e2d77
child 2575 e033939d5664
equal deleted inserted replaced
2573:9c414dbc76da 2574:37154aa90947
   191 
   191 
   192     def _render_fields(self, fields, w, form):
   192     def _render_fields(self, fields, w, form):
   193         byfieldset = {}
   193         byfieldset = {}
   194         for field in fields:
   194         for field in fields:
   195             byfieldset.setdefault(field.fieldset, []).append(field)
   195             byfieldset.setdefault(field.fieldset, []).append(field)
   196         for fieldset, fields in byfieldset.iteritems():
   196         if form.fieldsets_in_order:
       
   197             fieldsets = form.fieldsets_in_order
       
   198         else:
       
   199             fieldsets = byfieldset.keys()
       
   200         for fieldset in fieldsets:
       
   201             try:
       
   202                 fields = byfieldset.pop(fieldset)
       
   203             except KeyError:
       
   204                 self.warning('no such fieldset: %s (%s)', fieldset, form)
       
   205                 continue
   197             w(u'<fieldset class="%s">' % (fieldset or u'default'))
   206             w(u'<fieldset class="%s">' % (fieldset or u'default'))
   198             if fieldset:
   207             if fieldset:
   199                 w(u'<legend>%s</legend>' % self.req._(fieldset))
   208                 w(u'<legend>%s</legend>' % self.req._(fieldset))
   200             w(u'<table class="%s">' % self.table_class)
   209             w(u'<table class="%s">' % self.table_class)
   201             for field in fields:
   210             for field in fields:
   211                 w(field.render(form, self))
   220                 w(field.render(form, self))
   212                 if self.display_help:
   221                 if self.display_help:
   213                     w(self.render_help(form, field))
   222                     w(self.render_help(form, field))
   214                 w(u'</td></tr>')
   223                 w(u'</td></tr>')
   215             w(u'</table></fieldset>')
   224             w(u'</table></fieldset>')
       
   225         if byfieldset:
       
   226             self.warning('unused fieldsets: %s', ', '.join(byfieldset))
   216 
   227 
   217     def render_buttons(self, w, form):
   228     def render_buttons(self, w, form):
   218         if not form.form_buttons:
   229         if not form.form_buttons:
   219             return
   230             return
   220         w(u'<table class="%s">\n<tr>\n' % self.button_bar_class)
   231         w(u'<table class="%s">\n<tr>\n' % self.button_bar_class)