Example #1
0
 def unknown_close(self, indent, v):
     name, value, kwargs = v
     func_name = 'close_' + name
     if hasattr(self, func_name):
         return getattr(self, func_name)(indent)
     else:
         return indent*' ' + end_tag(name)
Example #2
0
 def to_html(self):
     from itertools import groupby
     
     def _make(v, caption):
         v = safe_str(v)
         args = {'value': v}
         if isinstance(self.value, (tuple, list)) and v in [safe_str(x) for x in self.value]:
             args['selected'] = None
         elif v == safe_str(self.value):
             args['selected'] = None
         return str(Tag('option', safe_str(caption), **args))
         
     s = []
     #if the choices is 3-elements, then will do the group process
     group = False
     if self.choices:
         group = len(self.choices[0]) > 2
     if group:
         for k, g in groupby(self.choices, lambda x:x[0]):
             s.append(begin_tag('optgroup', label=k))
             for x in g:
                 s.append(_make(x[1], x[2]))
             s.append(end_tag('optgroup'))
             
     else:
         for v, caption in self.choices:
             s.append(_make(v, caption))
             
     args = self.kwargs.copy()
     if self.multiple:
         args['multiple'] = None
         args['size'] = self.size
     return str(Tag('select', '\n'.join(s), **args))
Example #3
0
 def unknown(self, indent, v):
     name, value, kwargs = v
     func_name = 'do_' + name
     if hasattr(self, func_name):
         return getattr(self, func_name)(indent, value, **kwargs)
     else:
         return indent*' ' + begin_tag(name, **kwargs) + value + end_tag(name)
Example #4
0
 def to_html(self):
     from itertools import groupby
     
     def _make(v, caption):
         v = safe_str(v)
         args = {'value': v}
         if isinstance(self.value, (tuple, list)) and v in [safe_str(x) for x in self.value]:
             args['selected'] = None
         elif v == safe_str(self.value):
             args['selected'] = None
         return str(Tag('option', safe_str(caption), **args))
         
     s = []
     #if the choices is 3-elements, then will do the group process
     group = False
     if self.choices:
         group = len(self.choices[0]) > 2
     if group:
         for k, g in groupby(self.choices, lambda x:x[0]):
             s.append(begin_tag('optgroup', label=k))
             for x in g:
                 s.append(_make(x[1], x[2]))
             s.append(end_tag('optgroup'))
             
     else:
         for v, caption in self.choices:
             s.append(_make(v, caption))
             
     args = self.kwargs.copy()
     if self.multiple:
         args['multiple'] = None
         args['size'] = self.size
     return str(Tag('select', '\n'.join(s), newline=True, **args))
Example #5
0
 def unknown_close(self, indent, v):
     name, value, kwargs = v
     func_name = 'close_' + name
     if hasattr(self, func_name):
         return getattr(self, func_name)(indent)
     else:
         return indent*' ' + end_tag(name)
Example #6
0
 def unknown(self, indent, v):
     name, value, kwargs = v
     func_name = 'do_' + name
     if hasattr(self, func_name):
         return getattr(self, func_name)(indent, value, **kwargs)
     else:
         return indent*' ' + begin_tag(name, **kwargs) + value + end_tag(name)
Example #7
0
 def do_td_field(self, indent, value, **kwargs):
     field_name = kwargs.pop('name', None)
     field = getattr(self.form, field_name)
     obj = self.form.fields[field_name]
     if 'label' in kwargs:
         label = kwargs.pop('label')
     else:
         label = obj.label
     if label:
         obj.label = label
         label_text = obj.get_label(_class='field')
     else:
         label_text = ''
         
     display = field.data or ' '
     if 'width' not in kwargs:
         kwargs['width'] = 200
     td = begin_tag('td', **kwargs) + u_str(display) + end_tag('td')
     return indent * ' ' + '<th align=right width=200>%s</th>%s' % (label_text, td)
Example #8
0
    def do_td_field(self, indent, value, **kwargs):
        field_name = kwargs.pop('name', None)
        field = getattr(self.form, field_name)
        obj = self.form.fields[field_name]
        if 'label' in kwargs:
            label = kwargs.pop('label')
        else:
            label = obj.label
        if label:
            obj.label = label
            label_text = obj.get_label(_class='field')
        else:
            label_text = ''

        display = field.data or '&nbsp;'
        if 'width' not in kwargs:
            kwargs['width'] = 200
        td = begin_tag('td', **kwargs) + u_str(display) + end_tag('td')
        return indent * ' ' + '<th align=right width=200>%s</th>%s' % (
            label_text, td)
Example #9
0
 def close_buttons(self, indent):
     return indent * ' ' + end_tag('div')
Example #10
0
 def close_buttons(self, indent):
     return indent * ' ' + end_tag('div')