mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-19 14:09:20 -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,8 +1,8 @@
|
||||
from flask.templating import Environment as FlaskEnvironment
|
||||
from jinja2 import select_autoescape
|
||||
|
||||
from app.utils.govuk_frontend_jinja.templates import Environment as NunjucksEnvironment
|
||||
from app.utils.govuk_frontend_jinja.templates import (
|
||||
from app.utils.nunjucks_jinja.templates import Environment as NunjucksEnvironment
|
||||
from app.utils.nunjucks_jinja.templates import (
|
||||
NunjucksExtension,
|
||||
NunjucksUndefined,
|
||||
)
|
||||
@@ -12,12 +12,12 @@ class Environment(NunjucksEnvironment, FlaskEnvironment):
|
||||
pass
|
||||
|
||||
|
||||
def init_govuk_frontend(app):
|
||||
"""Use the govuk_frontend_jinja Jinja environment in a Flask app
|
||||
def init_nunjucks_environment(app):
|
||||
"""Use the Nunjucks-compatible Jinja environment in a Flask app
|
||||
|
||||
>>> from flask import Flask
|
||||
>>> app = Flask("cheeseshop_service")
|
||||
>>> init_govuk_frontend(app)
|
||||
>>> app = Flask("notifications_service")
|
||||
>>> init_nunjucks_environment(app)
|
||||
"""
|
||||
app.jinja_environment = Environment
|
||||
app.select_jinja_autoescape = select_autoescape(
|
||||
@@ -41,12 +41,14 @@ def njk_to_j2(template):
|
||||
r"""^([ ]*)([^ '"#\r\n:]+?)\s*:""", r"\1'\2':", template, flags=re.M
|
||||
)
|
||||
|
||||
# govukFieldset can accept a call block argument, however the Jinja
|
||||
# Fieldset macros can accept a call block argument, however the Jinja
|
||||
# compiler does not detect this as the macro body is included from
|
||||
# the template file. A workaround is to patch the declaration of the
|
||||
# macro to include an explicit caller argument.
|
||||
template = template.replace(
|
||||
"macro govukFieldset(params)", "macro govukFieldset(params, caller=none)"
|
||||
template = re.sub(
|
||||
r"macro usaFieldset\(params\)",
|
||||
r"macro usaFieldset(params, caller=none)",
|
||||
template,
|
||||
)
|
||||
|
||||
# Many components feature an attributes field, which is supposed to be
|
||||
@@ -54,8 +56,6 @@ def njk_to_j2(template):
|
||||
# are iterated. In Python, the default iterator for a dict is .keys(), but
|
||||
# we want .items().
|
||||
# This only works because our undefined implements .items()
|
||||
# We've tested this explicitly with: govukInput, govukCheckbox, govukTable,
|
||||
# govukSummaryList
|
||||
template = re.sub(
|
||||
r"for attribute, value in (params|item|cell|action).attributes",
|
||||
r"for attribute, value in \1.attributes.items()",
|
||||
@@ -75,7 +75,7 @@ def njk_to_j2(template):
|
||||
# Change any references to describedBy to be nonlocal.describedBy,
|
||||
# unless describedBy is a dictionary key (i.e. quoted or dotted).
|
||||
template = re.sub(r"""(?<!['".])describedBy""", r"nonlocal.describedBy", template)
|
||||
# govukSummaryList
|
||||
# SummaryList components
|
||||
template = re.sub(
|
||||
r"""^([ ]*)({% set anyRowHasActions = false %})""",
|
||||
r"\1{%- set nonlocal = namespace() -%}\n\1\2",
|
||||
@@ -85,7 +85,7 @@ def njk_to_j2(template):
|
||||
template = re.sub(
|
||||
r"""(?<!['".])anyRowHasActions""", r"nonlocal.anyRowHasActions", template
|
||||
)
|
||||
# govukRadios and govukCheckboxes
|
||||
# Radios and Checkboxes components
|
||||
# Since both of these templates set describedBy before isConditional, we can use
|
||||
# the existing nonlocal.
|
||||
template = re.sub(
|
||||
@@ -23,7 +23,7 @@ def get_template(
|
||||
return EmailPreviewTemplate(
|
||||
template,
|
||||
from_name=service.name,
|
||||
from_address="{}@notifications.service.gov.uk".format(service.email_from),
|
||||
from_address="{}@notifications.example.gov".format(service.email_from),
|
||||
show_recipient=show_recipient,
|
||||
redact_missing_personalisation=redact_missing_personalisation,
|
||||
reply_to=email_reply_to,
|
||||
|
||||
Reference in New Issue
Block a user