Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Embed view and Bootstrap tables in the schedule template #476

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions wafer/schedule/templates/wafer.schedule/embed_schedule.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{% load static from staticfiles %}
{% load i18n %}
<!DOCTYPE html>
<html>
<head>
<title>{% block title %}{% trans "Schedule" %} - {{ WAFER_CONFERENCE_NAME }}{% endblock %}</title>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="{% static 'vendor/bootstrap/dist/css/bootstrap.min.css' %}" rel="stylesheet">
<link href="{% static 'vendor/@fortawesome/fontawesome-free-webfonts/css/fontawesome.css' %}" rel="stylesheet">
<link href="{% static 'vendor/@fortawesome/fontawesome-free-webfonts/css/fa-solid.css' %}" rel="stylesheet">
<link href="{% static 'css/wafer.css' %}" rel="stylesheet">
{% block extra_head %}{% endblock %}
</head>
<body>
{% block content %}
<section class="wafer wafer-schedule">
{% block schedule_grid %}
{% include "wafer.schedule/static_schedule.html" %}
{% endblock %}
</section>
{% endblock %}
</body>
</html>
60 changes: 3 additions & 57 deletions wafer/schedule/templates/wafer.schedule/full_schedule.html
Original file line number Diff line number Diff line change
Expand Up @@ -14,62 +14,8 @@
<h1>
{% trans "Schedule" %}
</h1>
<div class="wafer_schedule">
{% if not schedule_days %}
{# Schedule is incomplete / invalid, so show nothing #}
{% blocktrans %}
<p>The final schedule has not been published yet.</p>
{% endblocktrans %}
{% else %}
{% if next_day or prev_day %}
<div class="clearfix d-print-none">
{% url 'wafer_full_schedule' as schedule_url %}
{% if prev_day %}
<a href="{{ schedule_url }}?day={{ prev_day }}"
class="float-left btn btn-secondary btn-lg">{% trans "Previous Day" %}</a>
{% endif %}
{% if next_day %}
<a href="{{ schedule_url }}?day={{ next_day }}"
class="float-right btn btn-secondary btn-lg">{% trans "Next Day" %}</a>
{% endif %}
</div>
{% endif %}
{% for schedule_day in schedule_days %}
<table cellspacing=1 cellpadding=0>
{# We assume that the admin has created a valid timetable #}
<tr>
<td colspan="{{ schedule_day.venues|length|add:1 }}" class="title">
<a href="?day={{ schedule_day.day.date.isoformat }}">
{{ schedule_day.day.date|date:"l (d b)" }}
</a>
</td>
</tr>
<tr>
<th>{% trans "Time" %}</th>
{% for venue in schedule_day.venues %}
<th><a href="{{ venue.get_absolute_url }}">{{ venue.name }}</a></th>
{% endfor %}
</tr>
{% for row in schedule_day.rows %}
<tr>
<td class="scheduleslot">{{ row.slot.get_start_time|time:"H:i" }} - {{ row.slot.end_time|time:"H:i" }}</td>
{% for item in row.get_sorted_items %}
{% if item.item == "unavailable" %}
{# Venue isn't available, so we add an empty table element with the 'unavailable' class #}
<td colspan="{{ item.colspan }}" rowspan="{{ item.rowspan }}" class="unavailable"></td>
{% else %}
{# Add item details #}
<td colspan="{{ item.colspan }}" rowspan="{{ item.rowspan }}"
class="{{ item.item.get_css_classes|join:' ' }}">
{% include "wafer.schedule/schedule_item.html" with item=item.item %}
</td>
{% endif %}
{% endfor %}
</tr>
{% endfor %}
</table>
{% endfor %}
{% endif %}
</div>
{% block schedule_grid %}
{% include "wafer.schedule/static_schedule.html" %}
{% endblock %}
</section>
{% endblock %}
58 changes: 58 additions & 0 deletions wafer/schedule/templates/wafer.schedule/static_schedule.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
{% load i18n %}
<div class="wafer_schedule">
{% if not schedule_days %}
{# Schedule is incomplete / invalid, so show nothing #}
{% blocktrans %}
<p>The final schedule has not been published yet.</p>
{% endblocktrans %}
{% else %}
{% if next_day or prev_day %}
<div class="clearfix d-print-none">
{% url 'wafer_full_schedule' as schedule_url %}
{% if prev_day %}
<a href="{{ schedule_url }}?day={{ prev_day }}"
class="float-left btn btn-secondary btn-lg">{% trans "Previous Day" %}</a>
{% endif %}
{% if next_day %}
<a href="{{ schedule_url }}?day={{ next_day }}"
class="float-right btn btn-secondary btn-lg">{% trans "Next Day" %}</a>
{% endif %}
</div>
{% endif %}
{% for schedule_day in schedule_days %}
<table cellspacing=1 cellpadding=0>
{# We assume that the admin has created a valid timetable #}
<tr>
<td colspan="{{ schedule_day.venues|length|add:1 }}" class="title">
<a href="?day={{ schedule_day.day.date.isoformat }}">
{{ schedule_day.day.date|date:"l (d b)" }}
</a>
</td>
</tr>
<tr>
<th>{% trans "Time" %}</th>
{% for venue in schedule_day.venues %}
<th><a href="{{ venue.get_absolute_url }}">{{ venue.name }}</a></th>
{% endfor %}
</tr>
{% for row in schedule_day.rows %}
<tr>
<td class="scheduleslot">{{ row.slot.get_start_time|time:"H:i" }} - {{ row.slot.end_time|time:"H:i" }}</td>
{% for item in row.get_sorted_items %}
{% if item.item == "unavailable" %}
{# Venue isn't available, so we add an empty table element with the 'unavailable' class #}
<td colspan="{{ item.colspan }}" rowspan="{{ item.rowspan }}" class="unavailable"></td>
{% else %}
{# Add item details #}
<td colspan="{{ item.colspan }}" rowspan="{{ item.rowspan }}"
class="{{ item.item.get_css_classes|join:' ' }}">
{% include "wafer.schedule/schedule_item.html" with item=item.item %}
</td>
{% endif %}
{% endfor %}
</tr>
{% endfor %}
</table>
{% endfor %}
{% endif %}
</div>
3 changes: 2 additions & 1 deletion wafer/schedule/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,15 @@

from wafer.schedule.views import (
CurrentView, ScheduleView, ScheduleItemViewSet, ScheduleXmlView,
VenueView, ICalView)
ScheduleEmbedView, VenueView, ICalView)

router = routers.DefaultRouter()
router.register(r'scheduleitems', ScheduleItemViewSet)

urlpatterns = [
url(r'^$', ScheduleView.as_view(), name='wafer_full_schedule'),
url(r'^venue/(?P<pk>\d+)/$', VenueView.as_view(), name='wafer_venue'),
url(r'^embed/$', ScheduleEmbedView.as_view(), name='wafer_current'),
url(r'^current/$', CurrentView.as_view(), name='wafer_current'),
url(r'^pentabarf\.xml$', ScheduleXmlView.as_view(),
name='wafer_pentabarf_xml'),
Expand Down
4 changes: 4 additions & 0 deletions wafer/schedule/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,10 @@ def get_context_data(self, **kwargs):
return context


class ScheduleEmbedView(ScheduleView):
template_name = 'wafer.schedule/embed_schedule.html'


class CurrentView(TemplateView):
template_name = 'wafer.schedule/current.html'

Expand Down