Skip to content

Commit 27edcb2

Browse files
author
Michael Lee
committed
* Add meeting materials list page
* For testing, the page lists meeting materials regardless the submission cut off date. * Need to add Training sessions, IRTF RGs, and Interim WGs - Legacy-Id: 203
1 parent 11714d1 commit 27edcb2

6 files changed

Lines changed: 133 additions & 27 deletions

File tree

ietf/iesg/views.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ def wgdocs(request,cat):
1919
queryset_list = InternetDraft.objects.filter(b_approve_date__gte = date_threshold, intended_status__in=[1,2,6,7],idinternal__via_rfc_editor=0).order_by("-b_approve_date")
2020
queryset_list_doc = InternetDraft.objects.filter(b_approve_date__gte = date_threshold, intended_status__in=[3,5],idinternal__via_rfc_editor=0).order_by("-b_approve_date")
2121
elif cat == 'previous':
22-
queryset_list = InternetDraft.objects.filter(b_approve_date__lt = date_threshold, b_approve_date__gte = '1995-1-1', intended_status__in=[1,2,6,7]).order_by("-b_approve_date")
23-
queryset_list_doc = InternetDraft.objects.filter(b_approve_date__lt = date_threshold, b_approve_date__gte = '1995-1-1', intended_status__in=[3,5]).order_by("-b_approve_date")
22+
queryset_list = InternetDraft.objects.filter(b_approve_date__lt = date_threshold, b_approve_date__gte = '1998-10-15', intended_status__in=[1,2,6,7]).order_by("-b_approve_date")
23+
queryset_list_doc = InternetDraft.objects.filter(b_approve_date__lt = date_threshold, b_approve_date__gte = '1998-10-15', intended_status__in=[3,5]).order_by("-b_approve_date")
2424
else:
2525
raise Http404
2626
return object_list(request, queryset=queryset_list, template_name='iesg/ietf_doc.html', allow_empty=True, extra_context={'object_list_doc':queryset_list_doc, 'is_recent':is_recent })

ietf/meeting/views.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from ietf.proceedings.models import Meeting, MeetingTime, WgMeetingSession, SessionName, NonSession, MeetingVenue, IESGHistory
88
from django.views.generic.list_detail import object_list
99
from django.http import Http404
10+
from django.db.models import Q
1011

1112
def default(request):
1213
"""Default page, with links to sub-pages"""
@@ -30,7 +31,9 @@ def meeting_list(request, template):
3031
# Details views
3132

3233
def show_html_materials(request, meeting_num=None):
33-
return render("meeting/list.html",{})
34+
# List of WG sessions and Plenary sessions
35+
queryset_list = WgMeetingSession.objects.filter(Q(meeting=meeting_num, group_acronym_id__gte = -2, status_id=4), Q(irtf__isnull=True) | Q(irtf=0))
36+
return object_list(request,queryset=queryset_list, template_name="meeting/list.html",allow_empty=True, extra_context={'meeting_num':meeting_num})
3437

3538
def show_html_agenda(request, meeting_num=None, html_or_txt=None):
3639
try:

ietf/proceedings/models.py

Lines changed: 56 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,29 @@ def acronym_name(self):
3737
def area(self):
3838
if self.irtf:
3939
area = "irtf"
40+
elif self.group_acronym_id < 0 and self.group_acronym_id > -3:
41+
area = "1plenary"
42+
elif self.group_acronym_id < -2:
43+
area = "ztrain"
4044
else:
4145
try:
4246
area = AreaGroup.objects.get(group=self.group_acronym_id).area.area_acronym.acronym
4347
except AreaGroup.DoesNotExist:
4448
area = ""
4549
return area
50+
def area_name(self):
51+
if self.irtf:
52+
area_name = "IRTF"
53+
elif self.group_acronym_id < 0 and self.group_acronym_id > -3:
54+
area_name = "Plenary Sessions"
55+
elif self.group_acronym_id < -2:
56+
area_name = "Training"
57+
else:
58+
try:
59+
area_name = AreaGroup.objects.get(group=self.group_acronym_id).area.area_acronym.name
60+
except AreaGroup.DoesNotExist:
61+
area_name = ""
62+
return area_name
4663
def isWG(self):
4764
if self.irtf:
4865
return False
@@ -268,17 +285,37 @@ class WgMeetingSession(models.Model, ResolveAcronym):
268285
combined_time_id2 = models.ForeignKey(MeetingTime, db_column='combined_time_id2', null=True, blank=True, related_name='now5')
269286
def __str__(self):
270287
return "%s at %s" % (self.acronym(), self.meeting)
271-
def agenda_file(self):
288+
def agenda_file(self,interimvar=0):
272289
irtfvar = 0
273290
if self.irtf:
274291
irtfvar = self.irtf
275292
try:
276-
filename = WgAgenda.objects.get(meeting=self.meeting, group_acronym_id=self.group_acronym_id,irtf=irtfvar,interim=0).filename
293+
filename = WgAgenda.objects.get(meeting=self.meeting, group_acronym_id=self.group_acronym_id,irtf=irtfvar,interim=interimvar).filename
277294
dir = Proceeding.objects.get(meeting_num=self.meeting).dir_name
278295
retvar = "%s/agenda/%s" % (dir,filename)
279296
except WgAgenda.DoesNotExist:
280297
retvar = ""
281298
return retvar
299+
def minute_file(self,interimvar=0):
300+
irtfvar = 0
301+
if self.irtf:
302+
irtfvar = self.irtf
303+
try:
304+
filename = Minute.objects.get(meeting=self.meeting, group_acronym_id=self.group_acronym_id,irtf=irtfvar,interim=interimvar).filename
305+
dir = Proceeding.objects.get(meeting_num=self.meeting).dir_name
306+
retvar = "%s/minutes/%s" % (dir,filename)
307+
except WgAgenda.DoesNotExist:
308+
retvar = ""
309+
return retvar
310+
def slides(self,interimvar=0):
311+
"""
312+
Get all slides of this session.
313+
"""
314+
irtfvar = 0
315+
if self.irtf:
316+
irtfvar = self.irtf
317+
slides = Slide.objects.filter(meeting=self.meeting,group_acronym_id=self.group_acronym_id,irtf=irtfvar,interim=interimvar).order_by("order_num")
318+
return slides
282319
class Meta:
283320
db_table = 'wg_meeting_sessions'
284321
class Admin:
@@ -299,7 +336,7 @@ class Admin:
299336

