Hi Massimo,

 A colleague of mine tell me he sent you a patch to include a horizontal
radio buttons in gluon (similar to the existing horizontal checkboxes).
 Has the patch a chance to make its way to the trunk ?

Best regards,

-Mathieu

On Tue, Jul 27, 2010 at 10:15, Alastair Medford
<alastairmedf...@gmail.com>wrote:

> I was wanting to have horizontal radio buttons in my forms, so I set
> about making my own widget. The widget works well, except for one odd
> behavior. When I load the form, the first radio button is selected as
> desired. But after the form submits, page refreshes etc, the last
> radio buttons in the list are selected. IE, rather than defaulting to
> the first element selected as it did the first time, it defaults to
> the last. As this form will be submitted many times in a row, and the
> first option is the most often used, this proves to be a bit of a
> pain. I've tried this in multiple browsers to the same effect, so I'm
> pretty sure it's happening due to how the code is written. But I'm not
> really sure where this behavior is written. Anyone have any ideas?
>
> The code for my modified widget is below:
>
> class RadioWidget_Horizontal(OptionsWidget):
>
>    @staticmethod
>    def widget(field, value, **attributes):
>        """
>        generates an unordered list of radio buttons, which has
>        a css class radio_list so it can be styled inline.
>
>        see also: :meth:`FormWidget.widget`
>        """
>
>        attr = OptionsWidget._attributes(field, {}, **attributes)
>        attr['_class'] = attr['_class'] + " radio_list"
>
>        if hasattr(field.requires, 'options'):
>            options = field.requires.options()
>        else:
>            raise SyntaxError, 'widget cannot determine options of %s'
> % field
>        opts = [LI(INPUT(_type='radio', _name=field.name,
>                         requires=attr.get('requires',None),
>                         hideerror=True, _value=k,
>                         value=value), v) for (k, v) in options if
> str(v)]
>        if opts:
>            opts[-1][0]['hideerror'] = False
>            opts[0][0]['_checked'] = "checked"
>        return UL(*opts, **attr)

Reply via email to