Complete Meeting Materials page

* Tested with IETF 67 and 68 data.
 * For testing, c_sub_cut_off_date should set to future date, otherwise a Closed page will show.
 - Legacy-Id: 228
This commit is contained in:
comimom 2007-06-04 19:52:52 +00:00
parent 8ff20e3127
commit b73efa811a
6 changed files with 150 additions and 60 deletions

View file

@ -1 +1,11 @@
from django.db import models
#from django.db import models
from ietf.proceedings import models
#from ietf.proceedings.models import Meeting, MeetingVenue, WgMeetingSession, WgAgenda
#from ietf.proceedings.models import NonSession, NonSessionRef,SessionName
import datetime
# Create your models here.

View file

@ -2,23 +2,7 @@ from django.conf.urls.defaults import *
from ietf.meeting import models, views
urlpatterns = patterns('',
(r'^$', views.showlist),
(r'^(?P<meeting_num>\d+)/$', views.show),
(r'^(?P<meeting_num>\d+)/agenda.(?P<html_or_txt>\S+)$', views.show_html_agenda),
(r'^(?P<meeting_num>\d+)/materials.html$', views.show_html_materials),
# (r'^update/(?P<meeting_id>\d+)/$', views.update),
# (r'^new-(?P<type>(specific|generic|thirdpty))/$', views.new),
(r'^(?P<meeting_num>\d+)/agenda.(?P<html_or_txt>\S+)$', views.show_html_agenda),
(r'^(?P<meeting_num>\d+)/materials.html$', views.show_html_materials),
)
#queryset = models.IprDetail.objects.all()
#archive = {'queryset':queryset, 'date_field': 'submitted_date', 'allow_empty':True }
#urlpatterns += patterns('django.views.generic.date_based',
# (r'^(?P<year>\d{4})/$', 'archive_year', archive),
# (r'^(?P<year>\d{4})/(?P<month>[a-z]{3})/$', 'archive_month', archive),
#)

View file

@ -1,39 +1,32 @@
# Create your views here.
import models
from django.shortcuts import render_to_response as render
import django.newforms as forms
from django.utils.html import escape, linebreaks
import ietf.utils
from ietf.proceedings.models import Meeting, MeetingTime, WgMeetingSession, SessionName, NonSession, MeetingVenue, IESGHistory
from ietf.proceedings.models import Meeting, MeetingTime, WgMeetingSession, SessionName, NonSession, MeetingVenue, IESGHistory, WgAgenda, Minute, Proceeding
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"""
return render("meeting/list.html", {})
def showlist(request):
"""Display a list of existing disclosures"""
return meeting_list(request, 'meeting/list.html')
# don't hide Python's builtin list creation -- call this something else than 'list()'
def meeting_list(request, template):
""" Get A List of All Meetings That are in the system """
meetings = Meeting.objects.all()
return render(template,
{
'meetings' : meetings.order_by(* ['-start_date', ] ),
} )
# Details views
import datetime
def show_html_materials(request, meeting_num=None):
begin_date = Proceeding.objects.get(meeting_num=meeting_num).sub_begin_date
cut_off_date = Proceeding.objects.get(meeting_num=meeting_num).sub_cut_off_date
cor_cut_off_date = Proceeding.objects.get(meeting_num=meeting_num).c_sub_cut_off_date
now = datetime.date.today()
if now > cor_cut_off_date:
return render("meeting/list_closed.html",{'meeting_num':meeting_num,'begin_date':begin_date, 'cut_off_date':cut_off_date, 'cor_cut_off_date':cor_cut_off_date})
# 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})
queryset_irtf = WgMeetingSession.objects.filter(meeting=meeting_num, group_acronym_id__gte = -2, status_id=4, irtf__gt=0)
queryset_interim = []
queryset_training = []
for item in list(WgMeetingSession.objects.filter(meeting=meeting_num)):
if item.interim_meeting():
item.interim=1
queryset_interim.append(item)
if item.group_acronym_id < -2:
if item.slides():
queryset_training.append(item)
return object_list(request,queryset=queryset_list, template_name="meeting/list.html",allow_empty=True, extra_context={'meeting_num':meeting_num,'irtf_list':queryset_irtf, 'interim_list':queryset_interim, 'training_list':queryset_training, 'begin_date':begin_date, 'cut_off_date':cut_off_date, 'cor_cut_off_date':cor_cut_off_date})
def show_html_agenda(request, meeting_num=None, html_or_txt=None):
try:
@ -78,5 +71,3 @@ def show_html_agenda(request, meeting_num=None, html_or_txt=None):
queryset_list_ads.sort(key=(lambda item: item.area.area_acronym.acronym))
return object_list(request,queryset=queryset_list, template_name=template_file,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, 'plenaryw_agenda':plenaryw_agenda, 'plenaryt_agenda':plenaryt_agenda, 'qs_ads':queryset_list_ads})
def show(request):
return 0

View file

@ -32,7 +32,7 @@ class ResolveAcronym(object):
else:
acronym_name = Acronym.objects.get(pk=self.group_acronym_id).name
if interim:
return acronym_name + " (interim)"
return "i" + acronym
return acronym_name
def area(self):
if self.irtf:
@ -164,7 +164,6 @@ class SessionName(models.Model):
db_table = 'session_names'
class Admin:
pass
class IESGHistory(models.Model):
meeting = models.ForeignKey(Meeting, db_column='meeting_num', core=True)
area = models.ForeignKey(Area, db_column='area_acronym_id', core=True)
@ -228,7 +227,7 @@ class MeetingTime(models.Model):
an_br2_info = NonSession.objects.get(meeting=self.meeting, day_id=self.day_id, non_session_ref=5)
return "%s %s" % (an_br2_info.time_desc, an_br2_info.non_session_ref)
def fbreak_info(self):
fbreak_info = NonSession.objects.get(meeting=self.meeting, day_id=5, non_session_ref=6)
fbreak_info = NonSession.objects.get(meeting-self.meeting, day_id=5, non_session_ref=6)
return "%s %s" % (fbreak_info.time_desc, fbreak_info.non_session_ref)
class Meta:
db_table = 'meeting_times'
@ -289,7 +288,13 @@ class WgMeetingSession(models.Model, ResolveAcronym):
def agenda_file(self,interimvar=0):
irtfvar = 0
if self.irtf:
irtfvar = self.irtf
irtfvar = self.group_acronym_id
if interimvar == 0:
try:
if self.interim:
interimvar = 1
except AttributeError:
interimvar = 0
try:
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
@ -300,12 +305,18 @@ class WgMeetingSession(models.Model, ResolveAcronym):
def minute_file(self,interimvar=0):
irtfvar = 0
if self.irtf:
irtfvar = self.irtf
irtfvar = self.group_acronym_id
if interimvar == 0:
try:
if self.interim:
interimvar = 1
except AttributeError:
interimvar = 0
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:
except Minute.DoesNotExist:
retvar = ""
return retvar
def slides(self,interimvar=0):
@ -314,9 +325,24 @@ class WgMeetingSession(models.Model, ResolveAcronym):
"""
irtfvar = 0
if self.irtf:
irtfvar = self.irtf
irtfvar = self.group_acronym_id
if interimvar == 0:
try:
if self.interim:
interimvar = 1
except AttributeError:
interimvar = 0
slides = Slide.objects.filter(meeting=self.meeting,group_acronym_id=self.group_acronym_id,irtf=irtfvar,interim=interimvar).order_by("order_num")
return slides
def interim_meeting (self):
if self.minute_file(1):
return True
elif self.agenda_file(1):
return True
elif self.slides(1):
return True
else:
return False
class Meta:
db_table = 'wg_meeting_sessions'
class Admin:
@ -396,7 +422,7 @@ class Slide(models.Model, ResolveAcronym):
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)
return "%s/slides/%s-%s/sld1.htm" % (dir,self.acronym(),self.slide_num)
else:
if self.slide_type_id == 2:
ext = ".pdf"
@ -408,7 +434,7 @@ class Slide(models.Model, ResolveAcronym):
ext = ".doc"
else:
ext = ""
return "%s/slides/%s-%s%s" % (dir,self.acronym(),self.order_num,ext)
return "%s/slides/%s-%s%s" % (dir,self.acronym(),self.slide_num,ext)
class Meta:
db_table = 'slides'
class Admin:

