Skip to content

Commit 2912a3a

Browse files
committed
Remove warning notification banner type
We originally implemented flash message / notification banners in the service with 3 of Django's built-in message levels — warning, info and success — rendering an NHS design system notification banner. The NHS design system only has two types of notification banner, success (styled green) and info (styled blue). The MBS prototype only uses these two, and doesn't have the concept of a visually distinct warning banner as yet. In our implementation, warning and info banners look identical. For simplicity, we should remove warning banners from our codebase. We can add them in later if needed. In this commit we replace all uses of messages.WARNING with messages.INFO, remove the warning banner from templates, and drop warning support from the get_notification_banner_params helper. The warning banner type is no longer needed as a distinct category.
1 parent a030e62 commit 2912a3a

7 files changed

Lines changed: 10 additions & 31 deletions

File tree

manage_breast_screening/auth/views.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ def cis2_callback(request):
7171
token = client.authorize_access_token(request)
7272
except MismatchingStateError:
7373
logger.exception("CIS2 callback failed: OAuth state mismatch")
74-
messages.warning(request, "Your login session expired. Please try again.")
74+
messages.info(request, "Your login session expired. Please try again.")
7575
return redirect(reverse("auth:login"))
7676
except OAuthError as e:
7777
if e.error == "invalid_client" and e.description == "JWT is not valid":
@@ -80,7 +80,7 @@ def cis2_callback(request):
8080
)
8181
else:
8282
logger.exception("CIS2 callback failed: OAuth error")
83-
messages.warning(request, "There was a problem logging in. Please try again.")
83+
messages.info(request, "There was a problem logging in. Please try again.")
8484
return redirect(reverse("auth:login"))
8585

8686
id_token_userinfo = token.get("userinfo")

manage_breast_screening/core/jinja2/layout-app.jinja

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -68,21 +68,13 @@
6868
request, message_type='success'
6969
) %}
7070

71-
{% set warning_notification_params = get_notification_banner_params(
72-
request, message_type='warning'
73-
) %}
74-
7571
{% if success_notification_params %}
7672
{{ notificationBanner(success_notification_params) }}
7773
{% endif %}
7874

7975
{% if info_notification_params %}
8076
{{ notificationBanner(info_notification_params) }}
8177
{% endif %}
82-
83-
{% if warning_notification_params %}
84-
{{ notificationBanner(warning_notification_params) }}
85-
{% endif %}
8678
{% endblock flash_messages %}
8779

8880
{% block page_content %}

manage_breast_screening/core/jinja2/workflow_step.jinja

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,6 @@
2828
request, message_type='success'
2929
) %}
3030

31-
{% set warning_notification_params = get_notification_banner_params(
32-
request, message_type='warning'
33-
) %}
34-
3531
{% if success_notification_params %}
3632
{{ notificationBanner(success_notification_params) }}
3733
{% endif %}
@@ -40,10 +36,6 @@
4036
{{ notificationBanner(info_notification_params) }}
4137
{% endif %}
4238

43-
{% if warning_notification_params %}
44-
{{ notificationBanner(warning_notification_params) }}
45-
{% endif %}
46-
4739
<div class="nhsuk-grid-row">
4840
<div class="nhsuk-grid-column-two-thirds">
4941
{{ form_error_summary(form) }}

manage_breast_screening/core/template_helpers.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from django.contrib.messages import INFO, SUCCESS, WARNING, get_messages
1+
from django.contrib.messages import INFO, SUCCESS, get_messages
22
from django.urls import reverse
33
from django.utils.html import conditional_escape as django_html_escape
44
from django.utils.safestring import SafeData, SafeString, mark_safe
@@ -88,12 +88,12 @@ def message_with_heading(heading: str, html=None) -> SafeString:
8888
def get_notification_banner_params(
8989
request, message_type="info", disable_auto_focus=False
9090
):
91-
levels = {"info": INFO, "warning": WARNING, "success": SUCCESS}
91+
levels = {"info": INFO, "success": SUCCESS}
9292
try:
9393
level = levels[message_type]
9494
except KeyError:
9595
raise ValueError(
96-
f"message_type must be one of {{info, warning, success}}; got {message_type}"
96+
f"message_type must be one of {{info, success}}; got {message_type}"
9797
)
9898

9999
messages = [message for message in get_messages(request) if message.level == level]

manage_breast_screening/core/tests/test_template_helpers.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import pytest
22
from django.contrib.auth.models import AnonymousUser
3-
from django.contrib.messages import ERROR, INFO, SUCCESS, WARNING
3+
from django.contrib.messages import ERROR, INFO, SUCCESS
44
from django.contrib.messages.storage.base import Message
55
from django.test import RequestFactory
66
from django.utils.safestring import mark_safe
@@ -73,7 +73,6 @@ def dummy_request(self):
7373
request._messages = [
7474
Message(message="abc", level=INFO),
7575
Message(message="def", level=SUCCESS),
76-
Message(message="warning!", level=WARNING),
7776
Message(message="error!!!", level=ERROR),
7877
]
7978
return request
@@ -86,14 +85,10 @@ def test_success_banner_with_text_message(self, dummy_request):
8685
result = get_notification_banner_params(dummy_request, "success")
8786
assert result == {"text": "def", "type": "success", "role": "alert"}
8887

89-
def test_warning_banner_with_text_message(self, dummy_request):
90-
result = get_notification_banner_params(dummy_request, "warning")
91-
assert result == {"text": "warning!", "type": "warning", "role": "alert"}
92-
9388
def test_invalid_message_type(self, dummy_request):
9489
with pytest.raises(
9590
ValueError,
96-
match="message_type must be one of {info, warning, success}; got error",
91+
match="message_type must be one of {info, success}; got error",
9792
):
9893
get_notification_banner_params(dummy_request, "error")
9994

manage_breast_screening/mammograms/views/add_multiple_images_information_view.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def post(self, request, *args, **kwargs):
5151
if form.is_stale():
5252
messages.add_message(
5353
request,
54-
messages.WARNING,
54+
messages.INFO,
5555
"The image details have changed. Please review and continue.",
5656
)
5757
return redirect(

manage_breast_screening/mammograms/views/appointment_workflow_views.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ def form_valid(self, form):
140140
except (IntegrityError, DatabaseError):
141141
messages.add_message(
142142
self.request,
143-
messages.WARNING,
143+
messages.INFO,
144144
"Unable to complete all sections. Please try again.",
145145
)
146146
return redirect(
@@ -415,7 +415,7 @@ def _handle_html(self, request, section, existing_review):
415415
if existing_review.reviewed_by != request.user:
416416
messages.add_message(
417417
request,
418-
messages.WARNING,
418+
messages.INFO,
419419
f"This section has already been reviewed by {existing_review.reviewed_by.get_full_name()}",
420420
)
421421
else:

0 commit comments

Comments
 (0)