Exemple #1
0
    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))
Exemple #2
0
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))