I have two function both of which don't execute the way I expect/want
them to execute.
The first one:
def byplace():
form=form_factory(SQLField('plaats',requires=IS_NOT_EMPTY(),\
widget=lambda self, value:TAG[''](INPUT
(_id='byplace',_name='plaats',_class='ac_input',_type='text'))))
if form.accepts(request.vars,session):
clubs=db((db.bedrijf.id==db.adres.bedrijf)&
(db.bedrijf.id==db.bedrijfinschrijving.bedrijf)&\
(db.adres.plaats==request.vars.plaats)&
(db.adres.adressoort=='vestigingsadres')&
(db.bedrijfinschrijving.inschrijving=='fitnessclub'))\
.select
(db.bedrijf.id,db.bedrijf.bedrijfsnaam,db.bedrijf.status,\
db.adres.straat,orderby=db.bedrijf.status|
db.bedrijf.bedrijfsnaam)
elif form.errors:
response.flash='form has errors'
else:
response.flash='please fill the form'
clubs=[]
return dict(form=form,clubs=clubs)
Executes alright if I enter a valid plaats (city), however, when the
auto-complete field is empty it doesn't display an error message, it
displays none in the flash. Then, when I enter a plaats which is not
in the auto-complete drop-box, again the flash displays none. So the
elif form.errors: is never executed, why not?
Ideally, the auto-comlete drop-box should behave like a standard drop-
box, i.e. not allow you to enter anything that is not in the drop-box.
However, the pengoworks auto-complete doesn't work that way.
The second one:
def byzipcode():
form=form_factory(SQLField('postcoderegio',requires=[IS_LENGTH
(2),IS_NOT_EMPTY()],\
widget=lambda self, value:TAG[''](INPUT
(_id='byzipcode',_name='postcoderegio',_class='ac_input',_type='text'))))
if form.accepts(request.vars,session):
minmax=db(db.postcoderegio.regio==request.vars.postcoderegio).
\
select(db.postcoderegio.codemin,db.postcoderegio.codemax)
if not len(minmax):
response.flash='Please provide a valid postcoderegion'
redirect(URL(r=request,f='byzipcode'))
else:
minimum=int(minmax[0].codemin)
maximum=int(minmax[0].codemax)
clubs=db((db.bedrijf.id==db.adres.bedrijf)&
(db.bedrijf.id==db.bedrijfinschrijving.bedrijf)&\
(db.adres.postcode_cijferdeel>=minimum)&
(db.adres.postcode_cijferdeel<=maximum)\
&(db.adres.adressoort=='vestigingsadres')&
(db.bedrijfinschrijving.inschrijving=='fitnessclub'))\
.select
(db.bedrijf.id,db.bedrijf.bedrijfsnaam,db.bedrijf.status,db.adres.straat,
\
db.adres.plaats,orderby=db.bedrijf.status|
db.bedrijf.bedrijfsnaam)
elif form.errors:
response.flash='form has errors'
else:
response.flash='please fill the form'
clubs=[]
return dict(form=form,clubs=clubs)
Executes alright if I enter a valid postcoderegio (zipcoderegion),
however, when the auto-complete field is empty or contains a value
with a length other than 2 it doesn't display an error message, it
displays please fill the form in the flash.
Then when the value in the auto-complete passes validation, but minmax
is empty, I expect the message in the flash to be: please provide a
valid postalcoderegion.
In both functions, when clubs is empty the flash displays none I would
like to replace that with a more meaning full message, but that would
introduce another if statement ...
I hope one of you can help me fix this flaws in the flow of execution.
Annet.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"web2py Web Framework" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---