Skip to content

Commit

Permalink
Merge pull request #910 from alphagov/1897-reminder-redirect
Browse files Browse the repository at this point in the history
1897: Redirect to create reminder on reminder delete
  • Loading branch information
ahernp authored Feb 25, 2025
2 parents fddc1ac + 8ba8635 commit 2f3d38d
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -263,6 +263,9 @@ def test_reminder_task_create(admin_client):
reminder_task: Task = Task.objects.get(case=case)

assert reminder_task.description == DESCRIPTION
assert response.url == reverse(
"cases:case-detail", kwargs={"pk": reminder_task.case.id}
)


@pytest.mark.django_db
Expand Down Expand Up @@ -369,9 +372,9 @@ def test_reminder_task_create_redirects_to_case(rf):


@pytest.mark.django_db
def test_reminder_task_update_redirects_to_case(rf):
def test_reminder_task_update_redirects_to_self(rf):
"""
Test updating a reminder task redirects to parent case details
Test updating a reminder task redirects to reminder page
"""
user: User = User.objects.create()
case: Case = Case.objects.create(auditor=user)
Expand All @@ -397,7 +400,9 @@ def test_reminder_task_update_redirects_to_case(rf):
response: HttpResponse = ReminderTaskUpdateView.as_view()(request, pk=task.id)

assert response.status_code == 302
assert response.url == reverse("cases:case-detail", kwargs={"pk": case.id})
assert response.url == reverse(
"notifications:edit-reminder-task", kwargs={"pk": task.id}
)

task_from_db: Task = Task.objects.get(id=task.id)

Expand All @@ -410,6 +415,50 @@ def test_reminder_task_update_redirects_to_case(rf):
assert event.type == Event.Type.UPDATE


@pytest.mark.django_db
def test_reminder_task_delete_redirects_to_create(rf):
"""
Test deleting a reminder task redirects to create reminder page
"""
user: User = User.objects.create()
case: Case = Case.objects.create(auditor=user)
task: Task = Task.objects.create(
type=Task.Type.REMINDER,
date=date.today(),
user=user,
case=case,
)

request: HttpRequest = rf.post(
reverse("notifications:edit-reminder-task", kwargs={"pk": task.id}),
{
"date_0": TODAY.day,
"date_1": TODAY.month,
"date_2": TODAY.year,
"description": DESCRIPTION,
"delete": "Delete",
},
)
request.user = user

response: HttpResponse = ReminderTaskUpdateView.as_view()(request, pk=task.id)

assert response.status_code == 302
assert response.url == reverse(
"notifications:reminder-create", kwargs={"case_id": task.case.id}
)

task_from_db: Task = Task.objects.get(id=task.id)

assert task_from_db is not None
assert task_from_db.read is True

event: Event = Event.objects.all().first()

assert event is not None
assert event.type == Event.Type.UPDATE


@pytest.mark.django_db
def test_reminder_task_update_updates_user(rf):
"""
Expand Down
10 changes: 8 additions & 2 deletions accessibility_monitoring_platform/apps/notifications/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -175,5 +175,11 @@ def form_valid(self, form: ModelForm) -> HttpResponseRedirect:
return HttpResponseRedirect(self.get_success_url())

def get_success_url(self) -> str:
"""Record creation event"""
return reverse("cases:case-detail", kwargs={"pk": self.object.case.id})
"""Redirect to reminder create page if current reminder deleted"""
if "delete" in self.request.POST:
return reverse(
"notifications:reminder-create", kwargs={"case_id": self.object.case.id}
)
return reverse(
"notifications:edit-reminder-task", kwargs={"pk": self.object.id}
)

0 comments on commit 2f3d38d

Please sign in to comment.