def selection_html(self, selections, context): result = [] id = 0 for value, desc in selections: id = id + 1 result.append(html.input( type='checkbox', name=context.name(self), id="%s_%i" % (context.name(self), id), value=value, checked=self.selected(value, context.default(self)) and "checked" or None)) result.append(html.label( " " + str(desc), for_="%s_%i" % (context.name(self), id))) result.append(html.br()) return result
def selection_html(self, selections, context): id = 0 result = [] for value, desc in selections: id = id + 1 if self.selected(value, context.default(self)): checked = 'checked' else: checked = None result.append(html.input( type='radio', name=context.name(self), value=value, id="%s_%i" % (context.name(self), id), checked=checked)) result.append(html.label( for_='%s_%i' % (context.name(self), id), c=desc)) result.append(html.br()) return result
def selection_html(self, selections, context): size = len(selections) if context.default(self): new_selections = [] for default_value in context.default(self): for value, desc in selections: if str(value) == str(default_value): new_selections.append((value, desc)) break assert len(new_selections) == len(selections), ( "Defaults don't match up with the cardinality of the " "selections") selections = new_selections encoded_value = '' for key, value in selections: encoded_value = encoded_value + urllib.quote(str(key)) + " " result = [] result.append( html.select( name=context.name(self, adding='func'), size=size, c=[html.option(desc, value=value) for value, desc in selections])) result.append(html.br()) for name, action in self.buttons(context): result.append(html.input( type='button', value=name, onclick=action)) result.append(html.input( type='hidden', name=context.name(self), value=encoded_value)) result.append(html.script( type='text/javascript', c=self.javascript(context))) return result