here is a function I found while using Google to loop through a start and end date
Code: Select all
import datetime
def daterange( start_date, end_date ):
if start_date <= end_date:
for n in range( ( end_date - start_date ).days + 1 ):
yield start_date + datetime.timedelta( n )
else:
for n in range( ( start_date - end_date ).days + 1 ):
yield start_date - datetime.timedelta( n )
Code: Select all
@auth.requires(auth.has_membership('second_year') or auth.has_membership('admin'))
def second_year_checkout():
check_id = request.args(0)
check = db(db.product.id == check_id).select()
project_date = db(db.checkout.id>0).select()
for valid in check:
db.checkout.product.default=valid.id
form = SQLFORM(db.checkout)
if form.process().accepted:
for project in project_date:
start = project.date_in
end = project.date_out
for date in daterange(start, end):
if date:
session.flash = 'form accepted'
return dict(redirect(URL('default', 'next')))
else:
return dict(redirect(URL('error','availability')))
elif form.errors:
response.flash = 'form has errors'
else:
response.flash = 'please fill the form'
return dict(form=form)
so any ideas? *cheers
Mabo