web/formrenderers.py
branchtls-sprint
changeset 1362 decb7507fa91
parent 1340 12e46a39f3f2
child 1401 56764b1b4887
equal deleted inserted replaced
1361:c558a88bb85d 1362:decb7507fa91
    18 
    18 
    19 
    19 
    20 class FormRenderer(object):
    20 class FormRenderer(object):
    21     """basic renderer displaying fields in a two columns table label | value
    21     """basic renderer displaying fields in a two columns table label | value
    22     """
    22     """
       
    23     display_fields = None # None -> all fields
       
    24     display_label = True
       
    25     display_help = True
       
    26     display_progress_div = True
    23     button_bar_class = u'formButtonBar'
    27     button_bar_class = u'formButtonBar'
    24     
    28     
    25     def __init__(self, display_fields=None, display_label=True,
    29     def __init__(self, **kwargs):
    26                  display_help=True, button_bar_class=None):
    30         if self._set_options(kwargs):
    27         self.display_fields = display_fields # None -> all fields
    31             raise ValueError('unconsumed arguments %s' % kwargs)
    28         self.display_label = display_label
    32 
    29         self.display_help = display_help
    33     def _set_options(self, kwargs):
    30         if button_bar_class is not None:
    34         for key in ('display_fields', 'display_label', 'display_help',
    31             self.button_bar_class = button_bar_class
    35                     'display_progress_div', 'button_bar_class'):
    32             
    36             try:
       
    37                 setattr(self, key, kwargs.pop(key))
       
    38             except KeyError:
       
    39                 continue
       
    40         return kwargs
       
    41     
    33     # renderer interface ######################################################
    42     # renderer interface ######################################################
    34     
    43     
    35     def render(self, form, values):
    44     def render(self, form, values):
       
    45         self._set_options(values)
    36         form.add_media()
    46         form.add_media()
    37         data = []
    47         data = []
    38         w = data.append
    48         w = data.append
    39         w(self.open_form(form, values))
    49         w(self.open_form(form, values))
    40         w(u'<div id="progress">%s</div>' % form.req._('validating...'))
    50         if self.display_progress_div:
       
    51             w(u'<div id="progress">%s</div>' % form.req._('validating...'))
    41         w(u'<fieldset>')
    52         w(u'<fieldset>')
    42         w(tags.input(type=u'hidden', name=u'__form_id',
    53         w(tags.input(type=u'hidden', name=u'__form_id',
    43                      value=values.get('formvid', form.id)))
    54                      value=values.get('formvid', form.id)))
    44         if form.redirect_path:
    55         if form.redirect_path:
    45             w(tags.input(type='hidden', name='__redirectpath', value=form.redirect_path))
    56             w(tags.input(type='hidden', name='__redirectpath', value=form.redirect_path))