Rooms have optional track names, access schedule by day via URL (#87)

* Optional track name with room name on schedule, access schedule by day eg /schedule/?day=Monday

* Changed to using a Track model rather than a char field
This commit is contained in:
Scott Bragg 2016-12-26 12:10:42 +11:00 committed by GitHub
parent fccf547e9f
commit 0eda616345
5 changed files with 36 additions and 5 deletions

View file

@ -1,3 +1,4 @@
{% load lca2017_tags %}
<table class="calendar table table-bordered">
<thead>
<tr>
@ -6,6 +7,14 @@
<th>{{ room.name }}</th>
{% endfor %}
</tr>
<tr>
<th class="time">&nbsp;</th>
{% for room in timetable.rooms %}
{% with room|trackname:timetable.day as track_name %}
<th class="track-name">{% if track_name %}<p>{{ track_name }}{% endif %}</th>
{% endwith %}
{% endfor %}
</tr>
</thead>
<tbody>
{% for row in timetable %}

View file

@ -28,21 +28,25 @@
<div class="panel--tabs">
{% for section in sections %}
{% for timetable in section.days %}
<a data-tab-control="{{ timetable.day.date|date:"l"}}" class="panel--tab-switch {% if forloop.is_first and forloop.parentloop.is_first %}is-active{% endif %}">{{ timetable.day.date|date:"l"}}</a>
{% if day_switch == None %}
<a data-tab-control="{{ timetable.day.date|date:"l"}}" class="panel--tab-switch {% if forloop.first and forloop.parentloop.first %}is-active{% endif %}">{{ timetable.day.date|date:"l"}}</a>
{% else %}
<a data-tab-control="{{ timetable.day.date|date:"l"}}" class="panel--tab-switch {% if timetable.day.date|date:"l"|lower == day_switch|lower %}is-active{% endif %}">{{ timetable.day.date|date:"l"}}</a>
{% endif %}
{% endfor %}
{% endfor %}
</div>
</div>
{% for section in sections %}
{% cache 600 "schedule-table" section.schedule.section %}
{% cache 600 "schedule-table" section.schedule.section %}
{% for timetable in section.days %}
<div data-tab-content="{{ timetable.day.date|date:"l"}}" class="panel--tab-content is-active">
<div data-tab-content="{{ timetable.day.date|date:"l"}}" class="panel--tab-content {% if timetable.day.date|date:"l"|lower == day_switch|lower %}is-active{% endif %}">
<h3>{{ section.schedule.section.name }} — {{ timetable.day.date|date:"l" }}, {{ timetable.day.date }}</h3>
{% include "symposion/schedule/_grid.html" %}
</div>
{% endfor %}
{% endcache %}
{% endcache %}
{% endfor %}
</div>

View file

@ -8,6 +8,7 @@ from django.conf import settings
from django.contrib.staticfiles.templatetags import staticfiles
from easy_thumbnails.files import get_thumbnailer
from symposion.conference import models as conference_models
from symposion.schedule.models import Track
CONFERENCE_ID = settings.CONFERENCE_ID
@ -92,3 +93,11 @@ def gst(amount):
@register.simple_tag()
def conference_name():
return conference_models.Conference.objects.get(id=CONFERENCE_ID).title
@register.filter()
def trackname(room, day):
try:
track_name = room.track_set.get(day=day).name
except Track.DoesNotExist:
track_name = None
return track_name

View file

@ -681,6 +681,14 @@ table th {
text-transform: uppercase;
}
.track-name {
margin-top: 0;
margin-bottom: 0;
font-weight: bold;
text-transform: none;
font-size: 20px;
}
table th, table td {
padding: 10px;
padding: 0.625rem;

View file

@ -33,9 +33,10 @@ function setupTabs() {
for (var x = 0; x < elements.length; x++) {
u.addEventListener(elements[x], 'click', tabClickhandler);
}
//Activate the first
// Activate the first element with 'is-active' found
var event = document.createEvent('Events');
event.initEvent('click', true, false);
elements = document.querySelectorAll('[data-tab-control].is-active');
elements[0].dispatchEvent(event);
}