Found this
http://stackoverflow.com/questions/1867861/python-dictionary-keep-keys-values-in-same-order-as-declared
on
stackoverflow where the most rated post redirect here :
http://dev.pocoo.org/hg/sandbox/raw-file/tip/odict.py

Notice, it will download odict.py into your computer that contain a class
supposing to allow preservation of initial order in a python dict...

I think, it could be nice to have this class added to web2py in order to
allow insert into database of unordered list:reference field input...

Since this could be slow (not in case of few value I think), it could be a
choice offer to the user like : list:reference sorted or list:reference
unsorted...

What do you think??

Richard


On Thu, Apr 19, 2012 at 4:59 PM, Richard Vézina <[email protected]
> wrote:

> Some progress...
>
> I just make a check and chosen plugin multiple select option return a
> unordered list of the picked element by the user...
>
> So, now, I think that it could be nice if web2py allow some way to
> determine in case of use of chosen kind of plugin to store a unordered list
> in list:reference field...
>
> I think that it is near line 207 (web2py 1.99.4) gluon/sqlhtml that we
> have to make change :
>
> class OptionsWidget(FormWidget):
>
>     @staticmethod
>     def has_options(field):
>         """
>         checks if the field has selectable options
>
>         :param field: the field needing checking
>         :returns: True if the field has options
>         """
>
>         return hasattr(field.requires, 'options')
>
>     @classmethod
>     def widget(cls, field, value, **attributes):
>         """
>         generates a SELECT tag, including OPTIONs (only 1 option allowed)
>
>         see also: :meth:`FormWidget.widget`
>         """
>         default = dict(value=value) # HERE!!!!!!!!
>
> I am not pretty sure actually... And I don't really know, what could be
> done to keep submit multiple list order in case of plugin use...
>
> I try naively to replace
>
> default = dict(value=value)
>
> By
>
> defautl = value
>
> But it failed.
>
> Richard
>
>
>
>
> On Thu, Apr 19, 2012 at 3:43 PM, Richard Vézina <
> [email protected]> wrote:
>
>> This is a part of the solution I think :
>>
>> http://www.ryancramer.com/journal/entries/select_multiple/
>>
>> Richard
>>
>>
>> On Thu, Apr 19, 2012 at 3:08 PM, Richard <[email protected]>wrote:
>>
>>> Hello,
>>>
>>> I would know if there is a way to tell to list:reference to not order
>>> the id of the reference table to keep the order in wich the user has pick
>>> those element... At the same time I just thought that this concept is
>>> useless except in case you use some javascript plugin like Chosen Multiple
>>> Select (http://harvesthq.github.com/chosen/) because, you pick the
>>> element in a list and there is no way to know which element in the list the
>>> user has selected first.
>>>
>>> My need is to allow users to select element from an other table and keep
>>> a more informative those selected thing. Like the ingredient on the back
>>> panel of food box, the first ingredient more abondant than the second an so
>>> on.
>>>
>>> So, for now I think I am stock with a text field. I would avoid a free
>>> text field because I would prefer user to always use the same name for the
>>> same thing, but I can't do it with text type field. What I thought is a
>>> list:reference field and a button beside the field to allow allow user to
>>> add missing element name in the foreign table if need without leave the
>>> original form. This can be done easily with the select or add web2py slice
>>> :
>>> http://www.web2pyslices.com/slice/show/1446/widget-select-or-add-option.
>>> Thanks to the author.
>>>
>>> But, I think that keeping the order of the selected element can't be
>>> done??
>>>
>>> Thanks for help.
>>>
>>> Richard
>>>
>>
>>
>

Reply via email to