Anthony,
Thanks for the link; that is useful. Also, was looking at the
implementation of the default widgets in
https://github.com/web2py/web2py/blob/master/gluon/sqlhtml.py.
I think I can conclude that keepvalues does not retain values, as
detailed in this email.
Considering that I have to check for request.vars and then the
form.custom.* to assign values to be displayed, it makes sense to
encapsulate this amount of code in a helper function, or even a widget.
I intend to do just that.
Thanks,
Kiran
________________________________________
Kiran Subbaraman
http://subbaraman.wordpress.com/about/
On 1/14/2014 8:46 PM, Anthony wrote:
Some instruction about creating custom widgets at the end of this
section:
http://web2py.com/books/default/chapter/29/07/forms-and-validators#Widgets.
On Tuesday, January 14, 2014 12:33:22 AM UTC-5, Kiran Subbaraman wrote:
Yes, that works: use request.vars.*. That was the option which I
had mentioned I may need to resort to, since *keepvalues *doesn't
seem to work for me.
This basically comes down to me creating a bunch of widgets;
mirroring the ones in web2py, where a widget would have logic,
similar to the one below, in it.
I need to figure out how to create a widget now. Am familiar with
creating jsp tag libraries, and dojo widgets.
|
<input type="text" class="form-control
{{if form.errors.country:}}invalidinput{{pass}}"
id="country" name="country"
value="{{=request.vars.country or
form.custom.inpval['country']}}"
placeholder=|"{{=form.custom.comment['country']}}"
|
|
Thanks for your inputs,
Kiran
________________________________________
Kiran Subbaraman
http://subbaraman.wordpress.com/about/
<http://subbaraman.wordpress.com/about/>
On 1/14/2014 1:23 AM, Massimo Di Pierro wrote:
Strange. How about
{{=request.vars.country or form.custom.inpval['country']}}
On Monday, 13 January 2014 11:13:33 UTC-6, subbaram...@gmail.com
wrote:
Massimo,
Yes, I did. Does not make a difference.
Thanks for the suggestion,
Kiran
On Monday, January 13, 2014 7:49:15 PM UTC+5:30, Massimo Di
Pierro wrote:
Have you tried replacing
value="{{=form.custom.inpval['country']}}"
with
value="{{=form.custom.dspval['country']}}"
On Sunday, 12 January 2014 22:50:43 UTC-6,
subbaram...@gmail.com wrote:
Really would like some help with this. Anyone have
suggestions?
Thank you,
Kiran
On Saturday, January 11, 2014 12:10:07 AM UTC+5:30,
subbaram...@gmail.com wrote:
Hello All,
The *design *is: I have a custom form with the a
controller that inserts/updates a table. Tthe
form accepts data, and on successful submission
of this form, it stays on the same page (there
are no redirects to another page or form)
*Issue*: The problem am seeing is, when I update
values in the form, and submit it, the entered
values are lost when the form returns because of
successful submit, or due to errors. I have tried
to use keepvalues=True in the form.accepts() and
form.process() methods. No luck.
Details below.
Since the page am building has specific design
needs, I went with the option of a custom form,
where I used the form.custom.* options quite a
bit. Therefore input fields in the form look like
this
|
<input type="text" class="form-control
{{if
form.errors.country:}}invalidinput{{pass}}"
id="country" name="country"
value="{{=form.custom.inpval['country']}}"
placeholder=|"{{=form.custom.comment['country']}}"
|
|
Also the controller is coded as below
|
x =db(db.x.x_id ==auth.user.id).select().first()
ifx:
form =SQLFORM(db.x,record=x)
else:
form =SQLFORM(db.x)
pass
# process the form
ifform.accepts(request.vars,formname='basicinfo_form',keepvalues=True):
response.flash ='Basic Information
updated successfully.'
elifform.errors:
response.flash ='The submitted form
contains errors. The fields in error are
highlighted below.'
else:
response.flash ='Please fill the form.'
pass
returndict(form=form)
|
I was thinking that maybe I should capture the
request.vars and send it back to the view
alongwith the form.
If the request.vars.country value exists, then I
use that, instead of the
form.custom.inpval['country']. This only makes
the view code a bit more verbose, but if it
solves the problem, then nothing like it.
Can anyone suggest what I could do to sort this out?
Thank you,
Kiran
P.S: I did take a look at all the conversations
in the forum about keepvalues. None of them
seemed to help me. Though I did find this one to
be interesting and am curious if this is sorted
out already:
https://groups.google.com/forum/#!searchin/web2py/keepvalues$20on$20validate/web2py/MNEYo96Shzg/jjKZaMmfAgQJ
<https://groups.google.com/forum/#%21searchin/web2py/keepvalues$20on$20validate/web2py/MNEYo96Shzg/jjKZaMmfAgQJ>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py
<http://github.com/web2py/web2py> (Source code)
- https://code.google.com/p/web2py/issues/list
<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 web2py+un...@googlegroups.com <javascript:>.
For more options, visit https://groups.google.com/groups/opt_out
<https://groups.google.com/groups/opt_out>.
--
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
--
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.