Exemplo n.º 1
0
 def line(self, obj, label, input, help_string='', error=None):
     _class = self.get_class(obj)
     if error:
         _class = _class + ' error'
     
     if self.get_widget_name(obj) == 'RadioSelect':
         obj.build = YamlRadioSelect
         fs = Tag('fieldset')
         fs << Tag('legend', label)
         fs << input
         return fs
     else:
         div = Tag('div', _class=_class, id='div_'+obj.id)
         with div:
             if error:
                 div.strong(error, _class="message")
             if self.get_widget_name(obj) == 'Checkbox':
                 div << input
                 div << label
                 div << help_string
             else:
                 div << label
                 div << help_string
                 div << input
         return div
Exemplo n.º 2
0
    def line(self, fields, n):
        _x = 0
        for _f in fields:
            if isinstance(_f, string_types):
                _x += 1
            elif isinstance(_f, dict):
                _x += _f.get('colspan', 1)
            else:
                raise Exception(
                    'Colume definition is not right, only support string or dict'
                )

        tr = Tag('tr', newline=True)
        with tr:
            for x in fields:
                _span = int(n / _x)
                if isinstance(x, string_types):
                    name = x
                elif isinstance(x, dict):
                    name = x['name']
                    _span = _span * x.get('colspan', 1)

                f = getattr(self.form, name)
                obj = self.form.fields[name]

                #process hidden field
                if self.is_hidden(obj):
                    #tr << f
                    continue

                _class = self.get_class(obj)
                if f.error:
                    _class = _class + ' error'

                with tr.td(colspan=_span,
                           width='%d%%' % (100 * _span / n, ),
                           valign='top'):
                    with tr.Div(_class=_class, id='div_' + obj.id):
                        if f.error:
                            tr.strong(f.error, _class="message")
                        if self.get_widget_name(obj) == 'Checkbox':
                            tr << f
                            tr << f.label
                            tr << f.help_string or '&nbsp;'
                        else:
                            if self.label_fix:
                                tr << f.field.get_label(
                                    _class='field label_fix')
                            else:
                                tr << f.label
                            tr << f
                            tr << f.help_string or '&nbsp;'

        return tr
Exemplo n.º 3
0
    def line(self, fields, n):
        _x = 0
        for _f in fields:
            if isinstance(_f, (str, unicode)):
                _x += 1
            elif isinstance(_f, dict):
                _x += _f.get('colspan', 1)
            else:
                raise Exception, 'Colume definition is not right, only support string or dict'

        tr = Tag('tr', newline=True)
        with tr:
            for x in fields:
                _span = n / _x
                if isinstance(x, (str, unicode)):
                    name = x
                elif isinstance(x, dict):
                    name = x['name']
                    _span = _span * x.get('colspan', 1)

                f = getattr(self.form, name)
                obj = self.form.fields[name]
                
                #process hidden field
                if self.is_hidden(obj):
                    #tr << f
                    continue
                
                _class = self.get_class(obj)
                if f.error:
                    _class = _class + ' error'
                
                with tr.td(colspan=_span, width='%d%%' % (100*_span/n,), valign='top'):
                    with tr.Div(_class=_class, id='div_'+obj.id):
                        if f.error:
                            tr.strong(f.error, _class="message")
                        if self.get_widget_name(obj) == 'Checkbox':
                            tr << f
                            tr << f.label
                            tr << f.help_string or '&nbsp;'
                        else:
                            if self.label_fix:
                                tr << f.field.get_label(_class='field label_fix')
                            else:
                                tr << f.label
                            tr << f
                            tr << f.help_string or '&nbsp;'
                
        return tr
Exemplo n.º 4
0
    def line(self, fields, n):
        _x = 0
        for _f in fields:
            if isinstance(_f, (str, unicode)):
                _x += 1
            elif isinstance(_f, dict):
                _x += _f.get("colspan", 1)
            else:
                raise Exception, "Colume definition is not right, only support string or dict"

        tr = Tag("tr")
        with tr:
            for x in fields:
                _span = n / _x
                if isinstance(x, (str, unicode)):
                    name = x
                elif isinstance(x, dict):
                    name = x["name"]
                    _span = _span * x.get("colspan", 1)

                f = getattr(self.form, name)
                obj = self.form.fields[name]
                _class = self.get_class(obj)
                if f.error:
                    _class = _class + " error"

                with tr.td(colspan=_span, width="%d%%" % (100 * _span / n,), valign="top"):
                    with tr.div(_class=_class, id="div_" + obj.id):
                        if f.error:
                            tr.strong(f.error, _class="message")
                        if self.get_widget_name(obj) == "Checkbox":
                            tr << f
                            tr << f.label
                            tr << f.help_string or "&nbsp;"
                        else:
                            if self.label_fix:
                                tr << f.field.get_label(_class="field label_fix")
                            else:
                                tr << f.label
                            tr << f
                            tr << f.help_string or "&nbsp;"

        return tr
Exemplo n.º 5
0
 def do_field(self, indent, value, **kwargs):
     field_name = kwargs['name']
     field = getattr(self.form, field_name)
     error = field.error
     obj = self.form.fields[field_name]
     help_string = kwargs.get('help_string', None) or field.help_string
     if 'label' in kwargs:
         label = kwargs['label']
     else:
         label = obj.label
     if label:
         obj.label = label
         label_text = obj.get_label(_class='field')
     else:
         label_text = ''
     
     _class = self.get_class(obj)
     if error:
         _class = _class + ' error'
     
     if self.is_hidden(obj):
         return str(field)
     
     div = Tag('div', _class=_class)
     with div:
         if error:
             div.strong(error, _class="message")
         if self.get_widget_name(obj) == 'Checkbox':
             div << field
             div << label_text
             div << help_string
         else:
             div << label_text
             div << help_string
             div << field
     return indent*' ' + str(div)
Exemplo n.º 6
0
    def do_field(self, indent, value, **kwargs):
        field_name = kwargs['name']
        field = getattr(self.form, field_name)
        error = field.error
        obj = self.form.fields[field_name]
        help_string = kwargs.get('help_string', None) or field.help_string
        if 'label' in kwargs:
            label = kwargs['label']
        else:
            label = obj.label
        if label:
            obj.label = label
            label_text = obj.get_label(_class='field')
        else:
            label_text = ''

        _class = self.get_class(obj)
        if error:
            _class = _class + ' error'

        if self.is_hidden(obj):
            return str(field)

        div = Tag('div', _class=_class)
        with div:
            if error:
                div.strong(error, _class="message")
            if self.get_widget_name(obj) == 'Checkbox':
                div << '<label>' + str(field) + label + '</label>'
                #                div << label_text
                div << help_string
            else:
                div << label_text
                div << help_string
                div << field
        return indent * ' ' + str(div)
Exemplo n.º 7
0
    def line(self, obj, label, input, help_string="", error=None):
        _class = self.get_class(obj)
        if error:
            _class = _class + " error"

        if self.get_widget_name(obj) == "RadioSelect":
            obj.build = YamlRadioSelect
            fs = Tag("fieldset")
            fs << input
            return fs
        else:
            div = Tag("div", _class=_class, id="div_" + obj.id)
            with div:
                if error:
                    div.strong(error, _class="message")
                if self.get_widget_name(obj) == "Checkbox":
                    div << input
                    div << label
                    div << help_string
                else:
                    div << label
                    div << help_string
                    div << input
            return div