Skip to content
Snippets Groups Projects
Commit 4590d41e authored by Benjamin Hättasch's avatar Benjamin Hättasch
Browse files

Introduce detail views for room and track plans

parent d6a755c9
No related branches found
No related tags found
No related merge requests found
......@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-03-02 22:35+0000\n"
"POT-Creation-Date: 2020-03-04 00:53+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
......@@ -17,37 +17,50 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: templates/AKPlan/plan_index.html:47
#: templates/AKPlan/plan_base.html:24
msgid "Write to organizers of this event for questions and comments"
msgstr "Fragen oder Kommentare? Schreib den Orgas dieses Events eine Mail"
#: templates/AKPlan/plan_breadcrumbs.html:13
msgid "AK Plan"
msgstr "AK-Plan"
#: templates/AKPlan/plan_index.html:40
msgid "Day"
msgstr "Tag"
#: templates/AKPlan/plan_index.html:57
#: templates/AKPlan/plan_index.html:50
msgid "Event"
msgstr "Veranstaltung"
#: templates/AKPlan/plan_index.html:66 templates/AKPlan/plan_wall.html:64
#: templates/AKPlan/plan_index.html:59 templates/AKPlan/plan_room.html:8
#: templates/AKPlan/plan_room.html:44 templates/AKPlan/plan_wall.html:64
msgid "Room"
msgstr "Raum"
#: templates/AKPlan/plan_index.html:106
msgid "AK Plan"
msgstr "AK-Plan"
#: templates/AKPlan/plan_index.html:80 templates/AKPlan/plan_room.html:34
msgid "Rooms"
msgstr "Räume"
#: templates/AKPlan/plan_index.html:88 templates/AKPlan/plan_track.html:34
msgid "Tracks"
msgstr "Tracks"
#: templates/AKPlan/plan_index.html:112
#: templates/AKPlan/plan_index.html:96
msgid "AK Wall"
msgstr "AK-Wall"
#: templates/AKPlan/plan_index.html:120 templates/AKPlan/plan_wall.html:99
#: templates/AKPlan/plan_index.html:106 templates/AKPlan/plan_wall.html:88
msgid "Current AKs"
msgstr "Aktuelle AKs"
#: templates/AKPlan/plan_index.html:127 templates/AKPlan/plan_wall.html:104
#: templates/AKPlan/plan_index.html:113 templates/AKPlan/plan_wall.html:93
msgid "Next AKs"
msgstr "Nächste AKs"
#: templates/AKPlan/plan_index.html:144
msgid "Write to organizers of this event for questions and comments"
msgstr "Fragen oder Kommentare? Schreib den Orgas dieses Events eine Mail"
#: templates/AKPlan/plan_track.html:8 templates/AKPlan/plan_track.html:44
msgid "Track"
msgstr "Track"
#: templates/AKPlan/slots_table.html:12
msgid "No AKs"
......
{% extends "AKPlan/plan_base.html" %}
{% load fontawesome_5 %}
{% load i18n %}
{% load static %}
{% load tz %}
{% block fullcalendar %}
{% get_current_language as LANGUAGE_CODE %}
<link href='{% static 'AKPlan/fullcalendar/daygrid/main.min.css' %}' rel='stylesheet' />
<link href='{% static 'AKPlan/fullcalendar/timegrid/main.min.css' %}' rel='stylesheet' />
<script src='{% static 'AKPlan/fullcalendar/daygrid/main.min.js' %}'></script>
<script src='{% static 'AKPlan/fullcalendar/timegrid/main.min.js' %}'></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
var calendarEl = document.getElementById('planCalendar');
var calendar = new FullCalendar.Calendar(calendarEl, {
plugins: [ 'timeGrid', 'bootstrap' ],
// Adapt to timezone of the connected event
timeZone: '{{ event.timezone }}',
defaultView: 'timeGrid',
// Adapt to user selected locale
locale: '{{ LANGUAGE_CODE }}',
// No header, not buttons
header: {
left: '',
center: '',
right: ''
},
aspectRatio: 2,
themeSystem: 'bootstrap',
// Only show calendar view for the dates of the connected event
visibleRange: {
start: '{{ event.start | timezone:event.timezone | date:"Y-m-d H:i:s" }}',
end: '{{ event.end | timezone:event.timezone | date:"Y-m-d H:i:s"}}',
},
allDaySlot: false,
nowIndicator: true,
eventTextColor: '#fff',
eventColor: '#127ba3',
// Create entries for all scheduled slots
events: {% block encode %}{% endblock %}
});
calendar.render();
});
</script>
{% endblock %}
......@@ -75,7 +75,27 @@
{% block content %}
<div class="float-right">
<a href="{% url 'plan:plan_wall' event_slug=event.slug %}" class="btn btn-success">{% fa5_icon 'desktop' 'fas' %}&nbsp;&nbsp;{% trans "AK Wall" %}</a>
<ul class="nav nav-pills">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">{% trans "Rooms" %}</a>
<div class="dropdown-menu" style="">
{% for r in event.room_set.all %}
<a class="dropdown-item" href="{% url "plan:plan_room" event_slug=event.slug pk=r.pk %}">{{ r }}</a>
{% endfor %}
</div>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">{% trans "Tracks" %}</a>
<div class="dropdown-menu">
{% for t in event.aktrack_set.all %}
<a class="dropdown-item" href="{% url "plan:plan_track" event_slug=event.slug pk=t.pk %}">{{ t }}</a>
{% endfor %}
</div>
</li>
<li class="nav-item">
<a class="nav-link active" href="{% url 'plan:plan_wall' event_slug=event.slug %}">{% fa5_icon 'desktop' 'fas' %}&nbsp;&nbsp;{% trans "AK Wall" %}</a>
</li>
</ul>
</div>
<h1>Plan: {{ event }}</h1>
......
{% extends "AKPlan/plan_detail.html" %}
{% load tz %}
{% load i18n %}
{% block breadcrumbs %}
{% include "AKPlan/plan_breadcrumbs.html" %}
<li class="breadcrumb-item">{% trans "Room" %}</li>
<li class="breadcrumb-item">{{ room.title }}</li>
{% endblock %}
{% block encode %}
[
{% for slot in room.akslot_set.all %}
{% if slot.start %}
{'title': '{{ slot.ak }}',
'start': '{{ slot.start | timezone:event.timezone | date:"Y-m-d H:i:s" }}',
'end': '{{ slot.end | timezone:event.timezone | date:"Y-m-d H:i:s" }}',
'url': '{% url 'submit:ak_detail' event_slug=event.slug pk=slot.ak.pk %}',
'borderColor': '{{ slot.ak.track.color }}',
'color': '{{ slot.ak.category.color }}',
},
{% endif %}
{% endfor %}
]
{% endblock %}
{% block content %}
<div class="float-right">
<ul class="nav nav-pills">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">{% trans "Rooms" %}</a>
<div class="dropdown-menu" style="">
{% for r in event.room_set.all %}
<a class="dropdown-item" href="{% url "plan:plan_room" event_slug=event.slug pk=r.pk %}">{{ r }}</a>
{% endfor %}
</div>
</li>
</ul>
</div>
<h1>Plan: {{ event }} -- {% trans "Room" %}: {{ room }}</h1>
{% timezone event.timezone %}
<div class="row" style="margin-top:30px;clear:both;">
<div class="col-md-12">
<div id="planCalendar"></div>
</div>
</div>
{% endtimezone %}
{% endblock %}
{% extends "AKPlan/plan_detail.html" %}
{% load tz %}
{% load i18n %}
{% block breadcrumbs %}
{% include "AKPlan/plan_breadcrumbs.html" %}
<li class="breadcrumb-item">{% trans "Track" %}</li>
<li class="breadcrumb-item">{{ track }}</li>
{% endblock %}
{% block encode %}
[
{% for slot in slots %}
{% if slot.start %}
{'title': '{{ slot.ak }} @ {{ slot.room }}',
'start': '{{ slot.start | timezone:event.timezone | date:"Y-m-d H:i:s" }}',
'end': '{{ slot.end | timezone:event.timezone | date:"Y-m-d H:i:s" }}',
'url': '{% url 'submit:ak_detail' event_slug=event.slug pk=slot.ak.pk %}',
'color': '{{ track.color }}',
'borderColor': '{{ slot.ak.category.color }}',
},
{% endif %}
{% endfor %}
]
{% endblock %}
{% block content %}
<div class="float-right">
<ul class="nav nav-pills">
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">{% trans "Tracks" %}</a>
<div class="dropdown-menu">
{% for t in event.aktrack_set.all %}
<a class="dropdown-item" href="{% url "plan:plan_track" event_slug=event.slug pk=t.pk %}">{{ t }}</a>
{% endfor %}
</div>
</li>
</ul>
</div>
<h1>Plan: {{ event }} -- {% trans "Track" %}: {{ track }}</h1>
{% timezone event.timezone %}
<div class="row" style="margin-top:30px;clear: both;">
<div class="col-md-12">
<div id="planCalendar"></div>
</div>
</div>
{% endtimezone %}
{% endblock %}
......@@ -9,6 +9,8 @@ urlpatterns = [
include([
path('', views.PlanIndexView.as_view(), name='plan_overview'),
path('wall/', views.PlanScreenView.as_view(), name='plan_wall'),
path('room/<int:pk>/', views.PlanRoomView.as_view(), name='plan_room'),
path('track/<int:pk>/', views.PlanTrackView.as_view(), name='plan_track'),
])
),
]
......@@ -2,9 +2,9 @@ from datetime import timedelta
from django.conf import settings
from django.utils.datetime_safe import datetime
from django.views.generic import ListView
from django.views.generic import ListView, DetailView
from AKModel.models import AKSlot
from AKModel.models import AKSlot, Room, AKTrack
from AKModel.views import FilterByEventSlugMixin
......@@ -72,3 +72,24 @@ class PlanScreenView(PlanIndexView):
context["start"] = self.start
context["end"] = self.end
return context
class PlanRoomView(FilterByEventSlugMixin, DetailView):
template_name = "AKPlan/plan_room.html"
model = Room
context_object_name = "room"
class PlanTrackView(FilterByEventSlugMixin, DetailView):
template_name = "AKPlan/plan_track.html"
model = AKTrack
context_object_name = "track"
def get_context_data(self, *, object_list=None, **kwargs):
context = super().get_context_data(object_list=object_list, **kwargs)
context["slots"] = []
for ak in context["track"].ak_set.all():
context["slots"].extend(ak.akslot_set.all())
return context
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment