def fieldset_renderer(widget, data): fs_attrs = { 'id': cssid(widget, 'fieldset'), 'class_': cssclasses(widget, data) } rendered = data.rendered if widget.attrs['legend']: rendered = data.tag('legend', widget.attrs['legend']) + rendered return data.tag('fieldset', rendered, **fs_attrs) factory.defaults['fieldset.legend'] = False factory.defaults['fieldset.class'] = [] factory.register('fieldset', factory.extractors('compound'), factory.renderers('compound') + [fieldset_renderer]) def form_renderer(widget, data): form_attrs = { 'action': widget.attrs['action'], 'method': widget.attrs['method'], 'enctype': widget.attrs['method']=='post' and \ widget.attrs['enctype'] or None, 'class_': cssclasses(widget, data), 'id': 'form-%s' % '-'.join(widget.path), } if callable(form_attrs['action']): form_attrs['action'] = form_attrs['action'](widget, data) return data.tag('form', data.rendered, **form_attrs) factory.defaults['form.method'] = 'post'
from yafowil.base import factory from yafowil.utils import cssclasses def table_renderer(widget, data): attrs = {"id": widget.attrs.get("id"), "class_": cssclasses(widget, data)} return data.tag("table", data.rendered, **attrs) factory.register("table", factory.extractors("compound"), factory.renderers("compound") + [table_renderer]) def thead_renderer(widget, data): return data.tag("thead", data.rendered) factory.register("thead", factory.extractors("compound"), factory.renderers("compound") + [thead_renderer]) def tbody_renderer(widget, data): return data.tag("tbody", data.rendered) factory.register("tbody", factory.extractors("compound"), factory.renderers("compound") + [tbody_renderer]) def tr_renderer(widget, data): attrs = {"id": widget.attrs.get("id"), "class_": cssclasses(widget, data)} return data.tag("tr", data.rendered, **attrs)