I defined tables Day and OpeningHours:

db.define_table('Day',
    Field('name',length=16,default='',notnull=True,unique=True),
    Field('byday',length=2,default='',notnull=True,unique=True),
    format='%(name)s',
    migrate=False)

db.define_table('OpeningHours',
    Field('nodeID','reference 
Node',default='',notnull=True,ondelete='CASCADE',writable=False,readable=False),
    Field('dayID','reference 
Day',default='',notnull=True,ondelete='RESTRICT'),
    Field('fromTime',type='time'),
    Field('toTime',type='time'),
    migrate=False)

These are the opening hours:

Monday    09:00 - 12:00
Monday    15:00 - 22:00
Tuesday    09:00 - 22:00
Wednesday    09:00 - 12:00
Wednesday    09:00 - 12:00
Thursday    09:00 - 22:00
Friday    09:00 - 22:00
Saturday    09:00 - 13:00
Sunday    10:00 - 13:00

When I query the database, rows (OpeningHours and Day joined) read like:

nodeID    fromTime    toTime    byday
1              09:00         12:00       MO
1              15:00         22:00       MO
1              09:00         22:00       TU
1              09:00         12:00       WE
1              12:00         15:00       WE
1              09:00         22:00       TH
1              09:00         22:00       FR
1              09:00         13:00       SA
1              10:00         13:00       SO

I'd like the application to create events on the earliest date that puts the
opening hours in the future and make them downloadable as a .ics file:

BEGIN:VCALENDAR
BEGIN:VEVENT
DTSTART:20120423T090000
DTEND:20120423T120000
RRULE:BYDAY=MO
END:VEVENT
BEGIN:VEVENT
DTSTART:20120423T150000
DTEND:20120423T220000
RRULE:BYDAY=MO
END:VEVENT
BEGIN:VEVENT
DTSTART:20120424T090000
DTEND:20120424T220000
RRULE:BYDAY=TU
END:VEVENT
...
END:VCALENDAR


weekday=request.now.weekday() + 1  matches the id of the days.

I wonder whether there is an easy way to relate days to dates.


Kind regards,

Annet.




Reply via email to