def render(self, name, value, attrs=None): value = [] if value is None else value output = [] output.append(u'<table class="services_properties wide center">') for srv in self.services: output.append(u'<tr><th colspan="%s">%s</th></tr>' % (self.COLUMNS * 2, srv.get('name'))) js_cb_all = u'''<script type="text/javascript"> $("#%(id)s_all").click(function() { var checked_status = this.checked; $("input[name^=%(id)s]").each(function() { this.checked = checked_status; }); }); </script>''' % ({'id': srv['id']}) id_all = '%s_all' % srv['id'] attrs = {'id': id_all} label_for = u' for="%s"' % id_all cb = CheckboxInput(attrs) rendered_cb = cb.render(id_all, id_all in self.sel_props) output.append(u'<tr><td colspan="%s">%s <label%s>%s</label> %s</td></tr>' % (self.COLUMNS * 2, rendered_cb, label_for, _('select all'), js_cb_all)) props = srv['properties'] rendered_props = [] for p in props: id = '%s_%s' % (srv['id'], p) attrs = {'id': id} label_for = u' for="%s"' % id cb = CheckboxInput(attrs) rendered_cb = cb.render(id, id in self.sel_props) rendered_props.append((rendered_cb, u'<label%s>%s</label>' % (label_for, p))) output.append(elems_as_table(rendered_props, self.COLUMNS)) output.append(u'</table><br>') return mark_safe(u'\n'.join(output))
def listtotable(values, col_num): values = map(force_unicode, values) values = [conditional_escape(v) for v in values] return mark_safe(elems_as_table(values, col_num))