diff --git a/ietf/idtracker/models.py b/ietf/idtracker/models.py index 3ee90d4c3..572be10d2 100644 --- a/ietf/idtracker/models.py +++ b/ietf/idtracker/models.py @@ -643,6 +643,8 @@ class GroupIETF(models.Model): def choices(): return [(wg.group_acronym_id, wg.group_acronym.acronym) for wg in GroupIETF.objects.all().select_related().order_by('acronym.acronym')] choices = staticmethod(choices) + def area_acronym(self): + return AreaGroup.objects.filter(group_acronym_id=self.group_acronym_id).area class Meta: db_table = 'groups_ietf' ordering = ['?'] # workaround django wanting to sort by acronym but not joining with it diff --git a/ietf/meeting/views.py b/ietf/meeting/views.py index c24e1940a..343db9a7a 100644 --- a/ietf/meeting/views.py +++ b/ietf/meeting/views.py @@ -33,9 +33,10 @@ def show_html_materials(request, meeting_num=None): def show_html_agenda(request, meeting_num=None): meeting_info=Meeting.objects.filter(meeting_num=meeting_num)[0] - nonsession_info=NonSession.objects.filter(meeting=meeting_num)[0] + nonsession_info=NonSession.objects.filter(meeting=meeting_num,day_id__gte='0').order_by("day_id") meetingvenue_info=MeetingVenue.objects.filter(meeting_num=meeting_num)[0] queryset_list=MeetingTime.objects.filter(meeting=meeting_num).exclude(day_id=0).order_by("day_id","time_desc") + op_ad_plenary_agenda = "17:00 Welcome\n17:05 NOC report (Wieslaw Blysz, Siemens Networks))\n Host presentation (Georg Haubs, CTO Innovations of Siemens Networks)\n 17:20 IETF Chair and IAD short reports\n 17:30 Jonathan B. Postel award\n 17:40 NomCom Chair (Andrew Lange)\n 17:45 Open Microphone\n 19:30 (latest) end" #only for testing. In production, this text will be pulled from actualy agenda file #queryset_list=WgMeetingSession.objects.filter(meeting_num=meeting_num, group_acronym_id > -3) # Due to a bug in Django@0.96 we can't use foreign key lookup in @@ -46,7 +47,7 @@ def show_html_agenda(request, meeting_num=None): ## queryset_list_sun=WgMeetingSession.objects.filter(meeting=meeting_num, sched_time_id1__day_id=0).order_by('sched_time_id1__time_desc') queryset_list_sun=list(WgMeetingSession.objects.filter(meeting=meeting_num, sched_time_id1__day_id=0)) queryset_list_sun.sort(key=(lambda item: item.sched_time_id1.time_desc)) - return object_list(request,queryset=queryset_list, template_name='meeting/agenda.html',allow_empty=True, extra_context={'qs_sun':queryset_list_sun, 'meeting_info':meeting_info, 'meeting_num':meeting_num, 'nonsession_info':nonsession_info, 'meetingvenue_info':meetingvenue_info}) + return object_list(request,queryset=queryset_list, template_name='meeting/agenda.html',allow_empty=True, extra_context={'qs_sun':queryset_list_sun, 'meeting_info':meeting_info, 'meeting_num':meeting_num, 'nonsession_info':nonsession_info, 'meetingvenue_info':meetingvenue_info, 'op_ad_plenary_agenda':op_ad_plenary_agenda}) def show(request): return 0 diff --git a/ietf/proceedings/models.py b/ietf/proceedings/models.py index 4f47b6303..ef9aa9e53 100644 --- a/ietf/proceedings/models.py +++ b/ietf/proceedings/models.py @@ -1,5 +1,5 @@ from django.db import models -from ietf.idtracker.models import Acronym, PersonOrOrgInfo, IRTF, AreaGroup +from ietf.idtracker.models import Acronym, PersonOrOrgInfo, IRTF, AreaGroup, GroupIETF import datetime # group_acronym is either an IETF Acronym @@ -137,18 +137,10 @@ class SessionName(models.Model): pass class MeetingTime(models.Model): - DAY_CHOICES=( - ('0', 'SUNDAY'), - ('1', 'MONDAY'), - ('2', 'TUESDAY'), - ('3', 'WEDNESDAY'), - ('4', 'THURSDAY'), - ('5', 'FRIDAY'), - ) time_id = models.AutoField(primary_key=True) time_desc = models.CharField(maxlength=100) meeting = models.ForeignKey(Meeting, db_column='meeting_num', unique=True) - day_id = models.IntegerField(choices=DAY_CHOICES) + day_id = models.IntegerField() session_name = models.ForeignKey(SessionName) def __str__(self): return "[%d] |%s| %s" % (self.meeting_id, (self.meeting.start_date + datetime.timedelta(self.day_id)).strftime('%A'), self.time_desc) @@ -170,6 +162,16 @@ class MeetingTime(models.Model): models.Q(combined_time_id2=self.time_id)) def meeting_date(self): return self.meeting.get_meeting_date(self.day_id) + def reg_info(self): + return "%s %s" % (NonSession.objects.filter(meeting=self.meeting, day_id=self.day_id,non_session_ref=1)[0].time_desc, NonSession.objects.filter(meeting=self.meeting, day_id=self.day_id,non_session_ref=1)[0].non_session_ref) + def morning_br_info(self): + return "%s %s" % (NonSession.objects.filter(meeting=self.meeting, non_session_ref=2)[0].time_desc, NonSession.objects.filter(meeting=self.meeting, non_session_ref=2)[0].non_session_ref) + def lunch_br_info(self): + return NonSession.objects.filter(meeting=self.meeting, non_session_ref=3)[0].time_desc + def an_br1_info(self): + return "%s %s" % (NonSession.objects.filter(meeting=self.meeting, non_session_ref=4)[0].time_desc, NonSession.objects.filter(meeting=self.meeting, non_session_ref=4)[0].non_session_ref) + def an_br2_info(self): + return "%s %s" % (NonSession.objects.filter(meeting=self.meeting, non_session_ref=5)[0].time_desc, NonSession.objects.filter(meeting=self.meeting, non_session_ref=5)[0].non_session_ref) class Meta: db_table = 'meeting_times' class Admin: diff --git a/ietf/templates/meeting/agenda.html b/ietf/templates/meeting/agenda.html index 6f9826dac..b6503a3ac 100644 --- a/ietf/templates/meeting/agenda.html +++ b/ietf/templates/meeting/agenda.html @@ -14,19 +14,40 @@ Updated As of : {% now "F j, Y" %}
*** Click on a name of the group to get a meeting agenda ***

