From b60e49ef4a7fea50b4e26fdda4aca75824194d03 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Wed, 17 Jul 2024 09:57:25 -0700 Subject: [PATCH 01/13] add github repos to footer --- app/templates/new/components/footer.html | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/app/templates/new/components/footer.html b/app/templates/new/components/footer.html index 45e6525a7..ad3775783 100644 --- a/app/templates/new/components/footer.html +++ b/app/templates/new/components/footer.html @@ -58,6 +58,18 @@ +
+
+ + Notify.gov Admin repo + Notify.gov API repo + +
+
+
From da11e3d9efd3d9239b32f02ffc3747962aa3b63d Mon Sep 17 00:00:00 2001 From: Carlo Costino Date: Tue, 23 Jul 2024 12:14:45 -0400 Subject: [PATCH 02/13] Increased Admin app memory to 4 GB This changeset updates the memory available to the API app and workers to be 4 GB to improve app stability and performance. Signed-off-by: Carlo Costino --- deploy-config/production.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy-config/production.yml b/deploy-config/production.yml index b38094f28..c114a65bf 100644 --- a/deploy-config/production.yml +++ b/deploy-config/production.yml @@ -1,6 +1,6 @@ env: production instances: 2 -memory: 2G +memory: 4G public_admin_route: beta.notify.gov cloud_dot_gov_route: notify.app.cloud.gov redis_enabled: 1 From 43c72d2ebc8a9a7dcf34426d5db4ea695a610211 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl Date: Tue, 23 Jul 2024 11:37:22 -0700 Subject: [PATCH 03/13] Update app/templates/new/components/footer.html Co-authored-by: Carlo Costino --- app/templates/new/components/footer.html | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/templates/new/components/footer.html b/app/templates/new/components/footer.html index ad3775783..ebc8ebbcc 100644 --- a/app/templates/new/components/footer.html +++ b/app/templates/new/components/footer.html @@ -64,8 +64,10 @@ - Notify.gov Admin repo - Notify.gov API repo +
From 42fb5ad3777d9aa3e84101b3f74faf45e1204e82 Mon Sep 17 00:00:00 2001 From: Carlo Costino Date: Wed, 24 Jul 2024 10:48:00 -0400 Subject: [PATCH 04/13] Update Python runtime version for cloud.gov This changeset modifies the Python version specified in the runtime.txt file for cloud.gov. The buildpack was recently updated, and the older version we had pinned is no longer supported. Signed-off-by: Carlo Costino --- runtime.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtime.txt b/runtime.txt index 4ddc7cd66..64f28603a 100644 --- a/runtime.txt +++ b/runtime.txt @@ -1 +1 @@ -python-3.12.3 +python-3.12.x From 08fec7e111c0f73d434cfa12f5588c92fb01676a Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Wed, 24 Jul 2024 07:59:05 -0700 Subject: [PATCH 05/13] add another url for compliance #46 --- app/notify_client/__init__.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/notify_client/__init__.py b/app/notify_client/__init__.py index f78573090..5f65e85c6 100644 --- a/app/notify_client/__init__.py +++ b/app/notify_client/__init__.py @@ -58,6 +58,10 @@ class NotifyAdminAPIClient(BaseAPIClient): def check_inactive_user(self, *args): still_signing_in = False + + # TODO clean up and add testing etc. + # We really should be checking for exact matches + # and we only want to check the first arg for arg in args: arg = str(arg) if ( @@ -66,6 +70,7 @@ class NotifyAdminAPIClient(BaseAPIClient): or "/activate" in arg or "/email-code" in arg or "/verify/code" in arg + or "/user" in arg ): still_signing_in = True From 1036cec1e09c466b4289599a08f47bcc16a704a7 Mon Sep 17 00:00:00 2001 From: Beverly Nguyen Date: Wed, 24 Jul 2024 10:26:37 -0700 Subject: [PATCH 06/13] fixed image --- app/assets/img/phone-text.png | Bin 0 -> 21090 bytes app/templates/views/signedout.html | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 app/assets/img/phone-text.png diff --git a/app/assets/img/phone-text.png b/app/assets/img/phone-text.png new file mode 100644 index 0000000000000000000000000000000000000000..a2318f1eb35ad9ea3f4d14baf4d739e607bbc32a GIT binary patch literal 21090 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 i!$xR>h4ZT#l>L$Currently we are only working with select pilot partners. If you are interested in using Notify.gov in the future, please contact
tts-benefits-studio@gsa.gov to learn more.

