Beispiel #1
0
 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])
Beispiel #2
0
 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]))
Beispiel #3
0
    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