Merged in [4604] from adam@nostrum.com, which fixes problems with the html agenda code related to the schema transition.
- Legacy-Id: 4611 Note: SVN reference [4604] has been migrated to Git commit 3e5e16371f2c0319d1c0bb738860a1f793038365
This commit is contained in:
parent
a1ea63c16a
commit
cddec8fc48
|
@ -36,7 +36,7 @@ class Meeting(models.Model):
|
||||||
venue_addr = models.TextField(blank=True)
|
venue_addr = models.TextField(blank=True)
|
||||||
break_area = models.CharField(blank=True, max_length=255)
|
break_area = models.CharField(blank=True, max_length=255)
|
||||||
reg_area = models.CharField(blank=True, max_length=255)
|
reg_area = models.CharField(blank=True, max_length=255)
|
||||||
|
|
||||||
def __unicode__(self):
|
def __unicode__(self):
|
||||||
if self.type_id == "ietf":
|
if self.type_id == "ietf":
|
||||||
return "IETF-%s" % (self.number)
|
return "IETF-%s" % (self.number)
|
||||||
|
@ -51,6 +51,9 @@ class Meeting(models.Model):
|
||||||
def get_meeting_date (self,offset):
|
def get_meeting_date (self,offset):
|
||||||
return self.date + datetime.timedelta(days=offset)
|
return self.date + datetime.timedelta(days=offset)
|
||||||
|
|
||||||
|
def end_date(self):
|
||||||
|
return self.get_meeting_date(5)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_first_cut_off(cls):
|
def get_first_cut_off(cls):
|
||||||
date = cls.objects.all().filter(type="ietf").order_by('-date')[0].date
|
date = cls.objects.all().filter(type="ietf").order_by('-date')[0].date
|
||||||
|
|
|
@ -209,7 +209,7 @@ def html_agenda(request, num=None):
|
||||||
return iphone_agenda(request, num)
|
return iphone_agenda(request, num)
|
||||||
|
|
||||||
meeting = get_meeting(num)
|
meeting = get_meeting(num)
|
||||||
timeslots = TimeSlot.objects.filter(Q(meeting = meeting.number)).order_by('time','name')
|
timeslots = TimeSlot.objects.filter(Q(meeting__id = meeting.id)).order_by('time','name')
|
||||||
modified = timeslots.aggregate(Max('modified'))['modified__max']
|
modified = timeslots.aggregate(Max('modified'))['modified__max']
|
||||||
|
|
||||||
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)
|
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):
|
||||||
"show_inline": set(["txt","htm","html"]) },
|
"show_inline": set(["txt","htm","html"]) },
|
||||||
RequestContext(request)), mimetype="text/html")
|
RequestContext(request)), mimetype="text/html")
|
||||||
|
|
||||||
def deprecated_PLEASE_REMOVE_ME(request, num=None):
|
|
||||||
timeslots, update, meeting, venue, ads, plenaryw_agenda, plenaryt_agenda = agenda_info(num)
|
|
||||||
|
|
||||||
groups_meeting = [];
|
|
||||||
for slot in timeslots:
|
|
||||||
for session in slot.sessions():
|
|
||||||
groups_meeting.append(session.acronym())
|
|
||||||
groups_meeting = set(groups_meeting);
|
|
||||||
|
|
||||||
wgs = IETFWG.objects.filter(status=IETFWG.ACTIVE).filter(group_acronym__acronym__in = groups_meeting).order_by('group_acronym__acronym')
|
|
||||||
rgs = IRTF.objects.all().filter(acronym__in = groups_meeting).order_by('acronym')
|
|
||||||
areas = Area.objects.filter(status=Area.ACTIVE).order_by('area_acronym__acronym')
|
|
||||||
|
|
||||||
template = "meeting/agenda.html"
|
|
||||||
return render_to_response(template,
|
|
||||||
{"timeslots":timeslots, "update":update, "meeting":meeting, "venue":venue, "ads":ads,
|
|
||||||
"plenaryw_agenda":plenaryw_agenda, "plenaryt_agenda":plenaryt_agenda,
|
|
||||||
"wg_list" : wgs, "rg_list" : rgs, "area_list" : areas},
|
|
||||||
context_instance=RequestContext(request))
|
|
||||||
|
|
||||||
def iphone_agenda(request, num):
|
def iphone_agenda(request, num):
|
||||||
timeslots, update, meeting, venue, ads, plenaryw_agenda, plenaryt_agenda = agenda_info(num)
|
timeslots, update, meeting, venue, ads, plenaryw_agenda, plenaryt_agenda = agenda_info(num)
|
||||||
|
|
||||||
|
@ -457,19 +437,16 @@ def session_draft_pdf(request, num, session):
|
||||||
os.unlink(pdfn)
|
os.unlink(pdfn)
|
||||||
return HttpResponse(pdf_contents, mimetype="application/pdf")
|
return HttpResponse(pdf_contents, mimetype="application/pdf")
|
||||||
|
|
||||||
def get_meeting (num=None):
|
def get_meeting(num=None):
|
||||||
try:
|
if (num == None):
|
||||||
if num != None:
|
meeting = Meeting.objects.filter(type="ietf").order_by("-date")[:1].get()
|
||||||
meeting = OldMeeting.objects.get(number=num)
|
else:
|
||||||
else:
|
meeting = get_object_or_404(Meeting, number=num)
|
||||||
meeting = OldMeeting.objects.all().order_by('-date')[:1].get()
|
|
||||||
except OldMeeting.DoesNotExist:
|
|
||||||
raise Http404("No meeting information for meeting %s available" % num)
|
|
||||||
return meeting
|
return meeting
|
||||||
|
|
||||||
def week_view(request, num=None):
|
def week_view(request, num=None):
|
||||||
meeting = get_meeting(num)
|
meeting = get_meeting(num)
|
||||||
timeslots = TimeSlot.objects.filter(meeting = meeting.number)
|
timeslots = TimeSlot.objects.filter(meeting__id = meeting.id)
|
||||||
|
|
||||||
template = "meeting/week-view.html"
|
template = "meeting/week-view.html"
|
||||||
return render_to_response(template,
|
return render_to_response(template,
|
||||||
|
@ -500,7 +477,7 @@ def ical_agenda(request, num=None):
|
||||||
if item[0] == '~':
|
if item[0] == '~':
|
||||||
include_types.append(item[1:2].upper()+item[2:])
|
include_types.append(item[1:2].upper()+item[2:])
|
||||||
|
|
||||||
timeslots = TimeSlot.objects.filter(Q(meeting = meeting.number),
|
timeslots = TimeSlot.objects.filter(Q(meeting__id = meeting.id),
|
||||||
Q(type__name__in = include_types) |
|
Q(type__name__in = include_types) |
|
||||||
Q(session__group__acronym__in = filter) |
|
Q(session__group__acronym__in = filter) |
|
||||||
Q(session__group__parent__acronym__in = filter)
|
Q(session__group__parent__acronym__in = filter)
|
||||||
|
@ -508,7 +485,6 @@ def ical_agenda(request, num=None):
|
||||||
#Q(session__group__acronym__in = exclude) |
|
#Q(session__group__acronym__in = exclude) |
|
||||||
#Q(session__group__parent__acronym__in = exclude))
|
#Q(session__group__parent__acronym__in = exclude))
|
||||||
|
|
||||||
# return HttpResponse(render_to_string("meeting/agendaREDESIGN.ics" if settings.USE_DB_REDESIGN_PROXY_CLASSES else "meeting/agenda.ics",
|
|
||||||
return HttpResponse(render_to_string("meeting/agendaREDESIGN.ics",
|
return HttpResponse(render_to_string("meeting/agendaREDESIGN.ics",
|
||||||
{"timeslots":timeslots, "meeting":meeting },
|
{"timeslots":timeslots, "meeting":meeting },
|
||||||
RequestContext(request)), mimetype="text/calendar")
|
RequestContext(request)), mimetype="text/calendar")
|
||||||
|
@ -528,11 +504,7 @@ def csv_agenda(request, num=None):
|
||||||
RequestContext(request)), mimetype="text/csv")
|
RequestContext(request)), mimetype="text/csv")
|
||||||
|
|
||||||
def meeting_requests(request, num=None) :
|
def meeting_requests(request, num=None) :
|
||||||
if (num == None):
|
meeting = get_meeting(num)
|
||||||
meeting = Meeting.objects.filter(type="ietf").order_by("date").reverse()[0]
|
|
||||||
else:
|
|
||||||
meeting = get_object_or_404(Meeting, number=num)
|
|
||||||
|
|
||||||
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")
|
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")
|
||||||
|
|
||||||
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")
|
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")
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
{# Copyright The IETF Trust 2007, All Rights Reserved #}
|
||||||
{% load humanize %}
|
{% load humanize %}
|
||||||
{% block title %}IETF {{ meeting.num }} Meeting Agenda{% endblock %}
|
{% block title %}IETF {{ meeting.number }} Meeting Agenda{% endblock %}
|
||||||
|
|
||||||
{% block morecss %}
|
{% block morecss %}
|
||||||
table#agenda { border: 0; border-collapse:collapse; }
|
table#agenda { border: 0; border-collapse:collapse; }
|
||||||
|
@ -162,17 +162,30 @@ img.hidden { display: none; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Resizes an IFRAME to fit its contents and attempts to convert to a div */
|
/* Resizes an IFRAME to fit its contents. */
|
||||||
function r(iframe)
|
function r(iframe)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
iframe.height = 1;
|
iframe.height = 1;
|
||||||
|
iframe.style.border = "solid";
|
||||||
|
iframe.style.borderWidth = "1px";
|
||||||
|
iframe.style.margin = "0";
|
||||||
|
iframe.style.padding = "10px";
|
||||||
|
iframe.style.overflow = "auto";
|
||||||
docHeight = iframe.contentWindow.document.body.scrollHeight;
|
docHeight = iframe.contentWindow.document.body.scrollHeight;
|
||||||
iframe.height = docHeight;
|
iframe.height = docHeight;
|
||||||
}
|
}
|
||||||
catch (e) { return; }
|
catch (e) { return; }
|
||||||
|
|
||||||
|
/* The following code works really well UNLESS some crazy chair
|
||||||
|
decides to submit a text agenda that is, say, 500 columns wide.
|
||||||
|
But this tends to happen. So, until I find a way to stop
|
||||||
|
that brand of crazy from breaking the world, I'm disabling
|
||||||
|
this code. Too bad, really -- it made the page much nicer to
|
||||||
|
use. */
|
||||||
|
return;
|
||||||
|
|
||||||
if (iframe.contentWindow.document.body.innerHTML)
|
if (iframe.contentWindow.document.body.innerHTML)
|
||||||
{
|
{
|
||||||
var div = document.createElement("div");
|
var div = document.createElement("div");
|
||||||
|
@ -236,16 +249,16 @@ img.hidden { display: none; }
|
||||||
{% endblock pagehead %}
|
{% endblock pagehead %}
|
||||||
{% block bodyAttrs %}onload='setGroupState();updateAgendaColors()'{% endblock %}
|
{% block bodyAttrs %}onload='setGroupState();updateAgendaColors()'{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<h1>IETF {{ meeting.num }} Meeting Agenda</h1>
|
<h1>IETF {{ meeting.number }} Meeting Agenda</h1>
|
||||||
<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 />
|
<p>{{ meeting.city }}, {{ meeting.date|date:"F j" }} – {% ifnotequal meeting.date.month meeting.end_date.month %}{{ meeting.end_date|date:"F " }}{% endifnotequal %}{{ meeting.end_date|date:"j, Y" }}<br />
|
||||||
Updated {{ modified|date:"Y-m-d H:i:s T" }}</p>
|
Updated {{ modified|date:"Y-m-d H:i:s T" }}</p>
|
||||||
<div class="noprint">
|
<div class="noprint">
|
||||||
(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>
|
(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>
|
||||||
|
|
||||||
<p><strong>IETF agendas are subject to change, up to and during the meeting.</strong></p>
|
<p><strong>IETF agendas are subject to change, up to and during the meeting.</strong></p>
|
||||||
|
|
||||||
{# cache this part for 15 minutes -- it takes 3-6 seconds to generate #}
|
{# cache this part for 15 minutes -- it takes 3-6 seconds to generate #}
|
||||||
{% load cache %}{% cache 900 ietf_meeting_agenda meeting.num %}
|
{% load cache %}{% cache 900 ietf_meeting_agenda meeting.number %}
|
||||||
|
|
||||||
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:
|
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:
|
||||||
<div class="noprint" onclick="toggle_wg_selector()">
|
<div class="noprint" onclick="toggle_wg_selector()">
|
||||||
|
@ -291,34 +304,34 @@ You can customize the agenda below to show only selected working group sessions.
|
||||||
<td colspan="5">
|
<td colspan="5">
|
||||||
{{slot.name}}
|
{{slot.name}}
|
||||||
{% if slot.type.name != 'Session' %} -
|
{% if slot.type.name != 'Session' %} -
|
||||||
{% 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 %}
|
{% 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 %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endifchanged %}
|
{% endifchanged %}
|
||||||
{% if slot.type.name = 'Session' %} {% if slot.session.group %}
|
{% if slot.type.name = 'Session' %} {% if slot.session.group %}
|
||||||
<tr id="{{meeting.num}}-{{slot.time|date:"D-Hi"|lower}}-{{slot.session.group.parent.acronym|upper}}-{{slot.session.group.acronym|lower}}" class="grouprow">
|
<tr id="{{meeting.number}}-{{slot.time|date:"D-Hi"|lower}}-{{slot.session.group.parent.acronym|upper}}-{{slot.session.group.acronym|lower}}" class="grouprow">
|
||||||
<td>
|
<td>
|
||||||
<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>
|
<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>
|
||||||
<td>{{slot.session.group.parent.acronym|upper}}</td>
|
<td>{{slot.session.group.parent.acronym|upper}}</td>
|
||||||
<td>
|
<td>
|
||||||
{% if slot.session.group.charter %}<a href="{{slot.session.group.charter.get_absolute_url}}">{{slot.session.group.acronym}}</a>
|
{% if slot.session.group.charter %}<a href="{{slot.session.group.charter.get_absolute_url}}">{{slot.session.group.acronym}}</a>
|
||||||
{% else %}{{slot.session.group.acronym}}{% endif %}</td>
|
{% else %}{{slot.session.group.acronym}}{% endif %}</td>
|
||||||
<td>
|
<td>
|
||||||
<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">
|
<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">
|
||||||
{% if slot.session.agenda %}<a href="/meeting/{{ meeting.num }}/agenda/{{ slot.session.group.acronym }}/">{{slot.session.group.name}}</a>
|
{% if slot.session.agenda %}<a href="/meeting/{{ meeting.number }}/agenda/{{ slot.session.group.acronym }}/">{{slot.session.group.name}}</a>
|
||||||
{% else %}{{slot.session.group.name}}{% endif %}
|
{% else %}{{slot.session.group.name}}{% endif %}
|
||||||
{% if slot.session.group.state.name = "BOF" %} BOF {% endif %}
|
{% if slot.session.group.state.name = "BOF" %} BOF {% endif %}
|
||||||
{% if slot.session.agenda_note %}
|
{% if slot.session.agenda_note %}
|
||||||
<br/><span class="note">{{slot.session.agenda_note}}</span>{% endif %}</td>
|
<br/><span class="note">{{slot.session.agenda_note}}</span>{% endif %}</td>
|
||||||
<td class="materials">{% if slot.session.agenda %}drafts: <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>
|
<td class="materials">{% if slot.session.agenda %}drafts: <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>
|
||||||
</tr>
|
</tr>
|
||||||
<tr id="{{meeting.num}}-{{slot.time|date:"D-Hi"|lower}}-{{slot.session.group.parent.acronym|upper}}-{{slot.session.group.acronym|lower}}" class="groupagenda">
|
<tr id="{{meeting.number}}-{{slot.time|date:"D-Hi"|lower}}-{{slot.session.group.parent.acronym|upper}}-{{slot.session.group.acronym|lower}}" class="groupagenda">
|
||||||
<td></td>
|
<td></td>
|
||||||
<td colspan="5">
|
<td colspan="5">
|
||||||
{% if slot.session.agenda %}
|
{% if slot.session.agenda %}
|
||||||
{% if slot.session.agenda.file_extension in show_inline%}
|
{% if slot.session.agenda.file_extension in show_inline%}
|
||||||
<iframe width="100%" height="1px" src="about:blank" xsrc="/meeting/{{ meeting.num }}/agenda/{{ slot.session.group.acronym }}/" onload="r(this)"></iframe>
|
<iframe width="100%" height="1px" src="about:blank" xsrc="/meeting/{{ meeting.number }}/agenda/{{ slot.session.group.acronym }}/" onload="r(this)"></iframe>
|
||||||
{% else %}
|
{% else %}
|
||||||
<b><i>Agenda submitted in {{slot.session.agenda.file_extension|upper}} format</i></b>
|
<b><i>Agenda submitted in {{slot.session.agenda.file_extension|upper}} format</i></b>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -333,7 +346,7 @@ You can customize the agenda below to show only selected working group sessions.
|
||||||
<tr>
|
<tr>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td colspan="5">
|
<td colspan="5">
|
||||||
<iframe width="100%" height="1px" src="/meeting/{{ meeting.num }}/agenda/{{ slot.session.group.acronym }}/" onload="r(this)"></iframe>
|
<iframe width="100%" height="1px" src="/meeting/{{ meeting.number }}/agenda/{{ slot.session.group.acronym }}/" onload="r(this)"></iframe>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
Loading…
Reference in a new issue