From 05611cfab6c0dd722682ac39cfc6dd11bb3ea864 Mon Sep 17 00:00:00 2001 From: Beverly Nguyen Date: Wed, 24 Jul 2024 10:55:51 -0700 Subject: [PATCH 07/13] converted png to svg --- app/assets/images/product/phone-text.svg | 712 +++++++++++++++++++++++ app/assets/img/phone-text.png | Bin 21090 -> 0 bytes app/templates/views/signedout.html | 4 +- 3 files changed, 714 insertions(+), 2 deletions(-) create mode 100644 app/assets/images/product/phone-text.svg delete mode 100644 app/assets/img/phone-text.png diff --git a/app/assets/images/product/phone-text.svg b/app/assets/images/product/phone-text.svg new file mode 100644 index 000000000..0fb85dcb0 --- /dev/null +++ b/app/assets/images/product/phone-text.svg @@ -0,0 +1,712 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/assets/img/phone-text.png b/app/assets/img/phone-text.png deleted file mode 100644 index a2318f1eb35ad9ea3f4d14baf4d739e607bbc32a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21090 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 i!$xR>h4ZT#l>L$Currently we are only working with select pilot partners. If you are interested in using Notify.gov in the future, please contact
tts-benefits-studio@gsa.gov to learn more.

From 6fc428363a5a5fdad6fb379478debdbe4deb2f05 Mon Sep 17 00:00:00 2001 From: alexjanousekGSA Date: Wed, 24 Jul 2024 12:39:04 -0600 Subject: [PATCH 08/13] Added line to allow encoding which prevent png --- gulpfile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gulpfile.js b/gulpfile.js index f80eee6e0..3e7dee06e 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -149,7 +149,7 @@ const images = () => { paths.govuk_frontend + 'assets/images/**/*', paths.src + 'images/**/*', paths.src + 'img/**/*', - ]) + ], {encoding: false}) .pipe(dest(paths.dist + 'images/')) }; From 1f9cccede69dd953bc34fffd3175747396591eb7 Mon Sep 17 00:00:00 2001 From: Carlo Costino Date: Wed, 24 Jul 2024 14:58:15 -0400 Subject: [PATCH 09/13] Revert "fixed image" --- app/assets/images/product/phone-text.svg | 712 ----------------------- app/templates/views/signedout.html | 4 +- 2 files changed, 2 insertions(+), 714 deletions(-) delete mode 100644 app/assets/images/product/phone-text.svg diff --git a/app/assets/images/product/phone-text.svg b/app/assets/images/product/phone-text.svg deleted file mode 100644 index 0fb85dcb0..000000000 --- a/app/assets/images/product/phone-text.svg +++ /dev/null @@ -1,712 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/templates/views/signedout.html b/app/templates/views/signedout.html index bb082700a..fab9fbb30 100644 --- a/app/templates/views/signedout.html +++ b/app/templates/views/signedout.html @@ -28,8 +28,8 @@ Notify.gov

Currently we are only working with select pilot partners. If you are interested in using Notify.gov in the future, please contact
tts-benefits-studio@gsa.gov to learn more.