300337
class Minute(models.Model, ResolveAcronym):
301338
meeting = models.ForeignKey(Meeting, db_column='meeting_num')
302-
group_acronym = models.ForeignKey(Acronym, raw_id_admin=True)
339+
group_acronym_id = models.IntegerField()
303340
filename = models.CharField(blank=True, maxlength=255)
304341
irtf = models.BooleanField()
305342
interim = models.BooleanField()
@@ -355,6 +392,22 @@ class Slide(models.Model, ResolveAcronym):
355392
in_q = models.IntegerField(null=True, blank=True)
356393
def __str__(self):
357394
return "IETF%d: %s slides (%s)" % (self.meeting_id, self.acronym(), self.slide_name)
395+
def file_loc(self):
396+
dir = Proceeding.objects.get(meeting_num=self.meeting).dir_name
397+
if self.slide_type_id==1:
398+
return "%s/slides/%s-%s/sld1.htm" % (dir,self.acronym(),self.order_num)
399+
else:
400+
if self.slide_type_id == 2:
401+
ext = ".pdf"
402+
elif self.slide_type_id == 3:
403+
ext = ".txt"
404+
elif self.slide_type_id == 4:
405+
ext = ".ppt"
406+
elif self.slide_type_id == 5:
407+
ext = ".doc"
408+
else:
409+
ext = ""
410+
return "%s/slides/%s-%s%s" % (dir,self.acronym(),self.order_num,ext)
358411
class Meta:
359412
db_table = 'slides'
360413
class Admin:

ietf/templates/iesg/ietf_doc.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ <h3><a name="protocol">1. <u>Protocol Action Announcements</u></a></h3>
3131
<b>Date Sent: {{ date.grouper }} </b>
3232
<ul>
3333
{% for item in date.list %}
34-
<li><a href="/iesg/ann/detail/{{ item.idinternal.ballot_id }}/">{{ item.id_document_name }}</a>
34+
<li>{% if item.idinternal.ballot_id %}<a href="/iesg/ann/detail/{{ item.idinternal.ballot_id }}/">{% else %}<a href="http://www.ietf.org/IESG/Announcements/{{ item.filename }}.ann">{% endif %}{{ item.id_document_name }}</a>
3535
{% endfor %}
3636
</ul>
3737
{% endfor %}

ietf/templates/meeting/list.html

Lines changed: 37 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,42 @@
11
{% extends "base.html" %}
2-
{% block title %} Meetings {% endblock %}
2+
{% block title %} IETF {{ meeting_num }} Preliminary & Interim Materials {% endblock %}
33
{% block content %}
4+
<link rel="stylesheet" type="text/css" href="https://www.ietf.org/css/base.css" />
5+
<center>
6+
<h2>IETF {{ meeting_num }} Preliminary & Interim Materials</h2>
7+
<h4>Submission begin </h4>
8+
<h4>Submission cutoff odate: </h4>
9+
<h4>Corrections to submissions cutoff date: </h4>
10+
<br>
11+
Updated as of {% now "r" %}
12+
<br><br>
413

