Skip to content

Commit 3e5e163

Browse files
committed
Fixing problems with agenda HTML page
- Legacy-Id: 4604
1 parent 1318710 commit 3e5e163

3 files changed

Lines changed: 41 additions & 53 deletions

File tree

ietf/meeting/models.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class Meeting(models.Model):
3636
venue_addr = models.TextField(blank=True)
3737
break_area = models.CharField(blank=True, max_length=255)
3838
reg_area = models.CharField(blank=True, max_length=255)
39-
39+
4040
def __unicode__(self):
4141
if self.type_id == "ietf":
4242
return "IETF-%s" % (self.number)
@@ -51,6 +51,9 @@ def time_zone_offset(self):
5151
def get_meeting_date (self,offset):
5252
return self.date + datetime.timedelta(days=offset)
5353

54+
def end_date(self):
55+
return self.get_meeting_date(5)
56+
5457
@classmethod
5558
def get_first_cut_off(cls):
5659
date = cls.objects.all().filter(type="ietf").order_by('-date')[0].date

ietf/meeting/views.py

Lines changed: 9 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ def html_agenda(request, num=None):
209209
return iphone_agenda(request, num)
210210

211211
meeting = get_meeting(num)
212-
timeslots = TimeSlot.objects.filter(Q(meeting = meeting.number)).order_by('time','name')
212+
timeslots = TimeSlot.objects.filter(Q(meeting__id = meeting.id)).order_by('time','name')
213213
modified = timeslots.aggregate(Max('modified'))['modified__max']
214214

215215
area_list = timeslots.filter(type = 'Session', session__group__parent__isnull = False).order_by('session__group__parent__acronym').distinct('session__group__parent__acronym').values_list('session__group__parent__acronym',flat=True)
@@ -224,26 +224,6 @@ def html_agenda(request, num=None):
224224
"show_inline": set(["txt","htm","html"]) },
225225
RequestContext(request)), mimetype="text/html")
226226

227-
def deprecated_PLEASE_REMOVE_ME(request, num=None):
228-
timeslots, update, meeting, venue, ads, plenaryw_agenda, plenaryt_agenda = agenda_info(num)
229-
230-
groups_meeting = [];
231-
for slot in timeslots:
232-
for session in slot.sessions():
233-
groups_meeting.append(session.acronym())
234-
groups_meeting = set(groups_meeting);
235-
236-
wgs = IETFWG.objects.filter(status=IETFWG.ACTIVE).filter(group_acronym__acronym__in = groups_meeting).order_by('group_acronym__acronym')
237-
rgs = IRTF.objects.all().filter(acronym__in = groups_meeting).order_by('acronym')
238-
areas = Area.objects.filter(status=Area.ACTIVE).order_by('area_acronym__acronym')
239-
240-
template = "meeting/agenda.html"
241-
return render_to_response(template,
242-
{"timeslots":timeslots, "update":update, "meeting":meeting, "venue":venue, "ads":ads,
243-
"plenaryw_agenda":plenaryw_agenda, "plenaryt_agenda":plenaryt_agenda,
244-
"wg_list" : wgs, "rg_list" : rgs, "area_list" : areas},
245-
context_instance=RequestContext(request))
246-
247227
def iphone_agenda(request, num):
248228
timeslots, update, meeting, venue, ads, plenaryw_agenda, plenaryt_agenda = agenda_info(num)
249229

@@ -457,19 +437,16 @@ def session_draft_pdf(request, num, session):
457437
os.unlink(pdfn)
458438
return HttpResponse(pdf_contents, mimetype="application/pdf")
459439

460-
def get_meeting (num=None):
461-
try:
462-
if num != None:
463-
meeting = OldMeeting.objects.get(number=num)
464-
else:
465-
meeting = OldMeeting.objects.all().order_by('-date')[:1].get()
466-
except OldMeeting.DoesNotExist:
467-
raise Http404("No meeting information for meeting %s available" % num)
440+
def get_meeting(num=None):
441+
if (num == None):
442+
meeting = Meeting.objects.filter(type="ietf").order_by("-date")[:1].get()
443+
else:
444+
meeting = get_object_or_404(Meeting, number=num)
468445
return meeting
469446

