datatracker/ietf/meeting/views.py
Michael Lee 1c9bf9b1ca meeting_agenda_html.cgi porting has been completed.
* Add a new method, affiliation to idtracker/models.py, in class PersonOrOrgInfo
 * Agenda for the Plenaries should be stored in /home/master-site/proceedings directory to be displayed.
 * Bug found in listing ADs at the end of the agenda. An agenda always lists the current IESG instead of the IESG at each meeting. Bug is fixed in the ported tool.
 * meeting_agenda_text.cgi was obsolete, but ported anyway in case someone still has it bookmarked.
 - Legacy-Id: 182
2007-05-30 13:47:09 +00:00

80 lines
3.7 KiB
Python

# 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 django.views.generic.list_detail import object_list
from django.http import Http404
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
def show_html_materials(request, meeting_num=None):
return render("meeting/list.html",{})
def show_html_agenda(request, meeting_num=None, html_or_txt=None):
try:
queryset_list=MeetingTime.objects.filter(meeting=meeting_num).exclude(day_id=0).order_by("day_id","time_desc")
except MeetingTime.DoesNotExist:
raise Http404
meeting_info=Meeting.objects.get(meeting_num=meeting_num)
nonsession_info=NonSession.objects.filter(meeting=meeting_num,day_id__gte='0').order_by("day_id")
try:
meetingvenue_info=MeetingVenue.objects.get(meeting_num=meeting_num)
except MeetingVenue.DoesNotExist:
raise Http404
plenaryt_agenda_file = "/home/master-site/proceedings/%s" % WgMeetingSession.objects.get(meeting=meeting_num,group_acronym_id=-2).agenda_file()
try:
f = open(plenaryt_agenda_file)
plenaryt_agenda = f.read()
f.close()
except IOError:
plenaryt_agenda = "THE AGENDA HAS NOT BEEN UPLOADED YET"
if html_or_txt == "html":
template_file="meeting/agenda.html"
elif html_or_txt == "txt":
template_file="meeting/agenda.txt"
else:
raise Http404
plenaryw_agenda_file = "/home/master-site/proceedings/%s" % WgMeetingSession.objects.get(meeting=meeting_num,group_acronym_id=-1).agenda_file()
try:
f = open(plenaryw_agenda_file)
plenaryw_agenda = f.read()
f.close()
except IOError:
plenaryw_agenda = "THE AGENDA HAS NOT BEEN UPLOADED YET"
# Due to a bug in Django@0.96 we can't use foreign key lookup in
# order_by(), see http://code.djangoproject.com/ticket/2076. Changeset
# [133] is broken because it requires a patched Django to run. Work
# around this instead. Later: FIXME (revert to the straightforward code
# when this bug has been fixed in the Django release we're running.)
## 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))
queryset_list_ads = list(IESGHistory.objects.filter(meeting=meeting_num))
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