From 4382d174677d4500684635f3ea313fa95fb88c32 Mon Sep 17 00:00:00 2001 From: Dominik George <dominik.george@teckids.org> Date: Wed, 4 Sep 2019 13:48:22 +0200 Subject: [PATCH] Raise proper 404 error if no lesson is found. --- .../alsijil/templates/alsijil/lesson.html | 86 ++++++++----------- biscuit/apps/alsijil/views.py | 6 +- 2 files changed, 38 insertions(+), 54 deletions(-) diff --git a/biscuit/apps/alsijil/templates/alsijil/lesson.html b/biscuit/apps/alsijil/templates/alsijil/lesson.html index 0c61a8739..ad483edcf 100644 --- a/biscuit/apps/alsijil/templates/alsijil/lesson.html +++ b/biscuit/apps/alsijil/templates/alsijil/lesson.html @@ -24,63 +24,47 @@ {% endblock %} {% block content %} - {% if lesson_period %} - <form method="post"> - {% csrf_token %} + <form method="post"> + {% csrf_token %} - <div class="card"> - <div class="card-header bg-light text-dark"> - {% blocktrans %}Lesson documentation{% endblocktrans %} - </div> - <div class="card-body"> - {% csrf_token %} - {% bootstrap_form lesson_documentation_form %} - </div> + <div class="card"> + <div class="card-header bg-light text-dark"> + {% blocktrans %}Lesson documentation{% endblocktrans %} </div> + <div class="card-body"> + {% csrf_token %} + {% bootstrap_form lesson_documentation_form %} + </div> + </div> - <div class="card"> - <div class="card-header bg-light text-dark"> - {% blocktrans %}Personal notes{% endblocktrans %} - </div> - <div class="card-body"> - {{ personal_note_formset.management_form }} + <div class="card"> + <div class="card-header bg-light text-dark"> + {% blocktrans %}Personal notes{% endblocktrans %} + </div> + <div class="card-body"> + {{ personal_note_formset.management_form }} - <table class="table table-striped table-bordered table-hover table-responsive-xl"> + <table class="table table-striped table-bordered table-hover table-responsive-xl"> + <tr> + <th>{% blocktrans %}Person{% endblocktrans %}</th> + <th>{% blocktrans %}Absent{% endblocktrans %}</th> + <th>{% blocktrans %}Tardiness{% endblocktrans %}</th> + <th>{% blocktrans %}Excused{% endblocktrans %}</th> + <th>{% blocktrans %}Remarks{% endblocktrans %}</th> + </tr> + {% for form in personal_note_formset %} + {{ form.id }} <tr> - <th>{% blocktrans %}Person{% endblocktrans %}</th> - <th>{% blocktrans %}Absent{% endblocktrans %}</th> - <th>{% blocktrans %}Tardiness{% endblocktrans %}</th> - <th>{% blocktrans %}Excused{% endblocktrans %}</th> - <th>{% blocktrans %}Remarks{% endblocktrans %}</th> + <td>{{ form.person_name }}</td> + <td>{{ form.absent }}</td> + <td>{{ form.late }}</td> + <td>{{ form.excused }}</td> + <td>{{ form.remarks }}</td> </tr> - {% for form in personal_note_formset %} - {{ form.id }} - <tr> - <td>{{ form.person_name }}</td> - <td>{{ form.absent }}</td> - <td>{{ form.late }}</td> - <td>{{ form.excused }}</td> - <td>{{ form.remarks }}</td> - </tr> - {% endfor %} - </table> - </div> - </div> - <input type="submit" value="{% blocktrans %}Save{% endblocktrans %}" /> - </form> - {% else %} - <div class="card text-white bg-danger"> - <div class="card-header"> - {% blocktrans %}No lesson found{% endblocktrans %} - </div> - <div class="card-body"> - <p> - {% blocktrans %} - You either selected an invalid lesson or there - is currently no lesson in progress. - {% endblocktrans %} - </p> + {% endfor %} + </table> </div> </div> - {% endif %} + <input type="submit" value="{% blocktrans %}Save{% endblocktrans %}" /> + </form> {% endblock %} diff --git a/biscuit/apps/alsijil/views.py b/biscuit/apps/alsijil/views.py index bba07d956..4f6fa11f1 100644 --- a/biscuit/apps/alsijil/views.py +++ b/biscuit/apps/alsijil/views.py @@ -3,8 +3,9 @@ from typing import Optional from django.contrib.auth.decorators import login_required from django.db.models import Exists, OuterRef, Q -from django.http import HttpRequest, HttpResponse, HttpResponseNotFound +from django.http import Http404, HttpRequest, HttpResponse from django.shortcuts import render +from django.utils.translation import ugettext as _ from django.views.decorators.cache import cache_page from biscuit.apps.chronos.models import LessonPeriod, TimePeriod @@ -30,8 +31,7 @@ def lesson(request: HttpRequest, week: Optional[int] = None, period_id: Optional wanted_week = current_week() if not lesson_period: - #XXX TODO: nice error page (“no lesson currently running for you?†or so) - return HttpResponseNotFound("no current lesson found for you") + raise Http404(_('You either selected an invalid lesson or there is currently no lesson in progress.')) context['lesson_period'] = lesson_period context['week'] = wanted_week -- GitLab