aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlban Gruin2017-01-25 14:25:04 +0100
committerAlban Gruin2017-01-25 14:25:04 +0100
commita4a3aa91a9eacf0f67442d79d8aaee01b7a1256b (patch)
tree7926f34aba06cebf98d612dfc1273f8073d3b35f
parenta98fcce79627994f397d457677082b9c5e1b6192 (diff)
Suppression du slug de l'emploi du temps dans les URLs ainsi que sa récupération manuelle inutile car
déjà référencée par le groupe
-rw-r--r--templates/index.html2
-rw-r--r--templates/subscribe.html6
-rw-r--r--templates/timetable.html6
-rw-r--r--urls.py4
-rw-r--r--views.py19
5 files changed, 17 insertions, 20 deletions
diff --git a/templates/index.html b/templates/index.html
index 5fe6678..812a991 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -61,7 +61,7 @@ li.course {
<section id="{{ timetable.slug }}">
<h3><a href="{{ timetable.url }}">{{ timetable.name }}</a></h3>
<ul>{% for group in groups %}{% if group.timetable.id == timetable.id %}
- <li>{{ group.name }} &ndash; {% for week in group.weeks %}<a href="{% url "timetable" timetable.slug week.year week|dt_week group.slug %}">{{ week|dt_prettyprint }}</a> {% endfor %}</li>{% endif %}{% endfor %}
+ <li>{{ group.name }} &ndash; {% for week in group.weeks %}<a href="{% url "timetable" group.slug week.year week|dt_week %}">{{ week|dt_prettyprint }}</a> {% endfor %}</li>{% endif %}{% endfor %}
</ul>
</section>{% endfor %}{% endblock %}
</div>
diff --git a/templates/subscribe.html b/templates/subscribe.html
index b1aa71b..2cd6d87 100644
--- a/templates/subscribe.html
+++ b/templates/subscribe.html
@@ -1,10 +1,10 @@
{% extends "index.html" %}
-{% block title %}S'abonner à {{ timetable.name }} &ndash; {{ group.name }}{% endblock %}
+{% block title %}S'abonner à {{ group.timetable.name }} &ndash; {{ group.name }}{% endblock %}
{% block body %}
- <h2>S'abonner à {{ timetable.name }} &ndash; {{ group.name }}</h2>
- <form action="{% url "subscribe" timetable.slug year week group.slug %}" method="post">
+ <h2>S'abonner à {{ group.timetable.name }} &ndash; {{ group.name }}</h2>
+ <form action="{% url "subscribe" group.slug year week %}" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="S'abonner" />
diff --git a/templates/timetable.html b/templates/timetable.html
index 28f6005..9d05be6 100644
--- a/templates/timetable.html
+++ b/templates/timetable.html
@@ -1,9 +1,9 @@
{% extends "index.html" %}
-{% block title %}{{ timetable.name }} &ndash; {{ group.name }} &ndash; Semaine {{ week }} &ndash; {% endblock %}
+{% block title %}{{ group.timetable.name }} &ndash; {{ group.name }} &ndash; Semaine {{ week }} &ndash; {% endblock %}
{% block body %}
- <h2>{{ timetable.name }} &ndash; {{ group.name }} &ndash; Semaine {{ week }}</h2>
+ <h2>{{ group.timetable.name }} &ndash; {{ group.name }} &ndash; Semaine {{ week }}</h2>
<p>Dernière mise à jour le {{ last_update|date:"l j F o" }} à {{ last_update|date:"H:i" }}</p>{% for day in courses %}
<section>
<h3>{{ day.0.begin|date:"l j F o" }} &ndash; de {{ day.0.begin|date:"H:i" }} à {% with day|last as last %}{{ last.end|date:"H:i" }}{% endwith %}</h3>
@@ -11,4 +11,4 @@
<li class="course"><b>{{ course.name }}</b>, de {{ course.begin|date:"H:i" }} à {{ course.end|date:"H:i" }}{% if course.rooms.all|length > 0 %}<br /><em>Salle{% if course.rooms.all|length > 1 %}s{% endif %} {% for room in course.rooms.all %}{{ room }} {% endfor %}</em>{% endif %}</li>{% endfor %}
</ul>
</section>{% endfor %}
- <p><a class="subscribe" href="{% url "subscribe" timetable.slug year week group.slug %}">S'abonner à cet emploi du temps</a></p>{% endblock %}
+ <p><a class="subscribe" href="{% url "subscribe" group.slug year week %}">S'abonner à cet emploi du temps</a></p>{% endblock %}
diff --git a/urls.py b/urls.py
index a8369e8..72c3dff 100644
--- a/urls.py
+++ b/urls.py
@@ -4,8 +4,8 @@ from . import views
urlpatterns = [
url(r"^$", views.index, name="index"),
- url(r"^(?P<timetable_slug>[-\w]+)/(?P<year>[0-9]{4})/(?P<week>[0-4]?[0-9]|5[0-3])/(?P<group_slug>[-\w]+)/$", views.timetable, name="timetable"),
- url(r"^(?P<timetable_slug>[-\w]+)/(?P<year>[0-9]{4})/(?P<week>[0-4]?[0-9]|5[0-3])/(?P<group_slug>[-\w]+)/subscribe$", views.subscribe, name="subscribe"),
+ url(r"^(?P<group_slug>[-\w]+)/(?P<year>[0-9]{4})/(?P<week>[0-4]?[0-9]|5[0-3])/$", views.timetable, name="timetable"),
+ url(r"^(?P<group_slug>[-\w]+)/(?P<year>[0-9]{4})/(?P<week>[0-4]?[0-9]|5[0-3])/subscribe$", views.subscribe, name="subscribe"),
url(r"^subscriptions/confirm/(?P<token>[0-9a-f]{40})$", views.confirm_subscription, name="confirm"),
url(r"^subscriptions/cancel/(?P<token>[0-9a-f]{40})$", views.cancel_subscription, name="cancel"),
]
diff --git a/views.py b/views.py
index b4518f3..dbcf937 100644
--- a/views.py
+++ b/views.py
@@ -33,20 +33,18 @@ def index(request):
return render(request, "index.html", {"timetables": timetables, "groups": groups})
-def timetable(request, timetable_slug, year, week, group_slug):
+def timetable(request, group_slug, year, week):
start, end = get_week(int(year), int(week))
- timetable = get_object_or_404(Timetable, slug=timetable_slug)
- group = get_object_or_404(Group, slug=group_slug, timetable=timetable)
-
+ group = get_object_or_404(Group, slug=group_slug)
courses = Course.objects.get_courses_for_group(group, begin__gte=start, begin__lt=end)
- last_update = LastUpdate.objects.get(timetable=timetable, week=week, year=year)
+ last_update = LastUpdate.objects.get(timetable=group.timetable, week=week, year=year)
grouped_courses = group_courses(courses)
- return render(request, "timetable.html", {"timetable": timetable, "group": group, "courses": grouped_courses, "last_update": last_update.date, "year": year, "week": int(week)})
+ return render(request, "timetable.html", {"group": group, "courses": grouped_courses, "last_update": last_update.date, "year": year, "week": int(week)})
-def subscribe(request, timetable_slug, year, week, group_slug):
+def subscribe(request, group_slug, year, week):
group = get_object_or_404(Group, slug=group_slug)
if request.method == "POST":
@@ -59,12 +57,11 @@ def subscribe(request, timetable_slug, year, week, group_slug):
context = Context({"group": group, "admins": settings.ADMINS, "token": subscription.token})
send_mail("Confirmation de l'abonnemenent", template.render(context), settings.DEFAULT_FROM_EMAIL, [request.POST["email"]])
- return redirect("timetable", timetable_slug=timetable_slug, year=year, week=int(week), group_slug=group_slug)
+ return redirect("timetable", group_slug=group_slug, year=year, week=int(week))
else:
form = SubscribeForm()
- timetable = get_object_or_404(Timetable, slug=timetable_slug)
- return render(request, "subscribe.html", {"timetable": timetable, "year": year, "week": week, "group": group, "form": form})
+ return render(request, "subscribe.html", {"year": year, "week": week, "group": group, "form": form})
def confirm_subscription(request, token):
subscription = get_object_or_404(Subscription, token=token)
@@ -78,7 +75,7 @@ def confirm_subscription(request, token):
if day >= 6:
year, week, _ = (timezone.now() + datetime.timedelta(weeks=1)).isocalendar()
- return redirect("timetable", timetable_slug=subscription.group.timetable.slug, year=year, week=week, group_slug=subscription.group.slug)
+ return redirect("timetable", group_slug=subscription.group.slug, year=year, week=week)
def cancel_subscription(request, token):
subscription = get_object_or_404(Subscription, token=token)