diff --git a/ietf/iesg/views.py b/ietf/iesg/views.py
index 91e616df1..d072bbf9d 100644
--- a/ietf/iesg/views.py
+++ b/ietf/iesg/views.py
@@ -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 })
diff --git a/ietf/meeting/views.py b/ietf/meeting/views.py
index 7f6323e00..a36d3cfe8 100644
--- a/ietf/meeting/views.py
+++ b/ietf/meeting/views.py
@@ -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:
diff --git a/ietf/proceedings/models.py b/ietf/proceedings/models.py
index 819136f68..3f8412c26 100644
--- a/ietf/proceedings/models.py
+++ b/ietf/proceedings/models.py
@@ -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:
diff --git a/ietf/templates/iesg/ietf_doc.html b/ietf/templates/iesg/ietf_doc.html
index 48eea7765..5337c84b4 100644
--- a/ietf/templates/iesg/ietf_doc.html
+++ b/ietf/templates/iesg/ietf_doc.html
@@ -31,7 +31,7 @@ This page contains links to all IESG Protocol, Document, and Working Group Actio
Date Sent: {{ date.grouper }}
{% endfor %}
diff --git a/ietf/templates/meeting/list.html b/ietf/templates/meeting/list.html
index fdfcc7f86..ce8eb5887 100644
--- a/ietf/templates/meeting/list.html
+++ b/ietf/templates/meeting/list.html
@@ -1,25 +1,42 @@
{% extends "base.html" %}
-{% block title %} Meetings {% endblock %}
+{% block title %} IETF {{ meeting_num }} Preliminary & Interim Materials {% endblock %}
{% block content %}
+
+
+IETF {{ meeting_num }} Preliminary & Interim Materials
+Submission begin
+Submission cutoff odate:
+Corrections to submissions cutoff date:
+
+Updated as of {% now "r" %}
+
- The following meeting are in chronological order
-
-
- Meeting City | Agenda | Minutes | Materials |
-
-{% for meeting in meetings %}
-
- {{ meeting.city}} ({{ meeting.meeting_num }}) |
- HTML ·
- Text
- |
- HTML ·
- Text
- |
-
- Materials
- |
-
-{% endfor %}
+{% regroup object_list|dictsort:"area" by area_name as areas %}
+ {% for wgs in areas %}
+
+
+
 {{ wgs.grouper }}
+ |
+
+
+ {% for wg in wgs.list|dictsort:"acronym" %}
+
+
+ {{ wg.acronym|upper }}
+ {% if wg.agenda_file %}[Agenda]{% endif %}{% if wg.minute_file %} [Minutes]{% endif %} |
+
+{% include "meeting/submission_status_snippet.html" %}
+ {% for slide in wg.slides %}
+ {{ slide.slide_name }} |
+
+ {% endfor %}
+
+ |
+
+
+ {% endfor %}
+ {% endfor %}
+
+
{% endblock %}
diff --git a/ietf/templates/meeting/submission_status_snippet.html b/ietf/templates/meeting/submission_status_snippet.html
new file mode 100644
index 000000000..f11e692b1
--- /dev/null
+++ b/ietf/templates/meeting/submission_status_snippet.html
@@ -0,0 +1,33 @@
+ {% if wg.agenda_file and wg.minute_file and wg.slides %}
+ Presentation files received, agenda received, minutes received |
+ {% else %}
+ {% if not wg.agenda_file and not wg.minute_file and not wg.slides %}
+ No presendtatio files, no agenda, no minutes |
+ {% else %}
+ {% if not wg.agenda_file and wg.minute_file and not wg.slides %}
+ No presentation files, no agenda, minutes received |
+ {% else %}
+ {% if wg.agenda_file and not wg.minute_file and not wg.slides %}
+ No presentation files, no minute, agenda received |
+ {% else %}
+ {% if wg.agenda_file and wg.minute_file and not wg.slides %}
+ No presentation files, agenda received, minutes received |
+ {% else %}
+ {% if not wg.agenda_file and not wg.minute_file and wg.slides %}
+ Presentation files received, no agenda, no minutes |
+ {% else %}
+ {% if not wg.agenda_file and wg.minute_file and wg.slides %}
+ Presentation files received, no agenda, minutes received |
+ {% else %}
+ {% if wg.agenda_file and not wg.minute_file and wg.slides %}
+ Presentation files received, agenda received, no minutes |
+ {% else %}
+ Unknown Status |
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endif %}
+ {% endif %}