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 >>> >> >> >

