diff options
| -rw-r--r-- | forms.py | 5 | ||||
| -rw-r--r-- | templates/subscribe.html | 4 | ||||
| -rw-r--r-- | views.py | 15 | 
3 files changed, 17 insertions, 7 deletions
| diff --git a/forms.py b/forms.py new file mode 100644 index 0000000..e0085d0 --- /dev/null +++ b/forms.py @@ -0,0 +1,5 @@ +from django import forms + + +class SubscribeForm(forms.Form): +    email = forms.EmailField(label="Adresse email") diff --git a/templates/subscribe.html b/templates/subscribe.html index 8fe4b79..b1aa71b 100644 --- a/templates/subscribe.html +++ b/templates/subscribe.html @@ -5,9 +5,9 @@  {% block body %}        <h2>S'abonner à {{ timetable.name }} – {{ group.name }}</h2>        <form action="{% url "subscribe" timetable.slug year week group.slug %}" method="post"> -        <input placeholder="Votre adresse mail" type="email" name="email" />          {% csrf_token %} -        <input type="submit" /> +        {{ form }} +        <input type="submit" value="S'abonner" />        </form>        <p>Après l'abonnement, vous allez recevoir un mail avec un lien de confirmation. Aucun autre mail ne vous sera envoyé si vous n'avez pas validé votre abonnement.<br />        Vous pouvez vous désabonner à tout moment à l'aide d'un lien contenu dans tout les mails que nous vous enverrons.<br /> @@ -3,6 +3,7 @@ from django.db.models import Count  from django.shortcuts import get_object_or_404, redirect, render  from django.utils import timezone +from edt.forms import SubscribeForm  from edt.models import Timetable, LastUpdate, Group, Subscription, Course  from edt.utils import get_week @@ -46,13 +47,17 @@ def subscribe(request, timetable_slug, year, week, group_slug):      group = get_object_or_404(Group, slug=group_slug)      if request.method == "POST": -        subscription = Subscription(email=request.POST["email"], group=group) -        subscription.save() +        form = SubscribeForm(request.POST) +        if form.is_valid(): +            subscription = Subscription(email=request.POST["email"], group=group) +            subscription.save() -        return redirect("timetable", timetable_slug=timetable_slug, year=year, week=week, group_slug=group_slug) +            return redirect("timetable", timetable_slug=timetable_slug, year=year, week=week, group_slug=group_slug)      else: -        timetable = get_object_or_404(Timetable, slug=timetable_slug) -        return render(request, "subscribe.html", {"timetable": timetable, "year": year, "week": week, "group": group}) +        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})  def confirm_subscription(request, token):      subscription = get_object_or_404(Subscription, token=token) | 
