def selection_html(self, selections, context): return html.select( name=context.name(self), size=self.size, c=[html.option(desc, value=value, selected=self.selected(value, context.default(self))) for (value, desc) in selections])
def selection_html(self, selections, context): result = [] size = self.size if size is NoDefault: size = min(len(selections), self.max_size) result.append(html.select( name=context.name(self), size=size, multiple="multiple", c=[html.option(desc, value=value, selected=self.selected(value, context.default(self)) and "selected" or None) for value, desc in selections]))
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