From 50d6298848e2cb1082c023db4b006e4dc471b4d5 Mon Sep 17 00:00:00 2001 From: gchi25 Date: Tue, 20 Feb 2024 12:57:19 -0500 Subject: [PATCH 1/4] 910 validate date in acceptable value --- .../usagov_benefit_finder_content.module | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module b/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module index f23263c5f..90219b92e 100644 --- a/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module +++ b/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module @@ -88,6 +88,33 @@ function usagov_benefit_finder_content_node_bears_benefit_edit_form_validate(arr foreach ($acceptable_values as $value) { if (!empty($value) && !in_array($value, $criteria_values)) { $errors[] = t("Criteria \"$criteria_title\" acceptable value \"$value\" is not an option value."); + $errors[] = t("--- Acceptable values from \"$criteria_title\" are: " . implode(', ', $criteria_values)); + } + } + } + + if (in_array($criteria_type, ['Date'])) { + foreach ($acceptable_values as $value) { + if (!empty($value)) { + if (strpos($value, ' ') !== false) { + $errors[] = t("Criteria \"$criteria_title\" acceptable value \"$value\" cannot contain space."); + continue; + } + $pattern = '/^(=|>|<|>=|<=)(\d{2}-\d{2}-\d{4}|years)$/'; + if (preg_match($pattern, $value, $matches) === 1) { + $secondPart = $matches[2]; + if (preg_match('/^\d{2}-\d{2}-\d{4}$/', $secondPart, $matches) === 1) { + $dateTime = DateTime::createFromFormat('m-d-Y', $secondPart); + if (!($dateTime && $dateTime->format('m-d-Y') === $secondPart)) { + $errors[] = t("Criteria \"$criteria_title\" acceptable value \"$value\" date \"$secondPart\" is incorrect."); + $errors[] = t("--- Format: MM-DD-YYYY"); + } + } + } + else { + $errors[] = t("Criteria \"$criteria_title\" acceptable value \"$value\" is not in correct format."); + $errors[] = t("--- First part: >|<|=|>=|<= Second part: MM-DD-YYYY | years"); + } } } } From 63d810803ec06381d12ad965c3f2579bc5096498 Mon Sep 17 00:00:00 2001 From: gchi25 Date: Tue, 20 Feb 2024 13:11:36 -0500 Subject: [PATCH 2/4] 910 update years validation --- .../usagov_benefit_finder_content.module | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module b/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module index 90219b92e..762cb7314 100644 --- a/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module +++ b/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module @@ -100,7 +100,7 @@ function usagov_benefit_finder_content_node_bears_benefit_edit_form_validate(arr $errors[] = t("Criteria \"$criteria_title\" acceptable value \"$value\" cannot contain space."); continue; } - $pattern = '/^(=|>|<|>=|<=)(\d{2}-\d{2}-\d{4}|years)$/'; + $pattern = '/^(=|>|<|>=|<=)(\d{2}-\d{2}-\d{4}|\d{1,2}years)$/'; if (preg_match($pattern, $value, $matches) === 1) { $secondPart = $matches[2]; if (preg_match('/^\d{2}-\d{2}-\d{4}$/', $secondPart, $matches) === 1) { @@ -113,7 +113,7 @@ function usagov_benefit_finder_content_node_bears_benefit_edit_form_validate(arr } else { $errors[] = t("Criteria \"$criteria_title\" acceptable value \"$value\" is not in correct format."); - $errors[] = t("--- First part: >|<|=|>=|<= Second part: MM-DD-YYYY | years"); + $errors[] = t("--- First part: >, <, =, >= or <= Second part: MM-DD-YYYY or (d or dd)years"); } } } From fe22a8acbd9037aad00b26932e170e2637941dde Mon Sep 17 00:00:00 2001 From: gchi25 Date: Tue, 20 Feb 2024 19:22:12 -0500 Subject: [PATCH 3/4] 910 some updates --- .../usagov_benefit_finder_content.module | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module b/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module index 762cb7314..bf5f60515 100644 --- a/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module +++ b/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module @@ -96,7 +96,7 @@ function usagov_benefit_finder_content_node_bears_benefit_edit_form_validate(arr if (in_array($criteria_type, ['Date'])) { foreach ($acceptable_values as $value) { if (!empty($value)) { - if (strpos($value, ' ') !== false) { + if (strpos($value, ' ') !== FALSE) { $errors[] = t("Criteria \"$criteria_title\" acceptable value \"$value\" cannot contain space."); continue; } @@ -106,13 +106,13 @@ function usagov_benefit_finder_content_node_bears_benefit_edit_form_validate(arr if (preg_match('/^\d{2}-\d{2}-\d{4}$/', $secondPart, $matches) === 1) { $dateTime = DateTime::createFromFormat('m-d-Y', $secondPart); if (!($dateTime && $dateTime->format('m-d-Y') === $secondPart)) { - $errors[] = t("Criteria \"$criteria_title\" acceptable value \"$value\" date \"$secondPart\" is incorrect."); + $errors[] = t("Criteria \"$criteria_title\" acceptable value \"$value\" date \"$secondPart\" is invalid."); $errors[] = t("--- Format: MM-DD-YYYY"); } } } else { - $errors[] = t("Criteria \"$criteria_title\" acceptable value \"$value\" is not in correct format."); + $errors[] = t("Criteria \"$criteria_title\" acceptable value \"$value\" is incorrect."); $errors[] = t("--- First part: >, <, =, >= or <= Second part: MM-DD-YYYY or (d or dd)years"); } } From fbf64b27ab73339c69192009cb6be2316be4b055 Mon Sep 17 00:00:00 2001 From: Gene Chi <88853916+gchi25@users.noreply.github.com> Date: Wed, 21 Feb 2024 13:57:58 -0500 Subject: [PATCH 4/4] Update usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module Co-authored-by: Scott Queen --- .../usagov_benefit_finder_content.module | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module b/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module index bf5f60515..d8614b620 100644 --- a/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module +++ b/usagov_benefit_finder/modules/usagov_benefit_finder_content/usagov_benefit_finder_content.module @@ -113,7 +113,9 @@ function usagov_benefit_finder_content_node_bears_benefit_edit_form_validate(arr } else { $errors[] = t("Criteria \"$criteria_title\" acceptable value \"$value\" is incorrect."); - $errors[] = t("--- First part: >, <, =, >= or <= Second part: MM-DD-YYYY or (d or dd)years"); + $errors[] = t("---The prefix must include only one of the following comparison operators: '>', '<', '=', '>=', or '<='. + +--- The suffix must be formatted as either 'MM-DD-YYYY' or '(d or dd)years'."); } } }