From ca9b8a8ca35461fcd78f23b8895ed70def34a082 Mon Sep 17 00:00:00 2001 From: Tom Byers Date: Tue, 14 Jul 2020 10:34:53 +0100 Subject: [PATCH] Add analytics error tracking to checkbox fields The existing macros added data attributes to any error message displayed which communicated the error to Google Analytics (if the user had given consent). This re-implements that functionality. --- app/main/forms.py | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/app/main/forms.py b/app/main/forms.py index e34eeda40..c0ffc6e68 100644 --- a/app/main/forms.py +++ b/app/main/forms.py @@ -572,7 +572,14 @@ class govukCheckboxField(govukCheckboxesMixin, BooleanField): # error messages error_message = None if field.errors: - error_message = {"text": " ".join(field.errors).strip()} + error_message = { + "attributes": { + "data-module": "track-error", + "data-error-type": field.errors[0], + "data-error-label": field.name + }, + "text": " ".join(field.errors).strip() + } params = { 'name': field.name, @@ -654,7 +661,14 @@ class govukCheckboxesField(govukCheckboxesMixin, SelectMultipleField): # error messages error_message = None if field.errors: - error_message = {"text": " ".join(field.errors).strip()} + error_message = { + "attributes": { + "data-module": "track-error", + "data-error-type": field.errors[0], + "data-error-label": field.name + }, + "text": " ".join(field.errors).strip() + } # returns either a list or a hierarchy of lists # depending on how get_items_from_options is implemented