* 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
This commit is contained in:
parent
11714d1a0d
commit
27edcb2b3e
|
@ -19,8 +19,8 @@ def wgdocs(request,cat):
|
|||
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")
|
||||
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")
|
||||
elif cat == 'previous':
|
||||
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")
|
||||
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")
|
||||
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")
|
||||
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")
|
||||
else:
|
||||
raise Http404
|
||||
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 })
|
||||
|
|
|
@ -7,6 +7,7 @@ import ietf.utils
|
|||
from ietf.proceedings.models import Meeting, MeetingTime, WgMeetingSession, SessionName, NonSession, MeetingVenue, IESGHistory
|
||||
from django.views.generic.list_detail import object_list
|
||||
from django.http import Http404
|
||||
from django.db.models import Q
|
||||
|
||||
def default(request):
|
||||
"""Default page, with links to sub-pages"""
|
||||
|
@ -30,7 +31,9 @@ def meeting_list(request, template):
|
|||
# Details views
|
||||
|
||||
def show_html_materials(request, meeting_num=None):
|
||||
return render("meeting/list.html",{})
|
||||
# List of WG sessions and Plenary sessions
|
||||
queryset_list = WgMeetingSession.objects.filter(Q(meeting=meeting_num, group_acronym_id__gte = -2, status_id=4), Q(irtf__isnull=True) | Q(irtf=0))
|
||||
return object_list(request,queryset=queryset_list, template_name="meeting/list.html",allow_empty=True, extra_context={'meeting_num':meeting_num})
|
||||
|
||||
def show_html_agenda(request, meeting_num=None, html_or_txt=None):
|
||||
try:
|
||||
|
|
|
@ -37,12 +37,29 @@ class ResolveAcronym(object):
|
|||
def area(self):
|
||||
if self.irtf:
|
||||
area = "irtf"
|
||||
elif self.group_acronym_id < 0 and self.group_acronym_id > -3:
|
||||
area = "1plenary"
|
||||
elif self.group_acronym_id < -2:
|
||||
area = "ztrain"
|
||||
else:
|
||||
try:
|
||||
area = AreaGroup.objects.get(group=self.group_acronym_id).area.area_acronym.acronym
|
||||
except AreaGroup.DoesNotExist:
|
||||
area = ""
|
||||
return area
|
||||
def area_name(self):
|
||||
if self.irtf:
|
||||
area_name = "IRTF"
|
||||
elif self.group_acronym_id < 0 and self.group_acronym_id > -3:
|
||||
area_name = "Plenary Sessions"
|
||||
elif self.group_acronym_id < -2:
|
||||
area_name = "Training"
|
||||
else:
|
||||
try:
|
||||
area_name = AreaGroup.objects.get(group=self.group_acronym_id).area.area_acronym.name
|
||||
except AreaGroup.DoesNotExist:
|
||||
area_name = ""
|
||||
return area_name
|
||||
def isWG(self):
|
||||
if self.irtf:
|
||||
return False
|
||||
|
@ -268,17 +285,37 @@ class WgMeetingSession(models.Model, ResolveAcronym):
|
|||
combined_time_id2 = models.ForeignKey(MeetingTime, db_column='combined_time_id2', null=True, blank=True, related_name='now5')
|
||||
def __str__(self):
|
||||
return "%s at %s" % (self.acronym(), self.meeting)
|
||||
def agenda_file(self):
|
||||
def agenda_file(self,interimvar=0):
|
||||
irtfvar = 0
|
||||
if self.irtf:
|
||||
irtfvar = self.irtf
|
||||
try:
|
||||
filename = WgAgenda.objects.get(meeting=self.meeting, group_acronym_id=self.group_acronym_id,irtf=irtfvar,interim=0).filename
|
||||
filename = WgAgenda.objects.get(meeting=self.meeting, group_acronym_id=self.group_acronym_id,irtf=irtfvar,interim=interimvar).filename
|
||||
dir = Proceeding.objects.get(meeting_num=self.meeting).dir_name
|
||||
retvar = "%s/agenda/%s" % (dir,filename)
|
||||
except WgAgenda.DoesNotExist:
|
||||
retvar = ""
|
||||
return retvar
|
||||
def minute_file(self,interimvar=0):
|
||||
irtfvar = 0
|
||||
if self.irtf:
|
||||
irtfvar = self.irtf
|
||||
try:
|
||||
filename = Minute.objects.get(meeting=self.meeting, group_acronym_id=self.group_acronym_id,irtf=irtfvar,interim=interimvar).filename
|
||||
dir = Proceeding.objects.get(meeting_num=self.meeting).dir_name
|
||||
retvar = "%s/minutes/%s" % (dir,filename)
|
||||
except WgAgenda.DoesNotExist:
|
||||
retvar = ""
|
||||
return retvar
|
||||
def slides(self,interimvar=0):
|
||||
"""
|
||||
Get all slides of this session.
|
||||
"""
|
||||
irtfvar = 0
|
||||
if self.irtf:
|
||||
irtfvar = self.irtf
|
||||
slides = Slide.objects.filter(meeting=self.meeting,group_acronym_id=self.group_acronym_id,irtf=irtfvar,interim=interimvar).order_by("order_num")
|
||||
return slides
|
||||
class Meta:
|
||||
db_table = 'wg_meeting_sessions'
|
||||
class Admin:
|
||||
|
@ -299,7 +336,7 @@ class WgAgenda(models.Model, ResolveAcronym):
|
|||
|
||||
class Minute(models.Model, ResolveAcronym):
|
||||
meeting = models.ForeignKey(Meeting, db_column='meeting_num')
|
||||
group_acronym = models.ForeignKey(Acronym, raw_id_admin=True)
|
||||
group_acronym_id = models.IntegerField()
|
||||
filename = models.CharField(blank=True, maxlength=255)
|
||||
irtf = models.BooleanField()
|
||||
interim = models.BooleanField()
|
||||
|
@ -355,6 +392,22 @@ class Slide(models.Model, ResolveAcronym):
|
|||
in_q = models.IntegerField(null=True, blank=True)
|
||||
def __str__(self):
|
||||
return "IETF%d: %s slides (%s)" % (self.meeting_id, self.acronym(), self.slide_name)
|
||||
def file_loc(self):
|
||||
dir = Proceeding.objects.get(meeting_num=self.meeting).dir_name
|
||||
if self.slide_type_id==1:
|
||||
return "%s/slides/%s-%s/sld1.htm" % (dir,self.acronym(),self.order_num)
|
||||
else:
|
||||
if self.slide_type_id == 2:
|
||||
ext = ".pdf"
|
||||
elif self.slide_type_id == 3:
|
||||
ext = ".txt"
|
||||
elif self.slide_type_id == 4:
|
||||
ext = ".ppt"
|
||||
elif self.slide_type_id == 5:
|
||||
ext = ".doc"
|
||||
else:
|
||||
ext = ""
|
||||
return "%s/slides/%s-%s%s" % (dir,self.acronym(),self.order_num,ext)
|
||||
class Meta:
|
||||
db_table = 'slides'
|
||||
class Admin:
|
||||
|
|
|
@ -31,7 +31,7 @@ This page contains links to all IESG Protocol, Document, and Working Group Actio
|
|||
<b>Date Sent: {{ date.grouper }} </b>
|
||||
<ul>
|
||||
{% for item in date.list %}
|
||||
<li><a href="/iesg/ann/detail/{{ item.idinternal.ballot_id }}/">{{ item.id_document_name }}</a>
|
||||
<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>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endfor %}
|
||||
|
|
|
@ -1,25 +1,42 @@
|
|||
{% extends "base.html" %}
|
||||
{% block title %} Meetings {% endblock %}
|
||||
{% block title %} IETF {{ meeting_num }} Preliminary & Interim Materials {% endblock %}
|
||||
{% block content %}
|
||||
<link rel="stylesheet" type="text/css" href="https://www.ietf.org/css/base.css" />
|
||||
<center>
|
||||
<h2>IETF {{ meeting_num }} Preliminary & Interim Materials</h2>
|
||||
<h4>Submission begin </h4>
|
||||
<h4>Submission cutoff odate: </h4>
|
||||
<h4>Corrections to submissions cutoff date: </h4>
|
||||
<br>
|
||||
Updated as of {% now "r" %}
|
||||
<br><br>
|
||||
|
||||
<h3> The following meeting are in chronological order </h3>
|
||||
<table border="1" cellpadding="2" cellspacing="2" width="820">
|
||||
<tr>
|
||||
<th> Meeting City </th> <th> Agenda </th> <th> Minutes </th><th> Materials </th>
|
||||
</tr>
|
||||
{% for meeting in meetings %}
|
||||
<tr>
|
||||
<td> {{ meeting.city}} ({{ meeting.meeting_num }}) </td>
|
||||
<td> <a href="/meeting/{{meeting.meeting_num}}/agenda.html"> HTML</a> ·
|
||||
<a href="/meeting/{{meeting.meeting_num}}/agenda.txt"> Text </a>
|
||||
</td> <td>
|
||||
<a href="/meeting/{{meeting.meeting_num}}/minutes.html"> HTML</a> ·
|
||||
<a href="/meeting/{{meeting.meeting_num}}/minutes.txt"> Text </a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="/meeting/{{meeting.meeting_num}}/materials.html"> Materials </a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% regroup object_list|dictsort:"area" by area_name as areas %}
|
||||
{% for wgs in areas %}
|
||||
<table cellpadding="0" cellspacing="0" border="2" width="80%">
|
||||
<tr>
|
||||
<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>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
{% for wg in wgs.list|dictsort:"acronym" %}
|
||||
<table cellpadding="0" cellspacing="0" border="2" width="80%">
|
||||
<tr><a name="wg-{{ wg.acronym }}"></a>
|
||||
<td align="center" bgcolor="#DDFFDD" width="20%"><b>{{ wg.acronym|upper }}</b><br>
|
||||
{% 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>
|
||||
<td><table border="1" width="100%">
|
||||
{% include "meeting/submission_status_snippet.html" %}
|
||||
{% for slide in wg.slides %}
|
||||
<tr><td><a href="http://www3.ietf.org/proceedings/{{ slide.file_loc }}">{{ slide.slide_name }}</a></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
{% endfor %}
|
||||
{% endfor %}
|
||||
|
||||
</center>
|
||||
{% endblock %}
|
||||
|
|
33
ietf/templates/meeting/submission_status_snippet.html
Normal file
33
ietf/templates/meeting/submission_status_snippet.html
Normal file
|
@ -0,0 +1,33 @@
|
|||
{% if wg.agenda_file and wg.minute_file and wg.slides %}
|
||||
<tr bgcolor="#BBFFBB"><td>Presentation files received, agenda received, minutes received</td></tr>
|
||||
{% else %}
|
||||
{% if not wg.agenda_file and not wg.minute_file and not wg.slides %}
|
||||
<tr bgcolor="#ff8888"><td>No presendtatio files, no agenda, no minutes</td></tr>
|
||||
{% else %}
|
||||
{% if not wg.agenda_file and wg.minute_file and not wg.slides %}
|
||||
<tr bgcolor="ffffbb"><td>No presentation files, no agenda, minutes received</td></tr>
|
||||
{% else %}
|
||||
{% if wg.agenda_file and not wg.minute_file and not wg.slides %}
|
||||
<tr bgcolor="ffffbb"><td>No presentation files, no minute, agenda received</td></tr>
|
||||
{% else %}
|
||||
{% if wg.agenda_file and wg.minute_file and not wg.slides %}
|
||||
<tr bgcolor="ffffbb"><td>No presentation files, agenda received, minutes received</td></tr>
|
||||
{% else %}
|
||||
{% if not wg.agenda_file and not wg.minute_file and wg.slides %}
|
||||
<tr bgcolor="ffcc88"><td>Presentation files received, no agenda, no minutes</td></tr>
|
||||
{% else %}
|
||||
{% if not wg.agenda_file and wg.minute_file and wg.slides %}
|
||||
<tr bgcolor="ffcc88"><td>Presentation files received, no agenda, minutes received</td></tr>
|
||||
{% else %}
|
||||
{% if wg.agenda_file and not wg.minute_file and wg.slides %}
|
||||
<tr bgcolor="ffcc88"><td>Presentation files received, agenda received, no minutes</td></tr>
|
||||
{% else %}
|
||||
<tr bgcolor="cccccc"><td>Unknown Status</td></tr>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
Loading…
Reference in a new issue