Wait I think it return the element base on the orderby... I test further.
Richard On Thu, May 3, 2012 at 10:05 AM, Richard Vézina <[email protected] > wrote: > Think that "sort=False" does the trick!! > > Thanks for help, I think you can close the issue... Do you want I leave > the solution with the issue? > > Richard > > > On Thu, May 3, 2012 at 10:02 AM, Richard Vézina < > [email protected]> wrote: > >> Ok, I remove the IS_IN_DB validator and now I get unordered list... So, >> look like it the problem... >> >> I will try to change it... >> >> Richard >> >> >> On Thu, May 3, 2012 at 9:53 AM, Richard Vézina < >> [email protected]> wrote: >> >>> I use IS_IN_DB with a set not the table directly... >>> >>> analyst_set = db((db.auth_group.role=='analyst') & >>> (db.auth_user.id==db.auth_membership.user_id) >>> & (db.auth_membership.group_id==db.auth_group.id)) >>> >>> requires=IS_IN_DB(analyst_set,'auth_user.id','%(initials)s',\ >>> multiple=True,cache=(cache.ram, 3600)), >>> >>> So, maybe it is the IS_IN_DB validator that order the list at the end of >>> the process before returning the list to the DAL. >>> >>> Richard >>> >>> On Wed, May 2, 2012 at 11:12 PM, Massimo Di Pierro < >>> [email protected]> wrote: >>> >>>> Are you talking about the IS_IN_SET() validator? I need to see some >>>> code. There is nothing in DAL that cases this. It must be a validator. So >>>> it depends on what you are using. >>>> >>>> >>>> On Wednesday, 2 May 2012 17:29:35 UTC-5, Richard wrote: >>>>> >>>>> Ok DAL do will return [1,2,3] in case of the user has select the first >>>>> 3 element of the referenced table. >>>>> >>>>> What Choosen plugin return (and what I would to be stored in database >>>>> field) could be [1,3,2] or [3,1,2] or what ever other order in which the >>>>> user had pick those referenced elements. Choosen allow that when use >>>>> multiple option. >>>>> >>>>> So I would like that the DAL return at the database level the order in >>>>> which the element have been entered in the field in case of use of plugin >>>>> like choosen. Off course it is not applying if someone is not using a >>>>> plugin because you can't know in which order the element have been >>>>> selected. >>>>> >>>>> Now, I think that what prevent the DAL to return a unordered list to >>>>> the database is the use of dict... >>>>> >>>>> I think I found a work around... But I didn't have time to implement >>>>> it... It consist of creating an other field to store the content of the >>>>> form.vars.field (list:reference field). So having 2 fields instead of 1... >>>>> >>>>> Hope it more clear. >>>>> >>>>> Richard >>>>> >>>>> On Wed, May 2, 2012 at 4:52 PM, Massimo Di Pierro < >>>>> [email protected]> wrote: >>>>> >>>>>> Richard, I am at a loss about this. the dal does not sort, nor does >>>>>> the validator. Can you show me and example to reproduce this sorting? >>>>>> >>>>>> >>>>>> On Thursday, 19 April 2012 16:14:50 UTC-5, Richard wrote: >>>>>>> >>>>>>> Issue 768 <http://code.google.com/p/web2py/issues/detail?id=768>: >>>>>>> Allow >>>>>>> insert of unsorted or unordered list:reference type field values >>>>>>> On Thu, Apr 19, 2012 at 5:08 PM, Richard Vézina < >>>>>>> [email protected]> wrote: >>>>>>> >>>>>>>> Found this http://stackoverflow.com/****questions/1867861/python-** >>>>>>>> dicti**onary-keep-keys-values-**in-**same-order-as-declared<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/**sandbo**x/raw-file/tip/odict.py<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/**jour**nal/entries/select_**multiple/<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/**c**hosen/<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<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 >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>> >>> >> >