5-
<h3> The following meeting are in chronological order </h3>
6-
<table border="1" cellpadding="2" cellspacing="2" width="820">
7-
<tr>
8-
<th> Meeting City </th> <th> Agenda </th> <th> Minutes </th><th> Materials </th>
9-
</tr>
10-
{% for meeting in meetings %}
11-
<tr>
12-
<td> {{ meeting.city}} ({{ meeting.meeting_num }}) </td>
13-
<td> <a href="/meeting/{{meeting.meeting_num}}/agenda.html"> HTML</a> &middot;
14-
<a href="/meeting/{{meeting.meeting_num}}/agenda.txt"> Text </a>
15-
</td> <td>
16-
<a href="/meeting/{{meeting.meeting_num}}/minutes.html"> HTML</a> &middot;
17-
<a href="/meeting/{{meeting.meeting_num}}/minutes.txt"> Text </a>
18-
</td>
19-
<td>
20-
<a href="/meeting/{{meeting.meeting_num}}/materials.html"> Materials </a>
21-
</td>
22-
</tr>
23-
{% endfor %}
14+
{% regroup object_list|dictsort:"area" by area_name as areas %}
15+
{% for wgs in areas %}
16+
<table cellpadding="0" cellspacing="0" border="2" width="80%">
17+
<tr>
18+
<td colspan=2 bgcolor="#0911DC" valign="center"><font color="#FFFFFF"><center><br><h3><img src="https://www1.ietf.org/images/ib2.gif" width="100%" height=21><br>{{ wgs.grouper }}</h3></center></font>
19+
</td>
20+
</tr>
21+
</table>
22+
{% for wg in wgs.list|dictsort:"acronym" %}
23+
<table cellpadding="0" cellspacing="0" border="2" width="80%">
24+
<tr><a name="wg-{{ wg.acronym }}"></a>
25+
<td align="center" bgcolor="#DDFFDD" width="20%"><b>{{ wg.acronym|upper }}</b><br>
26+
{% if wg.agenda_file %}<a href="http://www3..ietf.org/proceedings/{{ wg.agenda_file }}">[Agenda]</a>{% endif %}{% if wg.minute_file %} <a href="http://www3.ietf.org/proceedings/{{ wg.minute_file }}">[Minutes]</a>{% endif %}</td>
27+
<td><table border="1" width="100%">
28+
{% include "meeting/submission_status_snippet.html" %}
29+
{% for slide in wg.slides %}
30+
<tr><td><a href="http://www3.ietf.org/proceedings/{{ slide.file_loc }}">{{ slide.slide_name }}</a></td>
31+
</tr>
32+
{% endfor %}
33+
</table>
34+
</td>
35+
</tr>
36+
</table>
2437

38+
{% endfor %}
39+
{% endfor %}
40+
41+
</center>
2542
{% endblock %}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
{% if wg.agenda_file and wg.minute_file and wg.slides %}
2+
<tr bgcolor="#BBFFBB"><td>Presentation files received, agenda received, minutes received</td></tr>
3+
{% else %}
4+
{% if not wg.agenda_file and not wg.minute_file and not wg.slides %}
5+
<tr bgcolor="#ff8888"><td>No presendtatio files, no agenda, no minutes</td></tr>
6+
{% else %}
7+
{% if not wg.agenda_file and wg.minute_file and not wg.slides %}
8+
<tr bgcolor="ffffbb"><td>No presentation files, no agenda, minutes received</td></tr>
9+
{% else %}
10+
{% if wg.agenda_file and not wg.minute_file and not wg.slides %}
11+
<tr bgcolor="ffffbb"><td>No presentation files, no minute, agenda received</td></tr>
12+
{% else %}
13+
{% if wg.agenda_file and wg.minute_file and not wg.slides %}
14+
<tr bgcolor="ffffbb"><td>No presentation files, agenda received, minutes received</td></tr>
15+
{% else %}
16+
{% if not wg.agenda_file and not wg.minute_file and wg.slides %}
17+
<tr bgcolor="ffcc88"><td>Presentation files received, no agenda, no minutes</td></tr>
18+
{% else %}
19+
{% if not wg.agenda_file and wg.minute_file and wg.slides %}
20+
<tr bgcolor="ffcc88"><td>Presentation files received, no agenda, minutes received</td></tr>
21+
{% else %}
22+
{% if wg.agenda_file and not wg.minute_file and wg.slides %}
23+
<tr bgcolor="ffcc88"><td>Presentation files received, agenda received, no minutes</td></tr>
24+
{% else %}
25+
<tr bgcolor="cccccc"><td>Unknown Status</td></tr>
26+
{% endif %}
27+
{% endif %}
28+
{% endif %}
29+
{% endif %}
30+
{% endif %}
31+
{% endif %}
32+
{% endif %}
33+
{% endif %}

0 commit comments

Comments
 (0)