aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--forms.py21
-rw-r--r--templates/form_qsjps.html10
-rw-r--r--urls.py3
-rw-r--r--views.py20
4 files changed, 52 insertions, 2 deletions
diff --git a/forms.py b/forms.py
new file mode 100644
index 0000000..34081c0
--- /dev/null
+++ b/forms.py
@@ -0,0 +1,21 @@
+# Copyright (C) 2018 Alban Gruin
+#
+# celcatsanitizer is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published
+# by the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# celcatsanitizer is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with celcatsanitizer. If not, see <http://www.gnu.org/licenses/>.
+
+from django import forms
+
+
+class QSJPSForm(forms.Form):
+ begin = forms.DateTimeField(label="Début")
+ end = forms.DateTimeField(label="Fin")
diff --git a/templates/form_qsjps.html b/templates/form_qsjps.html
new file mode 100644
index 0000000..2d97a89
--- /dev/null
+++ b/templates/form_qsjps.html
@@ -0,0 +1,10 @@
+{% extends "index.html" %}
+
+{% block title %}QSJPS &ndash; {% endblock %}
+
+{% block body %}
+ <form action="{% url "qsjps" %}" method="post">
+ {{ form }}
+ <input type="submit" value="Trouver une salle" />
+ </form>
+{% endblock %}
diff --git a/urls.py b/urls.py
index 22011c4..f24bbba 100644
--- a/urls.py
+++ b/urls.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2017 Alban Gruin
+# Copyright (C) 2017-2018 Alban Gruin
#
# celcatsanitizer is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published
@@ -20,6 +20,7 @@ urlpatterns = [
url(r"^$", views.index, name="index"),
url(r"^pages/", include("django.contrib.flatpages.urls")),
url(r"^salles/$", views.rooms, name="rooms"),
+ url(r"^salles/qsjps$", views.qsjps, name="qsjps"),
url(r"^salles/(?P<room_slug>[-\w]+)/$", views.room_timetable, name="room-timetable"),
url(r"^salles/(?P<room_slug>[-\w]+)/(?P<year>[0-9]{4})/(?P<week>[0-4]?[0-9]|5[0-3])$", views.room_timetable, name="room-timetable"),
url(r"^(?P<year_slug>[-\w]+)/$", views.mention_list, name="mentions"),
diff --git a/views.py b/views.py
index 97a1d28..e8fc259 100644
--- a/views.py
+++ b/views.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2017 Alban Gruin
+# Copyright (C) 2017-2018 Alban Gruin
#
# celcatsanitizer is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published
@@ -19,7 +19,9 @@ from django.db.models import Count, Max
from django.db.models.functions import ExtractWeek, ExtractYear, Length
from django.http import Http404
from django.shortcuts import get_object_or_404, render
+from django.views.decorators.csrf import csrf_exempt
+from .forms import QSJPSForm
from .models import Course, Group, Room, Timetable, Year
from .utils import get_current_week, get_current_or_next_week, get_week, group_courses
@@ -144,5 +146,21 @@ def room_timetable(request, room_slug, year=None, week=None):
room = get_object_or_404(Room, slug=room_slug)
return timetable_common(request, room, year, week)
+@csrf_exempt
+def qsjps(request):
+ if request.method == "POST":
+ # Si on traite un formulaire, on le valide
+ form = QSJPSForm(request.POST)
+ if form.is_valid():
+ # Formulaire validé
+ return None
+ else:
+ # Formulaire invalide, on le raffiche avec une erreur
+ return render(request, "form_qsjps.html", {"form": form})
+ else:
+ # Sinon, affichage d’un formulaire vide
+ form = QSJPSForm()
+ return render(request, "form_qsjps.html", {"form": form})
+
def ctx_processor(request):
return {"celcatsanitizer_version": edt.VERSION}