I am still struggling with the formatting of date, I first tried to solve the problem the best way, when I didn't get that to work I thought I'd try the quick fix, unfortunately, resulting in the same errors.
This works, however, the date is displayed in the format: YYYY-mm-dd, whereas I need dd-mm-YYYY. Validator in model: db.event.van_datum.requires=IS_DATE('%Y-%m-%d') db.event.tot_datum.requires=IS_NULL_OR(IS_DATE('%Y-%m-%d')) web2py_ajax.html: try {$("input.date").focus( function() {Calendar.setup({ inputField:this.id, ifFormat:"{{=T('%Y-%m-%d')}}", showsTime:false }); }); } catch(e) {}; try { $("input.datetime").focus( function() {Calendar.setup({ inputField:this.id, ifFormat:"{{=T('%Y-%m-%d %H:%M:%S')}}", showsTime: true,timeFormat: "24" }); }); } catch(e) {}; try { $("input.time").clockpick({ starthour:0, endhour:23, showminutes:true, military:true }); } catch(e) {}; Function in controller: def byplace(): response.functionname=T('Event list by place') response.image=URL(r=request,c='static',f='media/core/banner.png') form=form_factory(SQLField('plaats',requires=IS_NOT_EMPTY(),\ widget=lambda self, value:INPUT (_id='eventbyplace',_name='plaats',_class='ac_input',_type='text',requires=self.requires)), SQLField('datum',type='date',requires=IS_DATE('%Y-%m-%d')),\ SQLField('dagen',requires=IS_IN_SET([7,14,28,56],labels=['1 week','2 weken','4 weken','8 weken']))) events=[] if form.accepts(request.vars,session): response.flash=T('no results') fromdate=request.vars.datum todate=IS_DATE()(fromdate)[0]+datetime.timedelta(days=int (request.vars.dagen)) events=db((db.event.plaats==request.vars.plaats)& (db.event.van_datum>=fromdate)&\ (db.event.van_datum<=todate)&(db.event.doelgroep=='Consumer')& (db.event.scope=='Extern'))\ .select (db.event.id,db.event.event,db.event.van_datum,db.event.locatie,\ db.event.eventtype,orderby=db.event.van_datum) elif form.errors: response.flash=T('form has errors') else: response.flash=T('please fill the form') return dict(form=form,events=events) In the view: <td> {{=event.van_datum}} </td> This doesn't work: Validator in model: db.event.van_datum.requires=IS_DATE('%d-%m-%Y') db.event.tot_datum.requires=IS_NULL_OR(IS_DATE('%d-%m-%Y')) web2py_ajax.html: try {$("input.date").focus( function() {Calendar.setup({ inputField:this.id, ifFormat:"{{=T('%d-%m-%Y')}}", showsTime:false }); }); } catch(e) {}; try { $("input.datetime").focus( function() {Calendar.setup({ inputField:this.id, ifFormat:"{{=T('%d-%m-%Y %H:%M:%S')}}", showsTime: true,timeFormat: "24" }); }); } catch(e) {}; try { $("input.time").clockpick({ starthour:0, endhour:23, showminutes:true, military:true }); } catch(e) {}; On Apr 17, 8:09 am, jmverm...@xs4all.nl wrote: Function in the controller: def byplace(): response.functionname=T('Event list by place') response.image=URL(r=request,c='static',f='media/core/banner.png') form=form_factory(SQLField('plaats',requires=IS_NOT_EMPTY(),\ widget=lambda self, value:INPUT (_id='eventbyplace',_name='plaats',_class='ac_input',_type='text',requires=self.requires)), SQLField('datum',type='date',requires=IS_DATE('%d-%m-%Y')),\ SQLField('dagen',requires=IS_IN_SET([7,14,28,56],labels=['1 week','2 weken','4 weken','8 weken']))) events=[] if form.accepts(request.vars,session): response.flash=T('no results') fromdate=request.vars.datum todate=IS_DATE()(fromdate)[0]+datetime.timedelta(days=int (request.vars.dagen)) events=db((db.event.plaats==request.vars.plaats)& (db.event.van_datum>=fromdate)&\ (db.event.van_datum<=todate)&(db.event.doelgroep=='Consumer')& (db.event.scope=='Extern'))\ .select (db.event.id,db.event.event,db.event.van_datum,db.event.locatie,\ db.event.eventtype,orderby=db.event.van_datum) elif form.errors: response.flash=T('form has errors') else: response.flash=T('please fill the form') return dict(form=form,events=events) Exposing the function results in the following error: File "/Library/Python/2.5/site-packages/web2pyfitwise/applications/ core/controllers/eventlist.py", line 25, in byplace todate=IS_DATE()(fromdate)[0]+datetime.timedelta(days=int (request.vars.dagen)) TypeError: cannot concatenate 'str' and 'datetime.timedelta' objects When I replace todate=... with: todate=form.vars.datum+datetime.timedelta(days=int(form.vars.dagen)) and expose the function I get this error: File "/Library/Python/2.5/site-packages/web2pyfitwise/applications/ core/controllers/eventlist.py", line 29, in byplace db.event.eventtype,orderby=db.event.van_datum) File "/Library/Python/2.5/site-packages/web2pyfitwise/gluon/sql.py", line 1902, in select r = response(query) File "/Library/Python/2.5/site-packages/web2pyfitwise/gluon/sql.py", line 1897, in response self._db._execute(query) File "/Library/Python/2.5/site-packages/web2pyfitwise/gluon/sql.py", line 664, in <lambda> **b) DataError: date/time field value out of range: "21-04-2009" HINT: Perhaps you need a different "datestyle" setting. which, I guess, refers to the orderby clause in the query: events=db((db.event.plaats==request.vars.plaats)& (db.event.van_datum>=fromdate)&\ (db.event.van_datum<=todate)&(db.event.doelgroep=='Consumer')& (db.event.scope=='Extern'))\ .select (db.event.id,db.event.event,db.event.van_datum,db.event.locatie,\ db.event.eventtype,orderby=db.event.van_datum) Furthermore, inserting an event through appadmin results in a: must be YYYY-MM-DD! validation error. I hope one of you can help me solve this problem, it's getting on my nerves.... Kind regards, 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 web2py@googlegroups.com To unsubscribe from this group, send email to web2py+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/web2py?hl=en -~----------~----~----~----~------~----~------~--~---