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 << " " 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
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
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)
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)
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
def _buttons_line(self, buttons): div = Div(_class="form-actions") with div: div << buttons return div
def _buttons_line(self, buttons): div = Div(_class='line') with div: with div.Div(_class='type-button'): div << buttons return str(div)
def _buttons_line(self, buttons): div = Div() div << Tag('label', ' ', _class='field') div << buttons div << Tag('br/') return div
def _buttons_line(self, buttons): div = Div(_class=self.buttons_line_class) with div: div << buttons return div