mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-24 00:07:02 -04:00
Removed all govuk css (#2814)
* Removed all govuk css * Updated reference files * Removing govuk js * Fixed casing for modules, removed unused page * Got more reference images * Updated template page * Removed govuk padding util * Updated hint to uswds hint * More govuk cleanup * Commiting backstopjs ref files * Fixed all unit tests that broke due to brittleness around govuk styling * Added new ref images * Final removal of govuk * Officially removed all govuk references * Updated reference file * Updated link to button * UI modernization * Cleanup * removed govuk escaping tests since they are no longer needed * Fix CodeQL security issue in escapeElementName function - Escape backslashes first before other special characters - Prevents potential double-escaping vulnerability - Addresses CodeQL alert about improper string escaping * Found more govuk removal. Fixed unit tests * Add missing pipeline check to pre-commit * updated test * Updated e2e test * More update to e2e test * Fixed another e2e test * Simple PR comments addressed * More updates * Updated backstop ref files * Refactored folder selection for non-admins * Updated redundant line * Updated tests to include correct mocks * Added more ref files * Addressing carlos comments * Addressing Carlo comments, cleanup of window initing * More cleanup and addressing carlo comments * Fixing a11 scan * Fixed a few issues with javascript * Fixed for pr * Fixing e2e tests * Tweaking e2e test * Added more ref files and cleaned up urls.js * Fixed bug with creating new template * Removed brittle test - addressed code ql comment * e2e race condition fix * More e2e test fixes * Updated e2e tests to not wait for text sent * Updated test to not wait for button click response * Made tear down more resilent if staging is down * reverted e2e test to what was working before main merge * Updated backstopRef images * Updated gulp to include job-polling differently
This commit is contained in:
@@ -1,12 +1,6 @@
|
||||
import logging
|
||||
|
||||
from flask import (
|
||||
abort,
|
||||
redirect,
|
||||
render_template,
|
||||
request,
|
||||
url_for,
|
||||
)
|
||||
from flask import abort, redirect, render_template, request, url_for
|
||||
from flask_login import current_user
|
||||
|
||||
from app import status_api_client
|
||||
@@ -69,14 +63,6 @@ def delivery_and_failure():
|
||||
return redirect(url_for(".message_status"), 301)
|
||||
|
||||
|
||||
@main.route("/design-patterns-content-guidance")
|
||||
@user_is_logged_in
|
||||
def design_content():
|
||||
return redirect(
|
||||
"https://www.gov.uk/service-manual/design/sending-emails-and-text-messages", 301
|
||||
)
|
||||
|
||||
|
||||
@main.route("/documentation")
|
||||
@user_is_logged_in
|
||||
def documentation():
|
||||
|
||||
@@ -22,7 +22,7 @@ from app import (
|
||||
notification_api_client,
|
||||
service_api_client,
|
||||
)
|
||||
from app.enums import NotificationStatus, ServicePermission
|
||||
from app.enums import NotificationStatus, NotificationType, ServicePermission
|
||||
from app.formatters import get_time_left, message_count_noun
|
||||
from app.main import main
|
||||
from app.main.forms import SearchNotificationsForm
|
||||
@@ -387,36 +387,37 @@ def get_notifications(service_id, message_type, status_override=None): # noqa
|
||||
|
||||
|
||||
def get_status_filters(service, message_type, statistics):
|
||||
if message_type is None:
|
||||
stats = {
|
||||
key: sum(statistics[message_type][key] for message_type in {"email", "sms"})
|
||||
for key in {
|
||||
"requested",
|
||||
NotificationStatus.DELIVERED,
|
||||
NotificationStatus.FAILED,
|
||||
}
|
||||
}
|
||||
else:
|
||||
stats = statistics[message_type]
|
||||
message_types = (
|
||||
[message_type]
|
||||
if message_type
|
||||
else [NotificationType.EMAIL, NotificationType.SMS]
|
||||
)
|
||||
|
||||
if stats.get("failure") is not None:
|
||||
stats[NotificationStatus.FAILED] = stats["failure"]
|
||||
stats = {
|
||||
NotificationStatus.REQUESTED: sum(
|
||||
statistics[mt].get(NotificationStatus.REQUESTED, 0) for mt in message_types
|
||||
),
|
||||
NotificationStatus.DELIVERED: sum(
|
||||
statistics[mt].get(NotificationStatus.DELIVERED, 0) for mt in message_types
|
||||
),
|
||||
NotificationStatus.FAILED: sum(
|
||||
statistics[mt].get(NotificationStatus.FAILED, 0) for mt in message_types
|
||||
),
|
||||
}
|
||||
|
||||
stats[NotificationStatus.PENDING] = (
|
||||
stats["requested"]
|
||||
stats[NotificationStatus.REQUESTED]
|
||||
- stats[NotificationStatus.DELIVERED]
|
||||
- stats[NotificationStatus.FAILED]
|
||||
)
|
||||
|
||||
filters = [
|
||||
# key, label, option
|
||||
("requested", "total", "sending,delivered,failed"),
|
||||
(NotificationStatus.REQUESTED, "total", "sending,delivered,failed"),
|
||||
(NotificationStatus.PENDING, "pending", "sending,pending"),
|
||||
(NotificationStatus.DELIVERED, "delivered", "delivered"),
|
||||
(NotificationStatus.FAILED, "failed", "failed"),
|
||||
]
|
||||
return [
|
||||
# return list containing label, option, link, count
|
||||
(
|
||||
label,
|
||||
option,
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
from flask import current_app, render_template
|
||||
from flask_login import current_user
|
||||
from flask import render_template
|
||||
|
||||
from app.main import main
|
||||
from app.main.forms import SearchByNameForm
|
||||
@@ -35,18 +34,3 @@ def how_to_pay():
|
||||
"views/pricing/how-to-pay.html",
|
||||
navigation_links=using_notify_nav(),
|
||||
)
|
||||
|
||||
|
||||
@main.route("/pricing/billing-details")
|
||||
@user_is_logged_in
|
||||
def billing_details():
|
||||
if current_user.is_authenticated:
|
||||
return render_template(
|
||||
"views/pricing/billing-details.html",
|
||||
billing_details=current_app.config["NOTIFY_BILLING_DETAILS"],
|
||||
navigation_links=using_notify_nav(),
|
||||
)
|
||||
return render_template(
|
||||
"views/pricing/billing-details-signed-out.html",
|
||||
navigation_links=using_notify_nav(),
|
||||
)
|
||||
|
||||
@@ -149,7 +149,7 @@ def service_switch_live(service_id):
|
||||
@user_is_platform_admin
|
||||
def service_switch_count_as_live(service_id):
|
||||
form = ServiceOnOffSettingForm(
|
||||
name="Count in list of live services",
|
||||
name="Count as live",
|
||||
enabled=current_service.count_as_live,
|
||||
truthy="Yes",
|
||||
falsey="No",
|
||||
|
||||
@@ -190,10 +190,9 @@ def _handle_e2e_tests(redirect_url): # pragma: no cover
|
||||
)
|
||||
|
||||
except Exception as e:
|
||||
stre = str(e)
|
||||
stre = stre.replace(" ", "_")
|
||||
# Trying to get a message back to playwright somehow since we can't raise an error
|
||||
return redirect(url_for(f"https://{stre}"))
|
||||
current_app.logger.error(f"E2E test error: {e}")
|
||||
# Return a simple error page instead of trying to create an invalid URL
|
||||
abort(500)
|
||||
|
||||
|
||||
@main.route("/sign-in", methods=(["GET", "POST"]))
|
||||
|
||||
@@ -263,14 +263,24 @@ def _add_template_by_type(template_type, template_folder_id):
|
||||
)
|
||||
)
|
||||
|
||||
return redirect(
|
||||
url_for(
|
||||
".add_service_template",
|
||||
service_id=current_service.id,
|
||||
template_type=template_type,
|
||||
template_folder_id=template_folder_id,
|
||||
# Use the appropriate route based on whether we're in a folder or not
|
||||
if template_folder_id:
|
||||
return redirect(
|
||||
url_for(
|
||||
".add_service_template",
|
||||
service_id=current_service.id,
|
||||
template_type=template_type,
|
||||
template_folder_id=template_folder_id,
|
||||
)
|
||||
)
|
||||
else:
|
||||
return redirect(
|
||||
url_for(
|
||||
".add_service_template",
|
||||
service_id=current_service.id,
|
||||
template_type=template_type,
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@main.route("/services/<uuid:service_id>/templates/copy")
|
||||
|
||||
Reference in New Issue
Block a user