2019-10-20 13:16:29 +00:00
|
|
|
{% extends "site_base.html" %}
|
2015-10-16 17:53:02 +00:00
|
|
|
|
|
|
|
{% load i18n %}
|
|
|
|
{% load cache %}
|
2017-09-27 13:46:13 +00:00
|
|
|
{% load lca2018_tags %}
|
2015-10-16 17:53:02 +00:00
|
|
|
|
|
|
|
{% block head_title %}Conference Schedule{% endblock %}
|
2019-10-20 13:16:29 +00:00
|
|
|
{% block page_title %}Conference Schedule{% endblock %}
|
2018-09-28 22:42:27 +00:00
|
|
|
|
|
|
|
{% block content %}
|
2019-10-20 13:16:29 +00:00
|
|
|
<div class="row d-print-none">
|
|
|
|
<div class="col">
|
|
|
|
<ul class="nav nav-pills flex-column flex-md-row" id="schedule-tabs" role="tablist">
|
|
|
|
{% for section in sections %}
|
|
|
|
{% for timetable in section.days %}
|
|
|
|
<li class="nav-item flex-md-fill text-md-center">
|
|
|
|
{% include "symposion/schedule/_schedule_nav_link.html" with active=forloop.first label=timetable.day.date|date:"l" %}
|
|
|
|
</li>
|
|
|
|
{% endfor %}
|
2018-12-29 00:36:13 +00:00
|
|
|
{% endfor %}
|
2019-10-20 13:16:29 +00:00
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
</div>
|
2018-12-29 00:36:13 +00:00
|
|
|
|
2019-10-20 13:16:29 +00:00
|
|
|
<div class="tab-content d-print-block my-3" id="schedule-tabContent">
|
|
|
|
{% for section in sections %}
|
|
|
|
{% cache 600 "schedule-table" section.schedule.section %}
|
2018-12-29 00:36:13 +00:00
|
|
|
{% for timetable in section.days %}
|
2019-10-20 13:16:29 +00:00
|
|
|
<div class="row tab-pane fade {% if forloop.first %}show active{% endif %} d-print-block" id="{{ timetable.day.date|date:"l"|lower}}" role="tabpanel" aria-labelledby="schedule_day_{{ timetable.day.date|date:"l"|lower}}-tab">
|
|
|
|
<div class="col-12">
|
|
|
|
<h2 class="my-4">
|
|
|
|
{{ section.schedule.section.name }}
|
|
|
|
<span class="clearfix d-sm-block d-md-none"></span>
|
|
|
|
<small class="text-muted">{{ timetable.day.date|date:"l" }}, {{ timetable.day.date }}</small>
|
|
|
|
</h2>
|
|
|
|
<div class="table-responsive d-none d-md-block">
|
|
|
|
{% include "symposion/schedule/_grid.html" %}
|
|
|
|
</div>
|
|
|
|
<div class="mobile-schedule d-sm-block d-md-none">
|
|
|
|
{% include "symposion/schedule/_mobile.html" %}
|
2018-12-29 00:36:13 +00:00
|
|
|
</div>
|
2018-09-28 22:42:27 +00:00
|
|
|
</div>
|
|
|
|
</div>
|
2019-10-20 13:16:29 +00:00
|
|
|
{% endfor %}
|
|
|
|
{% endcache %}
|
|
|
|
{% endfor %}
|
2016-12-10 06:11:40 +00:00
|
|
|
</div>
|
2019-11-16 05:34:39 +00:00
|
|
|
<div>
|
|
|
|
<ul class="list-group list-group-horizontal">
|
|
|
|
<li class="list-group-item"><a href="conference.ics">ics</a></li>
|
|
|
|
<li class="list-group-item"><a href="conference.json">json</a></li>
|
|
|
|
</ul>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
2015-10-16 17:53:02 +00:00
|
|
|
{% endblock %}
|
2017-01-02 10:58:24 +00:00
|
|
|
|
|
|
|
{% block scripts_extra %}
|
2019-10-20 13:16:29 +00:00
|
|
|
<script type="text/javascript">
|
|
|
|
|
2019-12-15 04:47:21 +00:00
|
|
|
var fragment = window.location.hash.toLowerCase().substring(1);
|
2019-10-20 13:16:29 +00:00
|
|
|
|
2019-12-15 04:47:21 +00:00
|
|
|
if (fragment) {
|
|
|
|
var fragmentid = "#schedule_day_" + fragment + "-tab";
|
|
|
|
$(fragmentid).tab('show');
|
|
|
|
} else {
|
|
|
|
var OFFSET = -10 * (60 * 60 * 1000); // Gold Coast is 10 hours ahead of UTC in Jan.
|
|
|
|
var JAN = 0; // because January is 0, not 1
|
2019-10-20 13:16:29 +00:00
|
|
|
|
2019-12-15 04:47:21 +00:00
|
|
|
var fragments = [
|
2019-10-20 13:16:29 +00:00
|
|
|
{"day": "monday", "time": Date.UTC(2020, JAN, 13)},
|
|
|
|
{"day": "tuesday", "time": Date.UTC(2020, JAN, 14)},
|
|
|
|
{"day": "wednesday", "time": Date.UTC(2020, JAN, 15)},
|
|
|
|
{"day": "thursday", "time": Date.UTC(2020, JAN, 16)},
|
|
|
|
{"day": "friday", "time": Date.UTC(2020, JAN, 17)},
|
|
|
|
{"day": "saturday", "time": Date.UTC(2020, JAN, 18)},
|
|
|
|
];
|
|
|
|
|
2019-12-15 04:47:21 +00:00
|
|
|
var now = new Date().getTime();
|
2019-10-20 13:16:29 +00:00
|
|
|
|
2019-12-15 04:47:21 +00:00
|
|
|
for (var i = 0; i < 5; i++) {
|
|
|
|
var f = fragments[i];
|
|
|
|
var g = fragments[i+1];
|
2019-10-20 13:16:29 +00:00
|
|
|
if ((f.time + OFFSET) <= now && now < (g.time + OFFSET)) {
|
|
|
|
fragment = f.day;
|
|
|
|
}
|
|
|
|
}
|
2019-01-21 08:57:13 +00:00
|
|
|
}
|
2019-10-20 13:16:29 +00:00
|
|
|
|
2019-12-15 04:47:21 +00:00
|
|
|
window.addEventListener("hashchange", function(event) {
|
|
|
|
var fragment = window.location.hash.toLowerCase().substring(1);
|
2019-10-20 13:16:29 +00:00
|
|
|
|
|
|
|
if (!fragment) {
|
|
|
|
return;
|
|
|
|
};
|
|
|
|
|
2019-12-15 04:47:21 +00:00
|
|
|
var tab_id = "#schedule_day_" + fragment + "-tab";
|
|
|
|
$(tab_id).tab('show');
|
|
|
|
}, false);
|
2019-10-20 13:16:29 +00:00
|
|
|
|
2019-12-15 04:47:21 +00:00
|
|
|
$(".nav-item").click(function(event) {
|
|
|
|
// This updates the window location fragment so that
|
|
|
|
// the URL bar is updated, and so that when you go
|
|
|
|
// back, it loads the right page.
|
2019-10-20 13:16:29 +00:00
|
|
|
|
2019-12-15 04:47:21 +00:00
|
|
|
// len("schedule_day_") == 13
|
|
|
|
var day_tab = event.target.id.substring(13);
|
|
|
|
var day = day_tab.substr(0, day_tab.length-4);
|
2019-10-20 13:16:29 +00:00
|
|
|
|
2019-12-15 04:47:21 +00:00
|
|
|
if (history.pushState) {
|
|
|
|
history.pushState(null, null, "#" + day);
|
|
|
|
}
|
|
|
|
});
|
2019-01-21 08:57:13 +00:00
|
|
|
</script>
|
2019-10-20 13:16:29 +00:00
|
|
|
{{ block.super }}
|
|
|
|
{% endblock %}
|