View file

@ -4,9 +4,9 @@
<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>
<h4>Submission began {{ begin_date|date:"F j, Y" }} </h4>
<h4>Submission cutoff odate: {{ cut_off_date|date:"F j, Y" }}</h4>
<h4>Corrections to submissions cutoff date:{{ cor_cut_off_date|date:"F j, Y" }} </h4>
<br>
Updated as of {% now "r" %}
<br><br>
@ -15,7 +15,7 @@ Updated as of {% now "r" %}
{% 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 colspan=2 bgcolor="#0911DC" valign="center"><font color="#FFFFFF"><center><br><h3><img src="https://www.ietf.org/images/ib2.gif" width="100%" height=21><br>{{ wgs.grouper }}</h3></center></font>
</td>
</tr>
</table>
@ -37,6 +37,69 @@ Updated as of {% now "r" %}
{% endfor %}
{% endfor %}
<!--- Training Sessions --->
<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://www.ietf.org/images/ib2.gif" width="100%" height=21><br>Training</h3></center></font>
</td> </tr> </table>
{% for wg in training_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></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 %}
<!--- End of Training Sessions --->
<!--- IRTF Sessions --->
<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://www.ietf.org/images/ib2.gif" width="100%" height=21><br>IRTF</h3></center></font>
</td>
</tr>
</table>
{% for wg in irtf_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 %}
<!--- End of IRTF Sessions --->
<!--- Interim Meetings --->
<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://www.ietf.org/images/ib2.gif" width="100%" height=21><br>Interim Meetings</h3></center></font>
</td>
</tr>
</table>
{% for wg in interim_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 %}
<!--- End of Imterim Meetings --->
</center>
{% endblock %}

View file

@ -0,0 +1,16 @@
{% extends "base.html" %}
{% 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 began {{ begin_date|date:"F j, Y" }} </h4>
<h4>Submission cutoff odate: {{ cut_off_date|date:"F j, Y" }}</h4>
<h4>Corrections to submissions cutoff date:{{ cor_cut_off_date|date:"F j, Y" }} </h4>
</center>
<br>
<i>
The IETF {{ meeting_num }} Preliminary & Interim Materials page is now closed.<br>
You should be able to access the final version of IETF {{ meeting_num }} Proceedings via <a href="http://www.ietf.org/proceedings_directory.html">IETF Online Proceedings page</a>.<br>
</i>
{% endblock %}