コード例 #1
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 = "control-group"
                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 self.get_widget_name(obj) == 'Checkbox':
                            tr << "&nbsp"
                        else:
                            if self.label_fix:
                                tr << f.field.get_label(_class='label_fix')
                            else:
                                tr << f.get_label(_class='control-label')

                        div = Div(_class='controls')
                        with div:
                            if self.get_widget_name(obj) == 'Checkbox':
                                div << f
                                div << f.label
                            else:
                                div << f
                            div << Div(_class="help help-block",
                                       _value=f.help_string or '')
                            if f.error:
                                div << Div(_class="message help-block",
                                           _value=f.error)
                        tr << str(div)
        return tr
コード例 #2
0
ファイル: form_helper.py プロジェクト: naomhan/uliweb-peafowl
 def buttons_line(self):
     buttons = self.layout.get('buttons', self.form.get_buttons())
     button_offset = self.layout.get('button_offset', self.label_width)
     buf = Div(_class='form-group')
     if button_offset:
         with buf:
             with buf.div(_class="col-sm-offset-%d col-sm-%d" % (button_offset, 12-button_offset)):
                 buf << buttons
     else:
         with buf:
             buf << buttons
     return str(buf)
コード例 #3
0
 def line(self, obj, label, input, help_string='', error=None):
     div = Div()
     div << label
     div << input
     if error:
         div << Tag('span', error, _class='error')
     div << Tag('br/')
     return div
コード例 #4
0
 def line(self, obj, label, input, help_string='', error=None):
     
     _class = "control-group"
     if error:
         _class = _class + ' error'
     
     div_group = Div(_class=_class, id='div_'+obj.id, newline=True)
     with div_group: 
         div_group << input.get_label(_class='control-label')
         div = Div(_class='controls', newline=True)
         with div:
             div << input                    
             div << Tag('p', _class="help help-block", _value=help_string)
             if error:
                 div << Div(_class="message help-block", _value=error, newline=True)
                 
         div_group << str(div)
     return str(div_group)
コード例 #5
0
 def html(self):
     s = Buf()
     for v, caption in self.choices:
         args = {'value': v}
         id = args.setdefault('id', 'radio_%d' % self.get_id())
         args['name'] = self.kwargs.get('name')
         if v == self.value:
             args['checked'] = None
         div = Div(_class='type-check')
         div << Radio(**args)
         div << Tag('label', caption, _for=id)
         s << div
     return str(s)
コード例 #6
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 = 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
コード例 #7
0
ファイル: layout.py プロジェクト: FashtimeDotCom/uliweb
 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 = 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
コード例 #8
0
 def _buttons_line(self, buttons):
     div = Div(_class="form-actions")
     with div:
         div << buttons
     return div
コード例 #9
0
 def _buttons_line(self, buttons):
     div = Div(_class='line')
     with div:
         with div.Div(_class='type-button'):
             div << buttons
     return str(div)
コード例 #10
0
 def _buttons_line(self, buttons):
     div = Div()
     div << Tag('label', '&nbsp;', _class='field')
     div << buttons
     div << Tag('br/')
     return div
コード例 #11
0
 def _buttons_line(self, buttons):
     div = Div(_class=self.buttons_line_class)
     with div:
         div << buttons
     return div