470447
def week_view(request, num=None):
471448
meeting = get_meeting(num)
472-
timeslots = TimeSlot.objects.filter(meeting = meeting.number)
449+
timeslots = TimeSlot.objects.filter(meeting__id = meeting.id)
473450

474451
template = "meeting/week-view.html"
475452
return render_to_response(template,
@@ -500,15 +477,14 @@ def ical_agenda(request, num=None):
500477
if item[0] == '~':
501478
include_types.append(item[1:2].upper()+item[2:])
502479

503-
timeslots = TimeSlot.objects.filter(Q(meeting = meeting.number),
480+
timeslots = TimeSlot.objects.filter(Q(meeting__id = meeting.id),
504481
Q(type__name__in = include_types) |
505482
Q(session__group__acronym__in = filter) |
506483
Q(session__group__parent__acronym__in = filter)
507484
)#.exclude(Q(session__group__isnull = False),
508485
#Q(session__group__acronym__in = exclude) |
509486
#Q(session__group__parent__acronym__in = exclude))
510487

511-
# return HttpResponse(render_to_string("meeting/agendaREDESIGN.ics" if settings.USE_DB_REDESIGN_PROXY_CLASSES else "meeting/agenda.ics",
512488
return HttpResponse(render_to_string("meeting/agendaREDESIGN.ics",
513489
{"timeslots":timeslots, "meeting":meeting },
514490
RequestContext(request)), mimetype="text/calendar")
@@ -528,11 +504,7 @@ def csv_agenda(request, num=None):
528504
RequestContext(request)), mimetype="text/csv")
529505

530506
def meeting_requests(request, num=None) :
531-
if (num == None):
532-
meeting = Meeting.objects.filter(type="ietf").order_by("date").reverse()[0]
533-
else:
534-
meeting = get_object_or_404(Meeting, number=num)
535-
507+
meeting = get_meeting(num)
536508
sessions = Session.objects.filter(meeting__number=meeting.number,group__parent__isnull = False).exclude(requested_by=0).order_by("group__parent__acronym","status__slug","group__acronym")
537509

538510
groups_not_meeting = Group.objects.filter(state='Active',type__in=['WG','RG','BOF']).exclude(acronym__in = [session.group.acronym for session in sessions]).order_by("parent__acronym","acronym")

ietf/templates/meeting/agenda.html

Lines changed: 28 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{% extends "base.html" %}
22
{# Copyright The IETF Trust 2007, All Rights Reserved #}
33
{% load humanize %}
4-
{% block title %}IETF {{ meeting.num }} Meeting Agenda{% endblock %}
4+
{% block title %}IETF {{ meeting.number }} Meeting Agenda{% endblock %}
55

66
{% block morecss %}
77
table#agenda { border: 0; border-collapse:collapse; }
@@ -162,17 +162,30 @@
162162

163163
}
164164

