From 0fea31a824d57ca1bf37beff3094ec6df6079a82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Valentin=20Grou=C3=A8s?= <valentin.groues@uni.lu> Date: Fri, 31 Mar 2017 15:11:16 +0200 Subject: [PATCH] redirect to subject details after adding a subject - #86 --- smash/web/templates/_base.html | 13 +++++++++++++ smash/web/tests/test_view_subjects.py | 18 ++++++++++-------- smash/web/views/subject.py | 5 +++-- 3 files changed, 26 insertions(+), 10 deletions(-) diff --git a/smash/web/templates/_base.html b/smash/web/templates/_base.html index 8e930d3a..9365447f 100644 --- a/smash/web/templates/_base.html +++ b/smash/web/templates/_base.html @@ -240,6 +240,19 @@ desired effect <!-- Main content --> <section class="content"> + {% block messages %} + {% if messages %} + <div class="messages"> + {% for message in messages %} + <div class="alert {% if message.tags %}alert-{{ message.tags }}{% endif %} alert-dismissible"> + <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> + <h4>{{ message.tags | title }}</h4> + {{ message }} + </div> + {% endfor %} + </div> + {% endif %} + {% endblock %} {% block maincontent %} {% endblock maincontent %} </section> diff --git a/smash/web/tests/test_view_subjects.py b/smash/web/tests/test_view_subjects.py index 39783854..5ce3d247 100644 --- a/smash/web/tests/test_view_subjects.py +++ b/smash/web/tests/test_view_subjects.py @@ -42,7 +42,7 @@ class SubjectsViewTests(TestCase): def test_render_subject_visit_details(self): subject = create_subject() visit = create_visit(subject) - appointment = create_appointment(visit) + create_appointment(visit) response = self.client.get(reverse('web.views.subject_visit_details', kwargs={'id': subject.id})) self.assertEqual(response.status_code, 200) @@ -75,15 +75,17 @@ class SubjectsViewTests(TestCase): if value is not None: form_data[key] = value - form_data["screening_number"] = "X-"; - form_data["country"] = "Luxembourg"; - form_data["first_name"] = "John"; - form_data["last_name"] = "Doe"; - form_data["sex"] = SEX_CHOICES_MALE; - form_data["type"] = SUBJECT_TYPE_CHOICES_CONTROL; - form_data["default_location"] = get_test_location().id; + form_data["screening_number"] = "X-" + form_data["country"] = "Luxembourg" + form_data["first_name"] = "John" + form_data["last_name"] = "Doe" + form_data["sex"] = SEX_CHOICES_MALE + form_data["type"] = SUBJECT_TYPE_CHOICES_CONTROL + form_data["default_location"] = get_test_location().id response = self.client.post(reverse('web.views.subject_add'), data=form_data) self.assertEqual(response.status_code, 302) + response = self.client.get(response.url) + self.assertContains(response, "Subject created") subject = Subject.objects.all()[0] self.assertEqual("X-001", subject.screening_number) diff --git a/smash/web/views/subject.py b/smash/web/views/subject.py index 37732d54..5df14904 100644 --- a/smash/web/views/subject.py +++ b/smash/web/views/subject.py @@ -1,5 +1,5 @@ # coding=utf-8 - +from django.contrib import messages from django.shortcuts import redirect, get_object_or_404 from notifications import get_subjects_with_no_visit, get_subjects_with_reminder @@ -22,7 +22,8 @@ def subject_add(request): form = SubjectAddForm(request.POST, request.FILES, user=request.user) if form.is_valid(): form.save() - return redirect('web.views.subjects') + messages.add_message(request, messages.SUCCESS, 'Subject created') + return redirect('web.views.subject_edit', id=form.instance.id) else: worker = Worker.get_by_user(request.user) form = SubjectAddForm(user=request.user, initial={'screening_number': get_prefix_screening_number(worker)}) -- GitLab