diff --git a/src/backoffice/templates/feedback_detail.html b/src/backoffice/templates/feedback_detail.html index 50c22010d..4a891dcbb 100644 --- a/src/backoffice/templates/feedback_detail.html +++ b/src/backoffice/templates/feedback_detail.html @@ -1,19 +1,31 @@ {% extends 'base.html' %} {% block title %} - Event Feedback Detail | Orga | BackOffice | {{ block.super }} + Camp Feedback Detail | Orga | BackOffice | {{ block.super }} {% endblock %} {% block content %}
-{{ feedback.feedback }}
+ {{ feedback.feedback|linebreaks }}
List of all feedbacks for this camp
Backoffice @@ -23,6 +23,7 @@-{{ feedback.feedback }}
+ {{ feedback.feedback|linebreaks }}
Use this view to check and approve users Public Credit Names
-View all of the feedbacks for this camp
diff --git a/src/backoffice/tests/test_orga.py b/src/backoffice/tests/test_orga.py new file mode 100644 index 000000000..5188702eb --- /dev/null +++ b/src/backoffice/tests/test_orga.py @@ -0,0 +1,79 @@ + +from django.urls import reverse +from feedback.models import CampFeedback +from utils.tests import BornhackTestBase + + +class TestCampFeedbackProcessView(BornhackTestBase): + """Test CampFeedbackProcessView.""" + + @classmethod + def setUpTestData(cls) -> None: + """Test setup.""" + super().setUpTestData() + cls.feedback = CampFeedback.objects.create( + camp=cls.camp, + user=cls.users[0], + feedback="Test Feedback" + ) + + cls.admin = cls.users["admin"] + cls.kwargs = { + "camp_slug": cls.camp.slug, + "pk": cls.feedback.pk, + "state": "reviewed" + } + + def test_admin_processing_feedback_as_reviewed(self) -> None: + """Test admin user processing feedback as reviewed.""" + self.client.force_login(self.admin) + url = reverse("backoffice:feedback_process", kwargs=self.kwargs) + + self.client.post(url) + self.feedback.refresh_from_db() + + assert self.feedback.state == CampFeedback.StateChoices.REVIEWED + + def test_admin_processing_feedback_as_spam(self) -> None: + """Test admin user processing feedback as spam.""" + self.client.force_login(self.admin) + self.kwargs.update({"state": "spam"}) + url = reverse("backoffice:feedback_process", kwargs=self.kwargs) + + self.client.post(url) + self.feedback.refresh_from_db() + + assert self.feedback.state == CampFeedback.StateChoices.SPAM + + def test_admin_resets_feedback_as_unprocessed(self) -> None: + """Test admin user resets feedback as unprocessed.""" + self.client.force_login(self.admin) + self.kwargs.update({"state": "unprocessed"}) + url = reverse("backoffice:feedback_process", kwargs=self.kwargs) + + self.client.post(url) + self.feedback.refresh_from_db() + + assert self.feedback.state == CampFeedback.StateChoices.UNPROCESSED + + def test_bad_request_processing_feedback_with_invalid_state(self) -> None: + """ + Test processing feedback with invalid state return BadRequest. + """ + self.client.force_login(self.admin) + self.kwargs.update({"state": "unknown"}) + url = reverse("backoffice:feedback_process", kwargs=self.kwargs) + + response = self.client.post(url) + + assert response.status_code == 400 + + def test_bad_request_requesting_view_with_invalid_state(self) -> None: + """Test `GET` request to view with invalid state return BadRequest.""" + self.client.force_login(self.admin) + self.kwargs.update({"state": "unknown"}) + url = reverse("backoffice:feedback_process", kwargs=self.kwargs) + + response = self.client.get(url) + + assert response.status_code == 400 diff --git a/src/backoffice/urls.py b/src/backoffice/urls.py index 58da73344..e8f64f627 100644 --- a/src/backoffice/urls.py +++ b/src/backoffice/urls.py @@ -86,9 +86,9 @@ from .views import FacilityTypeListView from .views import FacilityTypeUpdateView from .views import FacilityUpdateView -from .views import EventFeedbackDetailView -from .views import EventFeedbackListView -from .views import EventFeedbackProcessView +from .views import CampFeedbackDetailView +from .views import CampFeedbackListView +from .views import CampFeedbackProcessView from .views import InvoiceDownloadMultipleView from .views import InvoiceDownloadView from .views import InvoiceListCSVView @@ -422,9 +422,9 @@ ), ), # feedback - path("feedback_list/", EventFeedbackListView.as_view(), name="feedback_list"), - path("feedback_detail/