diff --git a/app/main/forms.py b/app/main/forms.py index eeb90fe0f..5b0f74f4d 100644 --- a/app/main/forms.py +++ b/app/main/forms.py @@ -47,6 +47,7 @@ from app.main.validators import ( MustContainAlphanumericCharacters, NoCommasInPlaceHolders, NoEmbeddedImagesInSVG, + NoPlaceholders, OnlySMSCharacters, ValidEmail, ValidGovEmail, @@ -1217,6 +1218,7 @@ class SMSTemplateForm(BaseTemplateForm): class BroadcastTemplateForm(SMSTemplateForm): def validate_template_content(self, field): OnlySMSCharacters(template_type='broadcast')(None, field) + NoPlaceholders()(None, field) class LetterAddressForm(StripWhitespaceForm): diff --git a/app/main/validators.py b/app/main/validators.py index 9434c39c4..104b4a932 100644 --- a/app/main/validators.py +++ b/app/main/validators.py @@ -108,6 +108,18 @@ class OnlySMSCharacters: ) +class NoPlaceholders: + + def __init__(self, message=None): + self.message = message or ( + 'You can’t use ((double brackets)) to personalise this message' + ) + + def __call__(self, form, field): + if Field(field.data).placeholders: + raise ValidationError(self.message) + + class LettersNumbersFullStopsAndUnderscoresOnly: regex = re.compile(r'^[a-zA-Z0-9\s\._]+$') diff --git a/app/templates/views/edit-broadcast-template.html b/app/templates/views/edit-broadcast-template.html index cb753d478..8c5d7cfe9 100644 --- a/app/templates/views/edit-broadcast-template.html +++ b/app/templates/views/edit-broadcast-template.html @@ -24,7 +24,7 @@ }) }}