Updated template and support functions for iPhone agenda page.

- Legacy-Id: 6582
This commit is contained in:
Henrik Levkowetz 2013-10-31 17:58:59 +00:00
parent 28a0d99d09
commit 13b6c7a983
3 changed files with 33 additions and 33 deletions
ietf
meeting
templates/meeting

View file

@ -1075,4 +1075,18 @@ class Session(models.Model):
return "CONFIRMED"
else:
return "TENTATIVE"
def agenda_file(self):
if not hasattr(self, '_agenda_file'):
self._agenda_file = ""
docs = self.materials.filter(type="agenda", states__type="agenda", states__slug="active")
if not docs:
return ""
# we use external_url at the moment, should probably regularize
# the filenames to match the document name instead
filename = docs[0].external_url
self._agenda_file = "%s/agenda/%s" % (self.meeting.number, filename)
return self._agenda_file

View file

@ -84,7 +84,7 @@ def current_materials(request):
meeting = OldMeeting.objects.exclude(number__startswith='interim-').order_by('-meeting_num')[0]
return HttpResponseRedirect( reverse(materials, args=[meeting.meeting_num]) )
def mobile_user_agent_detect(request):
def get_user_agent(request):
if settings.SERVER_MODE != 'production' and '_testiphone' in request.REQUEST:
user_agent = "iPhone"
elif 'user_agent' in request.REQUEST:
@ -332,28 +332,11 @@ def edit_agendas(request, num=None, order=None):
RequestContext(request)),
mimetype="text/html")
def iphone_agenda(request, num, name):
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/m_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 agenda(request, num=None, name=None, base=None, ext=None):
base = base if base else 'agenda'
ext = ext if ext else '.html'
if 'iPhone' in get_user_agent(request) and ext == ".html":
base = 'm_agenda'
mimetype = {".html":"text/html", ".txt": "text/plain", ".ics":"text/calendar", ".csv":"text/csv"}
meeting = get_meeting(num)
schedule = get_schedule(meeting, name)

View file

@ -2,7 +2,7 @@
{# Copyright The IETF Trust 2007, All Rights Reserved #}
{% load humanize %}
{% load ietf_filters %}
{% block title %} IETF {{ meeting.num }} Meeting Agenda{% endblock %}
{% block title %} IETF {{ schedule.meeting.number }} Meeting Agenda{% endblock %}
{% block head %}
<link href="http://tools.ietf.org/css/palette.css" rel="stylesheet" type="text/css" />
<link rel="apple-touch-icon" href="/images/agenda-touch-icon.png" />
@ -21,7 +21,7 @@
utc.setMinutes(now.getMinutes() + now.getTimezoneOffset());
var loc = utc;
// Switch page location 1 hour after local time, to give stragglers some leeway.
loc.setHours(utc.getHours() + {{meeting.time_zone|default_if_none:"0"}} - 1);
loc.setHours(utc.getHours() + {{ schedule.meeting.time_zone|default_if_none:"0"}} - 1);
localtime = loc.format("%Y-%m-%d_%H%M");
var anchors = document.getElementsByTagName("a");
for (var i = 0; i<anchors.length;i++){
@ -52,7 +52,7 @@
{% for item in schedule.assignments.all.distinct %}
{% ifchanged %}
<tr>
<td colspan="4">
<td colspan="3">
<a name="{{item.timeslot.time|date:"Y-m-d"}}_0000" />
<h4>{{ item.timeslot.time|date:"l"|upper }}, {{ item.timeslot.time|date:"F j, Y" }}</h4>
</td>
@ -61,7 +61,7 @@
{% if item.timeslot.type.slug == "reg" %}
<tr>
<td colspan="4">
<td colspan="3">
{{ item.timeslot.time_desc }} {{ item.timeslot.name }}
{% if schedule.meeting.reg_area %} - <a href="http://tools.ietf.org/agenda/{{schedule.meeting.number}}/venue/?room={{ schedule.meeting.reg_area|slugify }}">{{ schedule.meeting.reg_area|escape }}</a>{% endif %}
</td>
@ -70,7 +70,7 @@
{% if item.timeslot.type.slug == "break" %}
<tr>
<td colspan="4">
<td colspan="3">
<br />
{{ item.timeslot.time_desc }} {{ item.timeslot.name }}
{% if schedule.meeting.break_area and item.timeslot.break_info.show_break_location %} - <a href="http://tools.ietf.org/agenda/{{schedule.meeting.number}}/venue/?room={{ schedule.meeting.break_area|slugify }}">{{ schedule.meeting.break_area|escape }}</a>{% endif %}
@ -83,14 +83,17 @@
{% if item.session.group %}
{% ifchanged %}
<tr>
<td colspan="4">
<td colspan="3">
<a name="{{item.timeslot.time|date:"Y-m-d"}}_{{item.timeslot.time_desc|slice:":4"}}" />
<h5>{{item.timeslot.time|date:"D"}} {{ item.timeslot.time_desc }} {{ item.timeslot.name }}
</td>
</tr>
{% endifchanged %}
<tr id="{{schedule.meeting.number}}-{{item.timeslot.time|date:"D"|lower}}-{{item.timeslot.time_desc|slice:":4"}}-{{item.session.group.acronym|lower}}"> <td><a href="http://tools.ietf.org/agenda/{{schedule.meeting.number}}/venue/?room={{item.timeslot.location.name|slugify}}">{{ item.timeslot.location.name}}</a></td>
<tr id="{{schedule.meeting.number}}-{{item.timeslot.time|date:"D"|lower}}-{{item.timeslot.time_desc|slice:":4"}}-{{item.session.group.acronym|lower}}">
<td>
<a href="http://tools.ietf.org/agenda/{{schedule.meeting.number}}/venue/?room={{item.timeslot.location.name|slugify}}">{{ item.timeslot.location.name}}</a>
</td>
<td>
{% if item.session.type == "WG" %}<a href="http://www.ietf.org/dyn/wg/charter/{{ item.session.group.acronym|lower }}-charter.html">{%endif%}
{% ifequal item.session.type "BOF" %}<span style="background-color: #6FD">{% endifequal %}
@ -99,9 +102,9 @@
{% if item.session.type == "WG" %}</a>{%endif%}
</td>
<td>
{% if item.session.info.agenda_file %}<a href="http://tools.ietf.org/wg/{{item.session.group.acronym}}/agenda/">{%endif%}
{{ item.session.group.name|truncate_ellipsis:"20"|safe }}
{% if item.session.info.agenda_file %}</a>{%endif%}
{% if item.session.agenda_file %}<a href="http://tools.ietf.org/wg/{{item.session.group.acronym}}/agenda/">{%endif%}
{{ item.session.group.name|truncate_ellipsis:"22"|safe }}
{% if item.session.agenda_file %}</a>{%endif%}
</td>
</tr>
{% endif %}
@ -110,9 +113,9 @@
{% if item.timeslot.type.slug == "other" %}
<tr>
<td colspan="4">
<td colspan="3">
<a name="{{item.timeslot.time|date:"Y-m-d"}}_{{item.timeslot.time_desc|slice:":4"}}" />
{{ item.timeslot.time_desc }} {{ item.timeslot.name|truncate_ellipsis:"20"|safe }} - <a href="http://tools.ietf.org/agenda/{{schedule.meeting.number}}/venue/?room={{item.timeslot.location.name|slugify}}">{{ item.timeslot.location.name}}</a>
{{ item.timeslot.time_desc }} {{ item.timeslot.name|truncate_ellipsis:"19"|safe }} - <a href="http://tools.ietf.org/agenda/{{schedule.meeting.number}}/venue/?room={{item.timeslot.location.name|slugify}}">{{ item.timeslot.location.name}}</a>
</td>
</tr>
{% endif %}{# other #}