118
118
_now = datetime.datetime.utcnow()
119
119
if self.fakenow is not None:
120
120
_now = self.fakenow
121
_local_now = self.summit.localize(_now)
121
_local_now = self.summit.localize(_now)
123
123
_slots = self.summit.slot_set.filter(
124
124
start_utc__lte=_now, end_utc__gte=_now)[0]
264
264
html += '<p><strong>No more sessions for today.</strong></p>'
265
265
return mark_safe(html)
270
270
for date_num, date in enumerate(self.dates):
271
271
for slot_num, slot in enumerate(self.slots[date]):
272
272
for room_num, info in enumerate(self.meetings[slot]):
273
273
(room, meeting) = info
276
276
if meeting is None:
277
277
meeting_title = ''
279
279
meeting_title = meeting.title
281
track = meeting.tracks.all()[0].title.lower()
281
track = meeting.tracks.all()[0].title.lower()
282
282
except (IndexError, AttributeError):
283
283
track = "unknown"
284
headings += '<th>%s</th>\n' % escape(room.name)
284
headings += '<th>%s</th>\n' % escape(room.name)
285
285
meetings += '<td class="%s">%s</td>\n' % (track, escape(meeting_title))
299
299
return mark_safe(html)
1012
1012
class LinaroSchedule(Schedule):
1014
def meeting_div(self, meeting, room=None, slot=None, pos=None):
1015
if meeting.is_linaro or meeting.type in ('talk', 'plenary'):
1016
return super(LinaroSchedule, self).meeting_div(
1017
meeting, room=room, slot=slot, pos=pos)
1014
def calculate(self):
1015
super(LinaroSchedule, self).calculate()
1017
# Find all the meetings that are linaro-related and all the rooms that
1018
# are used by at least one linaro-related meeting.
1020
linaro_meetings = []
1021
for slot, meetings in self.meetings.items():
1022
for room, meeting in meetings:
1025
if meeting.is_linaro or meeting.type in ('talk', 'plenary'):
1026
used_rooms.add(room)
1027
linaro_meetings.append(meeting)
1029
# Now remove all unused rooms from self.rooms.
1030
unused_rooms = set(self.rooms) - used_rooms
1031
for room in unused_rooms:
1032
self.rooms.remove(room)
1034
# Finally, remove the (room, meeting) tuples from self.meetings
1035
# for all rooms that are unused. Also drop all non-linaro meetings
1036
# from self.meetings.
1037
for slot, meetings in self.meetings.items():
1038
if slot.type == 'lunch':
1040
tmp_meetings = meetings[:]
1041
for room, meeting in tmp_meetings:
1042
if room in unused_rooms:
1043
meetings.remove((room, meeting))
1044
elif meeting not in linaro_meetings:
1045
idx = meetings.index((room, meeting))
1046
meetings[idx] = (room, None)