{{ meeting_info.start_date|date:"l, F j, Y" }}
-{{ nonsession_info.time_desc }} {{ nonsession_info.non_session_ref }} - {{ meetingvenue_info.reg_area_name } +{{ nonsession_info.0.time_desc }} {{ nonsession_info.0.non_session_ref }} - {{ meetingvenue_info.reg_area_name }}
{% for item in qs_sun %} {{ item.sched_time_id1.time_desc }} {{ item.acronym_name }} - {{ item.sched_room_id1.room_name }}
{% endfor %} +
{% regroup object_list by day_id as days %} {% for day in days %} Day: {{ day.list.1.meeting_date|date:"l, F j, Y" }}
+{{ day.list.1.reg_info }} - {{ meetingvenue_info.reg_area_name }}
+{{ day.list.1.morning_br_info }} - {{ meetingvenue_info.break_area_name }}
+
{% for item in day.list %} +{% ifequal item.session_name_id 3 %} +{{ day.list.1.lunch_br_info }} Break
+{% endifequal %} +{% ifequal item.session_name_id 4 %} +{{ day.list.1.an_br1_info }}
+{% endifequal %} +{% ifequal item.session_name_id 5 %} +{{ day.list.1.an_br2_info }}
+{% endifequal %} {{ item.time_desc }} {{ item.session_name }}
-{% for session in item.sessions %} -{{ session.sched_room_id1.room_name }} {{ session.area }} {{ session.acronym }} {{ session.acronym_name }}
+ +{% for session in item.sessions|dictsort:"area" %} +{% ifequal session.acronym "plenaryw" %} + +{% else %} + +{% endifequal %} {% endfor %} +
{{ op_ad_plenary_agenda|linebreaksbr }}
{{ session.sched_room_id1.room_name }}{{ session.area|upper }}{{ session.acronym }}{{ session.acronym_name }}
+
{% endfor %} +
{% endfor %} {% endblock %}