diff --git a/smash/web/templates/_base.html b/smash/web/templates/_base.html index 0fdfe7ae36d3bbc17d9f99d78d24185e0ed7d054..0c30d7e84c00da6b6e12a64b0a2455f32fabbe7f 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 39783854007eceecff55a6d76a5205d7f258aad1..5ce3d247a2343b9a4dffcae29f3d8750c51e30a4 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 325e2eca7ab89c51ccb0d6fe221a1d1ceeea00d3..23d90b5ffe8434c6e56851bef2779402c82ea3b3 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)})