From f9e36b396f9ab81f1c68de3688b597964b6516cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89lie=20Bouttier?= Date: Tue, 11 Oct 2016 21:43:31 +0200 Subject: [PATCH] room details --- planning/models.py | 8 +++++ planning/templates/planning/room_detail.html | 31 ++++++++++++++++++++ planning/templates/planning/room_list.html | 4 ++- planning/urls.py | 1 + planning/views.py | 7 +++-- 5 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 planning/templates/planning/room_detail.html diff --git a/planning/models.py b/planning/models.py index 8619304..66852fe 100644 --- a/planning/models.py +++ b/planning/models.py @@ -22,3 +22,11 @@ class Room(models.Model): def get_absolute_url(self): return reverse('list-rooms') + + @property + def talks_by_date(self): + return self.talk_set.filter(start_date__isnull=False).order_by('start_date').all() + + @property + def unscheduled_talks(self): + return self.talk_set.filter(start_date__isnull=True).all() diff --git a/planning/templates/planning/room_detail.html b/planning/templates/planning/room_detail.html new file mode 100644 index 0000000..5c64cc6 --- /dev/null +++ b/planning/templates/planning/room_detail.html @@ -0,0 +1,31 @@ +{% extends 'base.html' %} + +{% load i18n %} + +{% block planningtab %} class="active"{% endblock %} + +{% block content %} + +

{{ room.name }}

+ +{{ room.label }} + +

Scheduled talks:

+{% for talk in room.talks_by_date %} +{% if forloop.first %}{% endif %} +{% empty %} +{% trans "No talks." %} +{% endfor %} + +

Unscheduled talks:

+{% for talk in room.unscheduled_talks %} +{% if forloop.first %}{% endif %} +{% empty %} +{% trans "No talks." %} +{% endfor %} + +{% endblock %} diff --git a/planning/templates/planning/room_list.html b/planning/templates/planning/room_list.html index 3fdc78c..d3c08d3 100644 --- a/planning/templates/planning/room_list.html +++ b/planning/templates/planning/room_list.html @@ -15,16 +15,18 @@
{% for room in room_list %}
-

{{ room }}

+

{{ room }}

{% if room.label %}

{{ room.label }}

{% endif %}

{{ room.capacity }} {% trans "place" %}{{ room.capacity|pluralize }} {% if request|staff %} | {{ room.talk_set.count }} {% trans "talk" %}{{ room.talk_set.count|pluralize }} + {% if request|orga %} | {% bootstrap_icon "pencil" %} {% endif %} + {% endif %}

{% cycle '' '
' %} diff --git a/planning/urls.py b/planning/urls.py index dcb1cdb..87add48 100644 --- a/planning/urls.py +++ b/planning/urls.py @@ -6,5 +6,6 @@ from planning import views urlpatterns = [ url(r'^room/$', views.RoomList.as_view(), name='list-rooms'), url(r'^room/add/$', views.RoomCreate.as_view(), name='add-room'), + url(r'^room/(?P[-\w]+)/$', views.RoomDetail.as_view(), name='show-room'), url(r'^room/(?P[-\w]+)/edit/$', views.RoomUpdate.as_view(), name='edit-room'), ] diff --git a/planning/views.py b/planning/views.py index f876701..5ddc752 100644 --- a/planning/views.py +++ b/planning/views.py @@ -2,7 +2,7 @@ from django.shortcuts import render from django.contrib.sites.shortcuts import get_current_site from django.views.generic import CreateView, DetailView, ListView, UpdateView -from accounts.mixins import OrgaRequiredMixin +from accounts.mixins import OrgaRequiredMixin, StaffRequiredMixin from proposals.mixins import OnSiteFormMixin from .models import Room @@ -18,7 +18,7 @@ class RoomFormMixin(OnSiteFormMixin): form_class = RoomForm -class RoomList(OrgaRequiredMixin, RoomMixin, ListView): +class RoomList(StaffRequiredMixin, RoomMixin, ListView): pass @@ -27,3 +27,6 @@ class RoomCreate(OrgaRequiredMixin, RoomMixin, RoomFormMixin, CreateView): class RoomUpdate(OrgaRequiredMixin, RoomMixin, RoomFormMixin, UpdateView): pass + +class RoomDetail(StaffRequiredMixin, RoomMixin, DetailView): + pass