Updated template and support functions for iPhone agenda page.
- Legacy-Id: 6582
This commit is contained in:
parent
28a0d99d09
commit
13b6c7a983
ietf
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 #}
|
||||
|
|
Loading…
Reference in a new issue