159 # as vector into week |
159 # as vector into week |
160 leading = (start - min(week)).days |
160 leading = (start - min(week)).days |
161 length = (end - start).days + 1 |
161 length = (end - start).days + 1 |
162 trailing = (max(week) - end).days |
162 trailing = (max(week) - end).days |
163 |
163 |
|
164 # continues prev/next? |
|
165 prev = (start > order.event_start.date()) |
|
166 next = (end < order.event_end.date()) |
|
167 |
164 log.debug("Event %r from %r -> %r", order.event_name, start, end) |
168 log.debug("Event %r from %r -> %r", order.event_name, start, end) |
165 |
169 |
166 yield tags.tr(class_='week-data')( |
170 yield tags.tr(class_='week-data')( |
167 [tags.td("")] * leading, |
171 [tags.td("")] * leading, |
168 tags.td(colspan=length, class_='event')( |
172 tags.td(colspan=length, class_=(' '.join(cls for cls in ( |
169 tags.a(href=self.url_for(urls.OrderView, id=order.id))(order.event_name) |
173 'event', |
|
174 'continues-prev' if prev else None, |
|
175 'continues-next' if next else None, |
|
176 ) if cls)))( |
|
177 tags.a(href=self.url_for(urls.OrderView, id=order.id))( |
|
178 tags.div(class_='arrow-left')("") if prev else None, |
|
179 order.event_name, |
|
180 tags.div(class_='arrow-right')("") if next else None, |
|
181 ) |
170 ), |
182 ), |
171 [tags.td("")] * trailing, |
183 [tags.td("")] * trailing, |
172 ) |
184 ) |
173 |
185 |
174 def render_calendar (self, month) : |
186 def render_calendar (self, month) : |