|
32 | 32 | from ietf.group.models import Group |
33 | 33 | from ietf.group.utils import can_manage_materials |
34 | 34 | from ietf.ietfauth.utils import role_required, has_role |
35 | | -from ietf.meeting.models import Meeting, Session, Schedule, Room |
| 35 | +from ietf.meeting.models import Meeting, Session, Schedule, Room, FloorPlan |
36 | 36 | from ietf.meeting.helpers import get_areas, get_person_by_email, get_schedule_by_name |
37 | 37 | from ietf.meeting.helpers import build_all_agenda_slices, get_wg_name_list |
38 | 38 | from ietf.meeting.helpers import get_all_assignments_from_schedule |
@@ -393,7 +393,7 @@ def list_agendas(request, num=None ): |
393 | 393 | }) |
394 | 394 |
|
395 | 395 | @ensure_csrf_cookie |
396 | | -def agenda(request, num=None, name=None, base=None, ext=None, owner=None): |
| 396 | +def agenda(request, num=None, name=None, base=None, ext=None, owner=None, utc=""): |
397 | 397 | base = base if base else 'agenda' |
398 | 398 | ext = ext if ext else '.html' |
399 | 399 | mimetype = { |
@@ -1424,3 +1424,15 @@ def upcoming_ical(request): |
1424 | 1424 | response['Content-Disposition'] = 'attachment; filename="upcoming.ics"' |
1425 | 1425 | return response |
1426 | 1426 |
|
| 1427 | + |
| 1428 | +def floor_plan(request, num=None, floor=None, ): |
| 1429 | + meeting = get_meetings(num).first() |
| 1430 | + schedule = meeting.agenda |
| 1431 | + floors = FloorPlan.objects.filter(meeting=meeting).order_by('order') |
| 1432 | + if floor: |
| 1433 | + floors = floors.filter(name=floor) |
| 1434 | + return render(request, 'meeting/floor-plan.html', { |
| 1435 | + "schedule": schedule, |
| 1436 | + "number": num, |
| 1437 | + "floors": floors, |
| 1438 | + }) |
0 commit comments