I need to split a date range into shorter intervalle :

    Selection=FORM(TABLE(TR(
    (TD("De l'article",SELECT(_name='DebArt',
*[OPTION(ListeArticle[i].CodeArticle,
_value=str(ListeArticle[i].CodeArticle)) for i in
range(len(ListeArticle))]))),
     TD("A
l'article",SELECT(_name='FinArt',*[OPTION(ListeArticle[i].CodeArticle,
_value=str(ListeArticle[i].CodeArticle)) for i in
range(len(ListeArticle))])),
     TD("Sélectionner
aussi",SELECT(_name='PluArt',_multiple='multiple',
*[OPTION(ListeArticle[i].CodeArticle,
_value=str(ListeArticle[i].CodeArticle)) for i in
range(len(ListeArticle))])),
     TD("Exclure les
articles",SELECT(_name='NonArt',_multiple='multiple',
*[OPTION(ListeArticle[i].CodeArticle,
_value=str(ListeArticle[i].CodeArticle)) for i in
range(len(ListeArticle))])),
     TD("De la date (AAAA-MM-JJ)", INPUT(_name='Debut', requires =
IS_DATE(error_message=T('Doit être de la forme AAAA-MM-JJ !')))),
     TD("A la date (AAAA-MM-JJ)", INPUT(_name='Fin',requires =
IS_DATE(error_message=T('Doit être de la forme AAAA-MM-JJ !')))),
     TD("Interval (AAAA-MM-JJ)", INPUT(_name='Interval', requires =
IS_DATE(error_message=T('Doit être de la forme AAAA-MM-JJ !')))),
     TD("Sélectionner",
INPUT(_type='submit',_value='Sélectionner')))))

    if Selection.accepts(request.vars,keepvalues=True):
        pass

    DebArt=request.vars.DebArt
    Debut=request.vars.Debut
    Fin=request.vars.Fin
    FinArt=request.vars.FinArt
    NonArt=request.vars.NonArt
    PluArt=request.vars.PluArt
    Interval=request.vars.Interval
    try:
        Inter=Fin-Interval
    except:
        Inter=""

As you can see I first tried to get an intervalle by the substraction
of two request.vars., just to figure id it can works but as expecteed
it does not work since Fin and Inter are string types.

Fortunately it works with my sqlite type and i can write things like :
query=db.table.date>=Debut
it works sucessfully

Yet for splitting the range [Debut-Fin] into many regular shorter
intervals, the pb is I don't know how to catch Date type value from
the form that will work with the datetime type of dal ....

If someone can give me an idea .....
Thanks

Reply via email to