diff --git a/src/open_inwoner/scss/components/Form/ButtonRadio.scss b/src/open_inwoner/scss/components/Form/ButtonRadio.scss index 9cd1310a81..87c9e637eb 100644 --- a/src/open_inwoner/scss/components/Form/ButtonRadio.scss +++ b/src/open_inwoner/scss/components/Form/ButtonRadio.scss @@ -4,6 +4,7 @@ &:checked ~ .button-radio__button { color: var(--color-primary); + cursor: default; } } @@ -14,6 +15,7 @@ color: var(--color-gray-lighter); display: inline-block; padding: 12px; + cursor: pointer; } &:first-child { diff --git a/src/open_inwoner/search/tests/test_feedback.py b/src/open_inwoner/search/tests/test_feedback.py index 7578e26180..b3522c575c 100644 --- a/src/open_inwoner/search/tests/test_feedback.py +++ b/src/open_inwoner/search/tests/test_feedback.py @@ -1,8 +1,11 @@ import urllib +from django.contrib import messages from django.urls import reverse +from django.utils.translation import ugettext_lazy as _ from django_webtest import WebTest +from furl import furl from open_inwoner.accounts.tests.factories import UserFactory from open_inwoner.pdc.tests.factories import CategoryFactory, TagFactory @@ -149,3 +152,30 @@ def test_positive_feedback_is_saved_with_unauthenticated_user_and_with_filters( self.assertTrue(feedback.positive) self.assertEqual(feedback.remark, self.feedback.remark) self.assertIsNone(feedback.searched_by) + + def test_feedback_form_not_displayed_after_submit(self): + params = {"query": self.feedback.search_query} + url = furl(reverse("search:search")).add(params).url + get_response = self.app.get(url) + + self.assertIsNotNone(get_response.html.find(id="feedback_form")) + self.assertEqual(list(get_response.context["messages"]), []) + + feedback_form = get_response.forms["feedback_form"] + feedback_form["remark"] = self.feedback.remark + feedback_form["positive"] = "true" + + post_response = feedback_form.submit().follow() + + self.assertIsNone(post_response.html.find(id="feedback_form")) + post_messages = list(post_response.context["messages"]) + self.assertEqual(len(post_messages), 1) + + message = post_messages[0] + self.assertEqual(message.level, messages.SUCCESS) + self.assertEqual( + message.message, + _( + "Thank you for your feedback. It will help us to improve our search engine" + ), + ) diff --git a/src/open_inwoner/search/views.py b/src/open_inwoner/search/views.py index 9c9e5bdcb6..0fa79a6307 100644 --- a/src/open_inwoner/search/views.py +++ b/src/open_inwoner/search/views.py @@ -1,3 +1,4 @@ +from django.contrib import messages from django.core.paginator import InvalidPage, Paginator from django.http import Http404 from django.http.response import HttpResponseRedirect @@ -116,4 +117,12 @@ def form_valid(self, form): [f"{key}: {', '.join(value)}" for key, value in search_data.items()] ) form.save() + + messages.add_message( + self.request, + messages.SUCCESS, + _( + "Thank you for your feedback. It will help us to improve our search engine" + ), + ) return HttpResponseRedirect(http_referer) diff --git a/src/open_inwoner/templates/pages/search.html b/src/open_inwoner/templates/pages/search.html index 58b8107f12..bda5112fbf 100644 --- a/src/open_inwoner/templates/pages/search.html +++ b/src/open_inwoner/templates/pages/search.html @@ -54,7 +54,7 @@

{% endif %} {% endrender_form %} - {% if results %} + {% if results and not messages %}
{% spaceless %}