From 3c30a14c53fdfe9dc98b956f2b4122acf2bb0ebb Mon Sep 17 00:00:00 2001 From: John Skiles Skinner Date: Wed, 24 Jul 2024 12:26:41 -0700 Subject: [PATCH 10/13] Hard-code recursive_delete to false --- terraform/production/main.tf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/terraform/production/main.tf b/terraform/production/main.tf index 771558ce2..c0bcdc556 100644 --- a/terraform/production/main.tf +++ b/terraform/production/main.tf @@ -65,7 +65,7 @@ module "domain" { cf_space_name = local.cf_space_name app_name_or_id = "${local.app_name}-${local.env}" name = "${local.app_name}-domain-${local.env}" - recursive_delete = local.recursive_delete + recursive_delete = false cdn_plan_name = "domain" domain_name = "beta.notify.gov" } From 55f1939fd514f19f27b57cc8bf424f07c71dfd88 Mon Sep 17 00:00:00 2001 From: Kenneth Kehl <@kkehl@flexion.us> Date: Wed, 24 Jul 2024 13:56:32 -0700 Subject: [PATCH 11/13] don't allow commas in placeholder fields --- app/main/forms.py | 7 ++++++- app/main/validators.py | 9 +++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/main/forms.py b/app/main/forms.py index afec80f9f..90a4409fc 100644 --- a/app/main/forms.py +++ b/app/main/forms.py @@ -50,6 +50,7 @@ from app.main.validators import ( CommonlyUsedPassword, CsvFileValidator, DoesNotStartWithDoubleZero, + FieldCannotContainComma, LettersNumbersSingleQuotesFullStopsAndUnderscoresOnly, MustContainAlphanumericCharacters, NoCommasInPlaceHolders, @@ -1650,7 +1651,11 @@ def get_placeholder_form_instance( ) # TODO: replace with us_mobile_number else: field = GovukTextInputField( - placeholder_name, validators=[DataRequired(message="Cannot be empty")] + placeholder_name, + validators=[ + DataRequired(message="Cannot be empty"), + FieldCannotContainComma(), + ], ) PlaceholderForm.placeholder_value = field diff --git a/app/main/validators.py b/app/main/validators.py index 4dd04017b..1dfc97c48 100644 --- a/app/main/validators.py +++ b/app/main/validators.py @@ -161,6 +161,15 @@ class DoesNotStartWithDoubleZero: raise ValidationError(self.message) +class FieldCannotContainComma: + def __init__(self, message="Cannot contain a comma"): + self.message = message + + def __call__(self, form, field): + if field.data and "," in field.data: + raise ValidationError(self.message) + + class MustContainAlphanumericCharacters: regex = re.compile(r".*[a-zA-Z0-9].*[a-zA-Z0-9].*") From 2daaa6dd380d05c7d45c4843494c96fe844dcb81 Mon Sep 17 00:00:00 2001 From: Beverly Nguyen Date: Wed, 24 Jul 2024 15:03:51 -0700 Subject: [PATCH 12/13] Fixed KeyError on processing_finished and removed notification api call --- app/main/views/dashboard.py | 23 +++++--------------- app/templates/views/dashboard/dashboard.html | 14 +++++------- tests/app/main/views/test_dashboard.py | 20 ----------------- 3 files changed, 12 insertions(+), 45 deletions(-) diff --git a/app/main/views/dashboard.py b/app/main/views/dashboard.py index 4c70b85fd..4966c0300 100644 --- a/app/main/views/dashboard.py +++ b/app/main/views/dashboard.py @@ -1,5 +1,4 @@ import calendar -from collections import defaultdict from datetime import datetime from functools import partial from itertools import groupby @@ -13,7 +12,6 @@ from app import ( billing_api_client, current_service, job_api_client, - notification_api_client, service_api_client, socketio, template_statistics_client, @@ -83,18 +81,9 @@ def service_dashboard(service_id): return redirect(url_for("main.choose_template", service_id=service_id)) job_response = job_api_client.get_jobs(service_id)["data"] - notifications_response = notification_api_client.get_notifications_for_service( - service_id - )["notifications"] service_data_retention_days = 7 - aggregate_notifications_by_job = defaultdict(list) - for notification in notifications_response: - job_id = notification.get("job", {}).get("id", None) - if job_id: - aggregate_notifications_by_job[job_id].append(notification) - - job_and_notifications = [ + jobs = [ { "job_id": job["id"], "time_left": get_time_left(job["created_at"]), @@ -105,20 +94,20 @@ def service_dashboard(service_id): ".view_job", service_id=current_service.id, job_id=job["id"] ), "created_at": job["created_at"], - "processing_finished": job["processing_finished"], - "processing_started": job["processing_started"], + "processing_finished": job.get("processing_finished"), + "processing_started": job.get("processing_started"), "notification_count": job["notification_count"], "created_by": job["created_by"], - "notifications": aggregate_notifications_by_job.get(job["id"], []), + "template_name": job["template_name"], + "original_file_name": job["original_file_name"], } for job in job_response - if aggregate_notifications_by_job.get(job["id"], []) ] return render_template( "views/dashboard/dashboard.html", updates_url=url_for(".service_dashboard_updates", service_id=service_id), partials=get_dashboard_partials(service_id), - job_and_notifications=job_and_notifications, + jobs=jobs, service_data_retention_days=service_data_retention_days, ) diff --git a/app/templates/views/dashboard/dashboard.html b/app/templates/views/dashboard/dashboard.html index aba7d2ac6..e8e5ec633 100644 --- a/app/templates/views/dashboard/dashboard.html +++ b/app/templates/views/dashboard/dashboard.html @@ -55,31 +55,30 @@ - {% if job_and_notifications %} - {% for job in job_and_notifications[:5] %} - {% if job.job_id and job.notifications %} + {% if jobs %} + {% for job in jobs[:5] %} {% set notification = job.notifications[0] %} - {{ notification.job.original_file_name[:12] if notification.job.original_file_name else 'Manually entered number'}} + {{ job.original_file_name[:12] if job.original_file_name else 'Manually entered number'}}
View Batch - {{ notification.template.name }} + {{ job.template_name }} {{ (job.processing_finished if job.processing_finished else job.processing_started if job.processing_started else job.created_at)|format_datetime_table }} - {{ notification.created_by.name }} + {{ job.created_by.name }} {{ job.notification_count}} - {% if notification and job.time_left != "Data no longer available" %} + {% if job.time_left != "Data no longer available" %} Download {{ job.time_left }} {% elif job %} @@ -87,7 +86,6 @@ {% endif %} - {% endif %} {% endfor %} {% else %} diff --git a/tests/app/main/views/test_dashboard.py b/tests/app/main/views/test_dashboard.py index d0d48bffc..bccfa27b4 100644 --- a/tests/app/main/views/test_dashboard.py +++ b/tests/app/main/views/test_dashboard.py @@ -305,10 +305,6 @@ def test_inbound_messages_shows_count_of_messages_when_there_are_messages( mock_get_inbound_sms_summary, ): service_one["permissions"] = ["inbound_sms"] - mocker.patch( - "app.notification_api_client.get_notifications_for_service", - return_value=FAKE_ONE_OFF_NOTIFICATION, - ) page = client_request.get( "main.service_dashboard", service_id=SERVICE_ONE_ID, @@ -337,10 +333,6 @@ def test_inbound_messages_shows_count_of_messages_when_there_are_no_messages( mock_get_inbound_sms_summary_with_no_messages, ): service_one["permissions"] = ["inbound_sms"] - mocker.patch( - "app.notification_api_client.get_notifications_for_service", - return_value=FAKE_ONE_OFF_NOTIFICATION, - ) page = client_request.get( "main.service_dashboard", service_id=SERVICE_ONE_ID, @@ -839,10 +831,6 @@ def test_should_not_show_upcoming_jobs_on_dashboard_if_count_is_0( }, ) mocker.patch("app.job_api_client.get_jobs", return_value=MOCK_JOBS) - mocker.patch( - "app.notification_api_client.get_notifications_for_service", - return_value=FAKE_ONE_OFF_NOTIFICATION, - ) page = client_request.get( "main.service_dashboard", service_id=SERVICE_ONE_ID, @@ -919,10 +907,6 @@ def test_correct_font_size_for_big_numbers( mocker.patch("app.main.views.dashboard.get_dashboard_totals", return_value=totals) mocker.patch("app.job_api_client.get_jobs", return_value=MOCK_JOBS) - mocker.patch( - "app.notification_api_client.get_notifications_for_service", - return_value=FAKE_ONE_OFF_NOTIFICATION, - ) page = client_request.get( "main.service_dashboard", service_id=service_one["id"], @@ -952,10 +936,6 @@ def test_should_not_show_jobs_on_dashboard_for_users_with_uploads_page( mock_get_free_sms_fragment_limit, mock_get_inbound_sms_summary, ): - mocker.patch( - "app.notification_api_client.get_notifications_for_service", - return_value=FAKE_ONE_OFF_NOTIFICATION, - ) page = client_request.get( "main.service_dashboard", service_id=SERVICE_ONE_ID, From 37c5f84ee1875c42846df706d9d995e534944ce2 Mon Sep 17 00:00:00 2001 From: Carlo Costino Date: Thu, 25 Jul 2024 11:55:50 -0400 Subject: [PATCH 13/13] Adjust production manifest settings This changeset adjusts our production manifest settings to strike a balance with memory usage and app instances. Signed-off-by: Carlo Costino --- deploy-config/production.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deploy-config/production.yml b/deploy-config/production.yml index c114a65bf..b99c4dd54 100644 --- a/deploy-config/production.yml +++ b/deploy-config/production.yml @@ -1,6 +1,6 @@ env: production instances: 2 -memory: 4G +memory: 1.5G public_admin_route: beta.notify.gov cloud_dot_gov_route: notify.app.cloud.gov redis_enabled: 1