From ed1abe16a35d5ea5cea1106f97c6dc08bfd5265c Mon Sep 17 00:00:00 2001 From: Alban Gruin Date: Sun, 15 Apr 2018 19:30:52 +0200 Subject: urls: utilisation de la nouvelle syntaxe path de Django Mise à jour de la doc, nouvelles protections dans timetable_common() --- README.md | 12 ++++++------ urls.py | 32 ++++++++++++++++---------------- views.py | 5 ++++- 3 files changed, 26 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index f94cbed..b940b9b 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ d’informations affichées. ## Comment faire tourner celcatsanitizer chez moi ? celcatsanitizer est écrit en Python 3. Il dépend des bibliothèques suivantes : - * [Django 1.11](https://www.djangoproject.com/) + * [Django 2.0](https://www.djangoproject.com/) * [requests](http://docs.python-requests.org/en/master/) * [BeautifulSoup4](https://www.crummy.com/software/BeautifulSoup/bs4/doc/) * [icalendar](https://icalendar.readthedocs.io/en/latest/) @@ -92,19 +92,19 @@ plusieurs informations. ##### Configuration des administrateurs [Vous pouvez retrouver la documentation de la variable ADMIN sur le site de -Django.](https://docs.djangoproject.com/fr/1.11/ref/settings/#admins) +Django.](https://docs.djangoproject.com/fr/2.0/ref/settings/#admins) Cette variable est obligatoire. ##### Configuration de l’internationalisation Ce passage n’est pas obligatoire. [Vous pouvez retrouver la documentation de l’internationalisation sur le site de -Django.](https://docs.djangoproject.com/fr/1.11/topics/i18n/) +Django.](https://docs.djangoproject.com/fr/2.0/topics/i18n/) ##### Configuration de la base de données [Vous pouvez retrouver la documentation de la base de données sur le site de -Django.](https://docs.djangoproject.com/fr/1.11/ref/settings/#databases) +Django.](https://docs.djangoproject.com/fr/2.0/ref/settings/#databases) ##### Configuration du mode de Django Si jamais vous utiliser Django en production, vous **devez** mettre la @@ -118,7 +118,7 @@ INSTALLED_APPS. celcatsanitizer utilise les flatpages pour rendre les pages « contact » et « à propos ». Vous pouvez retrouver le guide d’installation sur [le site de -Django](https://docs.djangoproject.com/fr/1.11/ref/contrib/flatpages/#installation). Effectuez +Django](https://docs.djangoproject.com/fr/2.0/ref/contrib/flatpages/#installation). Effectuez uniquement les deux premières étapes, celcatsanitizer enregistre déjà une route pour les pages statiques, et la commande de l’étape 4 sera effectuée plus loin. @@ -145,7 +145,7 @@ $ ./manage.py migrate ##### Gestion des fichiers statiques Si vous êtes en production, vous devez renseigner l’emplacement de vos fichiers statiques dans la variable -[STATIC_ROOT](https://docs.djangoproject.com/fr/1.11/ref/settings/#std:setting-STATIC_ROOT) +[STATIC_ROOT](https://docs.djangoproject.com/fr/2.0/ref/settings/#std:setting-STATIC_ROOT) de la configuration de Django, puis exécuter la commande suivante : ```bash diff --git a/urls.py b/urls.py index f24bbba..b61bbbe 100644 --- a/urls.py +++ b/urls.py @@ -13,23 +13,23 @@ # You should have received a copy of the GNU Affero General Public License # along with celcatsanitizer. If not, see . -from django.conf.urls import include, url +from django.urls import include, path from . import feeds, views 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[-\w]+)/$", views.room_timetable, name="room-timetable"), - url(r"^salles/(?P[-\w]+)/(?P[0-9]{4})/(?P[0-4]?[0-9]|5[0-3])$", views.room_timetable, name="room-timetable"), - url(r"^(?P[-\w]+)/$", views.mention_list, name="mentions"), - url(r"^(?P[-\w]+)/(?P[-\w]+)/$", views.group_list, name="groups"), - url(r"^(?P[-\w]+)/(?P[-\w]+)/(?P[-\w]+)/$", views.timetable, name="timetable"), - url(r"^(?P[-\w]+)/(?P[-\w]+)/(?P[-\w]+)/calendars", views.calendars, name="calendars"), - url(r"^(?P[-\w]+)/(?P[-\w]+)/(?P[-\w]+)/calendar.ics$", feeds.IcalFeed(), name="ics"), - url(r"^(?P[-\w]+)/(?P[-\w]+)/(?P[-\w]+)/calendar-group.ics$", feeds.IcalOnlyOneFeed(), name="ics-group"), - url(r"^(?P[-\w]+)/(?P[-\w]+)/(?P[-\w]+)/feed.atom$", feeds.AtomFeed(), name="atom"), - url(r"^(?P[-\w]+)/(?P[-\w]+)/(?P[-\w]+)/feed.rss$", feeds.RSSFeed(), name="rss"), - url(r"^(?P[-\w]+)/(?P[-\w]+)/(?P[-\w]+)/(?P[0-9]{4})/(?P[0-4]?[0-9]|5[0-3])/$", views.timetable, name="timetable"), + path("", views.index, name="index"), + path("pages/", include("django.contrib.flatpages.urls")), + path("salles/", views.rooms, name="rooms"), + path("salles/qsjps", views.qsjps, name="qsjps"), + path("salles//", views.room_timetable, name="room-timetable"), + path("salles///", views.room_timetable, name="room-timetable"), + path("/", views.mention_list, name="mentions"), + path("//", views.group_list, name="groups"), + path("///", views.timetable, name="timetable"), + path("///calendars", views.calendars, name="calendars"), + path("///calendar.ics", feeds.IcalFeed(), name="ics"), + path("///calendar-group.ics", feeds.IcalOnlyOneFeed(), name="ics-group"), + path("///feed.atom", feeds.AtomFeed(), name="atom"), + path("///feed.rss", feeds.RSSFeed(), name="rss"), + path("/////", views.timetable, name="timetable"), ] diff --git a/views.py b/views.py index de510a3..ebcf4ff 100644 --- a/views.py +++ b/views.py @@ -86,7 +86,10 @@ def timetable_common(request, obj, year=None, week=None, timetable=None): elif (int(year), int(week)) < (current_year, current_week): is_old_timetable = True - start, end = get_week(year, week) + try: + start, end = get_week(year, week) + except ValueError: + raise Http404 courses = Course.objects.get_courses(obj, begin__gte=start, begin__lt=end) if not courses.exists() and provided_week: -- cgit v1.2.1