They show in flash in 2.9.11 and 2.9.12... Though the widget doesn't displayed them...
Do you see values in the flash message or not? From my understanding of you last message you have them... So, if it the case, I am pretty sure it is a widget issue... This issue seems to be there for a wild, I guess not much user have use this widget with keepvalue=True and it pass silently... You can open a ticket and link this thread. You may link you dummy app a way to reproduce the issue. Richard On Wed, Aug 12, 2015 at 8:45 PM, Richard Vézina <[email protected] > wrote: > If I bring your stuff into a dummy web2py app under web2py 2.9.5, the > keeped values appears in the flash message... Though they are not appearing > in the widget... > > I will try it under more recent version... > > wait > > On Wed, Aug 12, 2015 at 8:24 PM, Ian W. Scott <[email protected]> wrote: > >> Hi Richard, >> >> Here's the packed app (list_string_test). I put a simple SQLFORM on the >> default/index to demonstrate the problem. The first field is a simple >> string field that keeps its values. The second field is a list:string field >> that doesn't. Actually, the list:string widget doesn't get populated with >> *any* of the submitted values. (I said before that the first one was kept, >> but it isn't). The response.flash message also shows you the submitted >> values for the list:string field, so you can see that on resubmission the >> blank field really doesn't submit any values. >> >> Assuming that you see the same problem here, do you want me to create the >> github issue or will you? >> >> Ian >> >> On Wednesday, August 12, 2015 at 2:04:28 PM UTC-4, Richard wrote: >>> >>> Hi Ian, >>> >>> Can you pack a dummy app with a list:string field an single field form >>> with SQLFORM.factory so I can try it here and confirm your issue... >>> >>> Also, can you tell us which web2py version you use. >>> >>> Thanks >>> >>> Richard >>> >>> PS.: Once I confirm I have the issue we should open a ticket on github... >>> >>> # >>> >>> On Wed, Aug 12, 2015 at 1:41 PM, Ian W. Scott <[email protected]> wrote: >>> >>>> No, they're not submitted if I re-submit the form with the preserved >>>> values. >>>> >>>> Ian >>>> >>>> On Wednesday, August 12, 2015 at 1:25:01 PM UTC-4, Richard wrote: >>>>> >>>>> Is the form widget only display the last input but insert the other >>>>> values? I mean, it may be possible that values are there but not correctly >>>>> display by the widget... >>>>> >>>>> Richard >>>>> >>>>> On Wed, Aug 12, 2015 at 1:21 PM, Ian W. Scott <[email protected]> >>>>> wrote: >>>>> >>>>>> Sorry if I'm not explaining this well. The default widget for a >>>>>> list:string field is a vertically stacked list of inputs, one per value. >>>>>> There is a little + at right that allows me to add more inputs to the >>>>>> list >>>>>> dynamically. >>>>>> >>>>>> In a SQLFORM, when I set keepvalues=True the values are preserved in >>>>>> the form fields after form submission. But only one of the inputs from >>>>>> the >>>>>> list:string widget is left, holding just the last string value submitted >>>>>> for that field. In other words, the form doesn't remember the additional >>>>>> inputs I added to the widget (by clicking +) before submission, and it >>>>>> forgets the submitted values from those additional inputs as well. >>>>>> >>>>>> I've experienced this on many forms, so I don't think it's my code. >>>>>> In the case that brought this up for me again, I'm creating a >>>>>> SQLFORM.factory with the fields defined in the controller. (You can see >>>>>> that I've got some for loops to simplify the creation and processing of a >>>>>> large number of fields, but otherwise it's straightforward.) The problem >>>>>> appears with the widgets for any of the list:string fields: >>>>>> >>>>>> >>>>>> message = '' >>>>>> output = '' >>>>>> >>>>>> flds = [Field('label_template', 'string'), >>>>>> Field('words', 'list:string'), >>>>>> Field('aligned', 'boolean'), >>>>>> Field('avoid', 'list:string'), >>>>>> Field('testing', 'boolean')] >>>>>> >>>>>> >>>>>> for n in ['one', 'two', 'three', 'four', 'five']: >>>>>> fbs = [Field('{}_prompt_template'.format(n), >>>>>> 'list:string'), >>>>>> Field('{}_response_template'.format(n), >>>>>> 'list:string'), >>>>>> Field('{}_readable_template'.format(n), >>>>>> 'list:string'), >>>>>> Field('{}_tags'.format(n), 'list:reference tags', >>>>>> requires=IS_IN_DB(db, 'tags.id', '%(tag)s', >>>>>> multiple=True)), >>>>>> Field('{}_tags_secondary'.format(n), 'list:reference >>>>>> tags', >>>>>> requires=IS_IN_DB(db, 'tags.id', '%(tag)s', >>>>>> multiple=True)), >>>>>> Field('{}_tags_ahead'.format(n), 'list:reference >>>>>> tags', >>>>>> requires=IS_IN_DB(db, 'tags.id', '%(tag)s', >>>>>> multiple=True)), >>>>>> Field('{}_npcs'.format(n), 'list:reference npcs', >>>>>> requires=IS_IN_DB(db, 'npcs.id', '%(name)s', >>>>>> multiple=True)), >>>>>> Field('{}_locations'.format(n), 'list:reference >>>>>> locations', >>>>>> requires=IS_IN_DB(db, 'locations.id', >>>>>> '%(map_location)s', >>>>>> multiple=True)), >>>>>> Field('{}_instructions'.format(n), >>>>>> 'list:reference step_instructions', >>>>>> requires=IS_IN_DB(db, 'step_instructions.id' >>>>>> , >>>>>> '%(instruction_label)s', >>>>>> multiple=True)), >>>>>> Field('{}_hints'.format(n), 'list:reference >>>>>> step_hints', >>>>>> requires=IS_IN_DB(db, 'step_hints.id', >>>>>> '%(hint_label)s', >>>>>> multiple=True)), >>>>>> Field('{}_step_type'.format(n), 'list:reference >>>>>> step_types', >>>>>> requires=IS_IN_DB(db, 'step_types.id', >>>>>> '%(step_type)s', >>>>>> multiple=True)), >>>>>> Field('{}_image_template'.format(n), 'string')] >>>>>> flds.extend(fbs) >>>>>> form = SQLFORM.factory(*flds) >>>>>> >>>>>> >>>>>> if form.process(keepvalues=True).accepted: >>>>>> vv = request.vars >>>>>> stepsdata = [] >>>>>> for n in ['one', 'two', 'three', 'four', 'five']: >>>>>> nkeys = [k for k in vv.keys() if re.match('{}.*'. >>>>>> format(n), k)] >>>>>> filledfields = [k for k in nkeys if vv[k] not in ['', >>>>>> None]] >>>>>> if filledfields: >>>>>> ndict = {k: vv[k] for k in nkeys} >>>>>> stepsdata.append(ndict) >>>>>> if isinstance(vv['words'], list): >>>>>> wordlists = [w.split('|') for w in vv['words']] >>>>>> else: >>>>>> wordlists = [vv['words'].split('|')] >>>>>> paths = self.make_path(wordlists, >>>>>> label_template=vv.label_template, >>>>>> stepsdata=stepsdata, >>>>>> testing=vv.testing, >>>>>> avoid=vv.avoid, >>>>>> aligned=vv.aligned >>>>>> ) >>>>>> message, output = self.make_output(paths) >>>>>> >>>>>> >>>>>> elif form.errors: >>>>>> message = BEAUTIFY(form.errors) >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> On Wednesday, August 12, 2015 at 11:04:46 AM UTC-4, Richard wrote: >>>>>>> >>>>>>> Could you show your model and controller... >>>>>>> >>>>>>> This make no sens... >>>>>>> >>>>>>> Richard >>>>>>> >>>>>>> On Wed, Aug 12, 2015 at 10:45 AM, Ian W. Scott <[email protected]> >>>>>>> wrote: >>>>>>> >>>>>>>> I never got any suggestions on this, even though it seems like a >>>>>>>> significant limitation of the widget. Has anyone come up with a >>>>>>>> solution >>>>>>>> for keeping all the values in a list:string field after form >>>>>>>> submission? >>>>>>>> >>>>>>>> Thanks. >>>>>>>> >>>>>>>> >>>>>>>> On Wednesday, June 25, 2014 at 11:33:26 AM UTC-4, Ian W. Scott >>>>>>>> wrote: >>>>>>>>> >>>>>>>>> I've got a SQLFORM.factory form set to keep values after >>>>>>>>> processing with process(keepvalues=True). But it doesn't work on a >>>>>>>>> list:string field. The (otherwise very nice) widget loses all but the >>>>>>>>> first >>>>>>>>> value when the form is submitted (i.e., all but the first text inputs >>>>>>>>> for >>>>>>>>> the field disappear). Is there any way to carry those other text >>>>>>>>> inputs and >>>>>>>>> their values over? >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>> Resources: >>>>>>>> - http://web2py.com >>>>>>>> - http://web2py.com/book (Documentation) >>>>>>>> - http://github.com/web2py/web2py (Source code) >>>>>>>> - https://code.google.com/p/web2py/issues/list (Report Issues) >>>>>>>> --- >>>>>>>> You received this message because you are subscribed to the Google >>>>>>>> Groups "web2py-users" group. >>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>> send an email to [email protected]. >>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>> >>>>>>> >>>>>>> -- >>>>>> Resources: >>>>>> - http://web2py.com >>>>>> - http://web2py.com/book (Documentation) >>>>>> - http://github.com/web2py/web2py (Source code) >>>>>> - https://code.google.com/p/web2py/issues/list (Report Issues) >>>>>> --- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "web2py-users" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to [email protected]. >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> >>>>> -- >>>> Resources: >>>> - http://web2py.com >>>> - http://web2py.com/book (Documentation) >>>> - http://github.com/web2py/web2py (Source code) >>>> - https://code.google.com/p/web2py/issues/list (Report Issues) >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "web2py-users" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >> Resources: >> - http://web2py.com >> - http://web2py.com/book (Documentation) >> - http://github.com/web2py/web2py (Source code) >> - https://code.google.com/p/web2py/issues/list (Report Issues) >> --- >> You received this message because you are subscribed to the Google Groups >> "web2py-users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> For more options, visit https://groups.google.com/d/optout. >> > > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

