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:
parent
fccf547e9f
commit
0eda616345
5 changed files with 36 additions and 5 deletions
|
@ -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"> </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 %}
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue