Add support for an iPhone specific agenda format. Remove hardcoded agenda path, use settings.py setting instead.

- Legacy-Id: 1503
This commit is contained in:
Henrik Levkowetz 2009-07-24 14:29:15 +00:00
parent 0a285b84a5
commit 46cda1d9b1
4 changed files with 29 additions and 19 deletions

View file

@ -11,3 +11,6 @@
# Create your models here.
# Meeting models can be found under ../proceedings/

View file

@ -6,6 +6,8 @@ from ietf.meeting import views
urlpatterns = patterns('',
(r'^(?P<meeting_num>\d+)/materials.html$', views.show_html_materials),
(r'^agenda/$', views.html_agenda),
(r'^agenda.html$', views.html_agenda),
(r'^agenda.txt$', views.text_agenda),
(r'^(?P<num>\d+)/agenda.html$', views.html_agenda),
(r'^(?P<num>\d+)/agenda.txt$', views.text_agenda),
(r'^$', views.current_materials),

View file

@ -10,6 +10,7 @@ from django.core.urlresolvers import reverse
from django.db.models import Q
from django.template import RequestContext
from django.template.loader import render_to_string
from django.conf import settings
import datetime
def show_html_materials(request, meeting_num=None):
@ -43,7 +44,7 @@ def current_materials(request):
def get_plenary_agenda(meeting_num, id):
try:
plenary_agenda_file = "/a/www/ietf/proceedings/%s" % WgMeetingSession.objects.get(meeting=meeting_num,group_acronym_id=id).agenda_file()
plenary_agenda_file = settings.AGENDA_PATH + WgMeetingSession.objects.get(meeting=meeting_num,group_acronym_id=id).agenda_file()
try:
f = open(plenary_agenda_file)
plenary_agenda = f.read()
@ -54,7 +55,7 @@ def get_plenary_agenda(meeting_num, id):
except WgMeetingSession.DoesNotExist:
return "The Plenary has not been scheduled"
def html_agenda(request, num=None):
def agenda_info(num=None):
if not num:
num = list(Meeting.objects.all())[-1].meeting_num
timeslots = MeetingTime.objects.filter(meeting=num).order_by("day_id", "time_desc")
@ -67,22 +68,26 @@ def html_agenda(request, num=None):
ads.sort(key=(lambda item: item.area.area_acronym.acronym))
plenaryw_agenda = get_plenary_agenda(num, -1)
plenaryt_agenda = get_plenary_agenda(num, -2)
return render("meeting/agenda.html",
{"timeslots":timeslots, "update":update, "meeting":meeting, "venue":venue, "ads":ads,
"ops_plenary_agenda":plenaryw_agenda, "tech_plenary_agenda":plenaryt_agenda, },
RequestContext(request))
def text_agenda(request, num):
timeslots = MeetingTime.objects.filter(meeting=num).order_by("day_id", "time_desc")
update = get_object_or_404(Switches,id=1)
meeting=get_object_or_404(Meeting, meeting_num=num)
venue = get_object_or_404(MeetingVenue, meeting_num=num)
ads = list(IESGHistory.objects.filter(meeting=num))
if not ads:
ads = list(IESGHistory.objects.filter(meeting=str(int(num)-1)))
ads.sort(key=(lambda item: item.area.area_acronym.acronym))
plenaryw_agenda = " "+get_plenary_agenda(num, -1).strip().replace("\n", "\n ")
plenaryt_agenda = " "+get_plenary_agenda(num, -2).strip().replace("\n", "\n ")
return timeslots, update, meeting, venue, ads, plenaryw_agenda, plenaryt_agenda
def html_agenda(request, num=None):
timeslots, update, meeting, venue, ads, plenaryw_agenda, plenaryt_agenda = agenda_info(num)
user_agent = request.META["HTTP_USER_AGENT"]
print user_agent
if "iPhone" in user_agent:
template = "meeting/m_agenda.html"
else:
template = "meeting/agenda.html"
return render(template,
{"timeslots":timeslots, "update":update, "meeting":meeting, "venue":venue, "ads":ads,
"plenaryw_agenda":plenaryw_agenda, "plenaryt_agenda":plenaryt_agenda, },
RequestContext(request))
def text_agenda(request, num=None):
timeslots, update, meeting, venue, ads, plenaryw_agenda, plenaryt_agenda = agenda_info(num)
plenaryw_agenda = " "+plenaryw_agenda.strip().replace("\n", "\n ")
plenaryt_agenda = " "+plenaryt_agenda.strip().replace("\n", "\n ")
return HttpResponse(render_to_string("meeting/agenda.txt",
{"timeslots":timeslots, "update":update, "meeting":meeting, "venue":venue, "ads":ads,
"plenaryw_agenda":plenaryw_agenda, "plenaryt_agenda":plenaryt_agenda, },

View file

@ -177,8 +177,8 @@ body {
/*XXX announcement tool additions - may need to be new-css-i-fied? */
input {
display: block
width: 95%
display: block;
width: 95%;
}
span.form-required {