165-
/* Resizes an IFRAME to fit its contents and attempts to convert to a div */
165+
/* Resizes an IFRAME to fit its contents. */
166166
function r(iframe)
167167
{
168168
try
169169
{
170170
iframe.height = 1;
171+
iframe.style.border = "solid";
172+
iframe.style.borderWidth = "1px";
173+
iframe.style.margin = "0";
174+
iframe.style.padding = "10px";
175+
iframe.style.overflow = "auto";
171176
docHeight = iframe.contentWindow.document.body.scrollHeight;
172177
iframe.height = docHeight;
173178
}
174179
catch (e) { return; }
175180

181+
/* The following code works really well UNLESS some crazy chair
182+
decides to submit a text agenda that is, say, 500 columns wide.
183+
But this tends to happen. So, until I find a way to stop
184+
that brand of crazy from breaking the world, I'm disabling
185+
this code. Too bad, really -- it made the page much nicer to
186+
use. */
187+
return;
188+
176189
if (iframe.contentWindow.document.body.innerHTML)
177190
{
178191
var div = document.createElement("div");
@@ -236,16 +249,16 @@
236249
{% endblock pagehead %}
237250
{% block bodyAttrs %}onload='setGroupState();updateAgendaColors()'{% endblock %}
238251
{% block content %}
239-
<h1>IETF {{ meeting.num }} Meeting Agenda</h1>
240-
<p>{{ meeting.city }}, {{ meeting.start_date|date:"F j" }}-{% ifnotequal meeting.start_date.month meeting.end_date.month %}{{ meeting.end_date|date:"F " }}{% endifnotequal %}{{ meeting.end_date|date:"j, Y" }}<br />
252+
<h1>IETF {{ meeting.number }} Meeting Agenda</h1>
253+
<p>{{ meeting.city }}, {{ meeting.date|date:"F j" }} &#8211; {% ifnotequal meeting.date.month meeting.end_date.month %}{{ meeting.end_date|date:"F " }}{% endifnotequal %}{{ meeting.end_date|date:"j, Y" }}<br />
241254
Updated {{ modified|date:"Y-m-d H:i:s T" }}</p>
242255
<div class="noprint">
243-
(There's also a <a href="/meeting/{{meeting.num}}/agenda.txt">plaintext agenda</a> and a <a href="http://tools.ietf.org/agenda/{{meeting.num}}/">tools-style agenda</a> available)</div>
256+
(There's also a <a href="/meeting/{{meeting.number}}/agenda.txt">plaintext agenda</a> and a <a href="http://tools.ietf.org/agenda/{{meeting.number}}/">tools-style agenda</a> available)</div>
244257

245258
<p><strong>IETF agendas are subject to change, up to and during the meeting.</strong></p>
246259

247260
{# cache this part for 15 minutes -- it takes 3-6 seconds to generate #}
248-
{% load cache %}{% cache 900 ietf_meeting_agenda meeting.num %}
261+
{% load cache %}{% cache 900 ietf_meeting_agenda meeting.number %}
249262

250263
You can customize the agenda below to show only selected working group sessions. To be able to return to the customized view later, bookmark the resulting URL:
251264
<div class="noprint" onclick="toggle_wg_selector()">
@@ -291,34 +304,34 @@ <h2 class="ietf-divider">{{ slot.time|date:"l"|upper }}, {{ slot.time|date:"F j,
291304
<td colspan="5">
292305
{{slot.name}}
293306
{% if slot.type.name != 'Session' %} -
294-
{% if slot.show_location %}<a href="http://tools.ietf.org/agenda/{{meeting.num}}/venue/?room={{ slot.get_location|slugify }}">{{slot.get_location|escape}}</a>{% endif %}
307+
{% if slot.show_location %}<a href="http://tools.ietf.org/agenda/{{meeting.number}}/venue/?room={{ slot.get_location|slugify }}">{{slot.get_location|escape}}</a>{% endif %}
295308
{% endif %}
296309
</td>
297310
</tr>
298311
{% endifchanged %}
299312
{% if slot.type.name = 'Session' %} {% if slot.session.group %}
300-
<tr id="{{meeting.num}}-{{slot.time|date:"D-Hi"|lower}}-{{slot.session.group.parent.acronym|upper}}-{{slot.session.group.acronym|lower}}" class="grouprow">
313+
<tr id="{{meeting.number}}-{{slot.time|date:"D-Hi"|lower}}-{{slot.session.group.parent.acronym|upper}}-{{slot.session.group.acronym|lower}}" class="grouprow">
301314
<td>
302-
<td>{% if slot.show_location %}<a href="http://tools.ietf.org/agenda/{{meeting.num}}/venue/?room={{ slot.get_location|slugify }}">{{slot.get_location|escape}}</a>{% endif %}</td>
315+
<td>{% if slot.show_location %}<a href="http://tools.ietf.org/agenda/{{meeting.number}}/venue/?room={{ slot.get_location|slugify }}">{{slot.get_location|escape}}</a>{% endif %}</td>
303316
<td>{{slot.session.group.parent.acronym|upper}}</td>
304317
<td>
305318
{% if slot.session.group.charter %}<a href="{{slot.session.group.charter.get_absolute_url}}">{{slot.session.group.acronym}}</a>
306319
{% else %}{{slot.session.group.acronym}}{% endif %}</td>
307320
<td>
308-
<img src="/images/color-palette-4x4.gif" alt="" onclick="pickAgendaColor('{{meeting.num}}-{{slot.time|date:"D-Hi"|lower}}-{{slot.session.group.parent.acronym|upper}}-{{slot.session.group.acronym|lower}}',this);" title="color tag this line"/ class="noprint">
309-
{% if slot.session.agenda %}<a href="/meeting/{{ meeting.num }}/agenda/{{ slot.session.group.acronym }}/">{{slot.session.group.name}}</a>
321+
<img src="/images/color-palette-4x4.gif" alt="" onclick="pickAgendaColor('{{meeting.number}}-{{slot.time|date:"D-Hi"|lower}}-{{slot.session.group.parent.acronym|upper}}-{{slot.session.group.acronym|lower}}',this);" title="color tag this line"/ class="noprint">
322+
{% if slot.session.agenda %}<a href="/meeting/{{ meeting.number }}/agenda/{{ slot.session.group.acronym }}/">{{slot.session.group.name}}</a>
310323
{% else %}{{slot.session.group.name}}{% endif %}
311324
{% if slot.session.group.state.name = "BOF" %} BOF {% endif %}
312325
{% if slot.session.agenda_note %}
313326
<br/><span class="note">{{slot.session.agenda_note}}</span>{% endif %}</td>
314-
<td class="materials">{% if slot.session.agenda %}drafts:&nbsp;<a href="/meeting/{{meeting.num}}/agenda/{{slot.session.group.acronym}}-drafts.tgz">tar</a>|<a href="/meeting/{{ meeting.num }}/agenda/{{slot.session.group.acronym}}-drafts.pdf">pdf</a>{%endif%}</td>
327+
<td class="materials">{% if slot.session.agenda %}drafts:&nbsp;<a href="/meeting/{{meeting.number}}/agenda/{{slot.session.group.acronym}}-drafts.tgz">tar</a>|<a href="/meeting/{{ meeting.number }}/agenda/{{slot.session.group.acronym}}-drafts.pdf">pdf</a>{%endif%}</td>
315328
</tr>
316-
<tr id="{{meeting.num}}-{{slot.time|date:"D-Hi"|lower}}-{{slot.session.group.parent.acronym|upper}}-{{slot.session.group.acronym|lower}}" class="groupagenda">
329+
<tr id="{{meeting.number}}-{{slot.time|date:"D-Hi"|lower}}-{{slot.session.group.parent.acronym|upper}}-{{slot.session.group.acronym|lower}}" class="groupagenda">
317330
<td></td>
318331
<td colspan="5">
319332
{% if slot.session.agenda %}
320333
{% if slot.session.agenda.file_extension in show_inline%}
321-
<iframe width="100%" height="1px" src="about:blank" xsrc="/meeting/{{ meeting.num }}/agenda/{{ slot.session.group.acronym }}/" onload="r(this)"></iframe>
334+
<iframe width="100%" height="1px" src="about:blank" xsrc="/meeting/{{ meeting.number }}/agenda/{{ slot.session.group.acronym }}/" onload="r(this)"></iframe>
322335
{% else %}
323336
<b><i>Agenda submitted in {{slot.session.agenda.file_extension|upper}} format</i></b>
324337
{% endif %}
@@ -333,7 +346,7 @@ <h2 class="ietf-divider">{{ slot.time|date:"l"|upper }}, {{ slot.time|date:"F j,
333346
<tr>
334347
<td></td>
335348
<td colspan="5">
336-
<iframe width="100%" height="1px" src="/meeting/{{ meeting.num }}/agenda/{{ slot.session.group.acronym }}/" onload="r(this)"></iframe>
349+
<iframe width="100%" height="1px" src="/meeting/{{ meeting.number }}/agenda/{{ slot.session.group.acronym }}/" onload="r(this)"></iframe>
337350
</td>
338351
</tr>
339352
{% endif %}

0 commit comments

Comments
 (0)