From 21074da537fe5241bb42d41fcf8ecd8140d2b71e Mon Sep 17 00:00:00 2001 From: Manny Dinssa <44172848+Dinssa@users.noreply.github.com> Date: Fri, 4 Oct 2024 14:19:50 +0100 Subject: [PATCH] Create method to downcase a question, but only the first character, excluding within validate methods --- app/helpers/formatting_helper.rb | 5 +++++ .../bulk_upload/lettings/year2023/row_parser.rb | 12 ++++++++---- .../bulk_upload/lettings/year2024/row_parser.rb | 8 ++++++-- .../bulk_upload/sales/year2023/row_parser.rb | 12 ++++++++---- .../bulk_upload/sales/year2024/row_parser.rb | 8 ++++++-- 5 files changed, 33 insertions(+), 12 deletions(-) diff --git a/app/helpers/formatting_helper.rb b/app/helpers/formatting_helper.rb index 38bdcf303..aff5bae86 100644 --- a/app/helpers/formatting_helper.rb +++ b/app/helpers/formatting_helper.rb @@ -3,4 +3,9 @@ module FormattingHelper return value if value.blank? value.match?(/[[:punct:]]\z/) && !value.match?(/[(){}\[\]]\z/) ? value : "#{value}." end + + def downcase_first_letter(str) + return str if str.blank? + str[0].downcase + str[1..] + end end diff --git a/app/services/bulk_upload/lettings/year2023/row_parser.rb b/app/services/bulk_upload/lettings/year2023/row_parser.rb index ed7bd0a98..987e52a47 100644 --- a/app/services/bulk_upload/lettings/year2023/row_parser.rb +++ b/app/services/bulk_upload/lettings/year2023/row_parser.rb @@ -544,9 +544,9 @@ private fields.each do |field| if setup_question?(question) - errors.add(field, I18n.t("validations.invalid_option", question: ensure_punctuation(QUESTIONS[field])&.downcase), category: :setup) + errors.add(field, I18n.t("validations.invalid_option", question: ensure_punctuation(downcase(QUESTIONS[field]))), category: :setup) else - errors.add(field, I18n.t("validations.invalid_option", question: ensure_punctuation(QUESTIONS[field])&.downcase)) + errors.add(field, I18n.t("validations.invalid_option", question: ensure_punctuation(downcase(QUESTIONS[field])))) end end end @@ -764,14 +764,14 @@ private fields.each do |field| if errors.select { |e| fields.include?(e.attribute) }.none? question_text = question.error_display_label.presence || "this question." - errors.add(field, I18n.t("validations.not_answered", question: question_text.downcase), category: :setup) if field.present? + errors.add(field, I18n.t("validations.not_answered", question: downcase(question_text)), category: :setup) if field.present? end end else fields.each do |field| unless errors.any? { |e| fields.include?(e.attribute) } question_text = question.error_display_label.presence || "this question." - errors.add(field, I18n.t("validations.not_answered", question: question_text.downcase), category: :not_answered) + errors.add(field, I18n.t("validations.not_answered", question: downcase(question_text)), category: :not_answered) end end end @@ -1607,4 +1607,8 @@ private def is_carehome field_127.present? ? 1 : 0 end + + def downcase(str) + downcase_first_letter(str) + end end diff --git a/app/services/bulk_upload/lettings/year2024/row_parser.rb b/app/services/bulk_upload/lettings/year2024/row_parser.rb index efd6b075d..36d60d556 100644 --- a/app/services/bulk_upload/lettings/year2024/row_parser.rb +++ b/app/services/bulk_upload/lettings/year2024/row_parser.rb @@ -568,9 +568,9 @@ private fields.each do |field| if setup_question?(question) - errors.add(field, I18n.t("validations.invalid_option", question: ensure_punctuation(QUESTIONS[field])&.downcase), category: :setup) + errors.add(field, I18n.t("validations.invalid_option", question: ensure_punctuation(downcase(QUESTIONS[field]))), category: :setup) else - errors.add(field, I18n.t("validations.invalid_option", question: ensure_punctuation(QUESTIONS[field])&.downcase)) + errors.add(field, I18n.t("validations.invalid_option", question: ensure_punctuation(downcase(QUESTIONS[field])))) end end end @@ -1642,4 +1642,8 @@ private def bulk_upload_organisation Organisation.find(bulk_upload.organisation_id) end + + def downcase(str) + downcase_first_letter(str) + end end diff --git a/app/services/bulk_upload/sales/year2023/row_parser.rb b/app/services/bulk_upload/sales/year2023/row_parser.rb index 0e0b4b49c..be646d422 100644 --- a/app/services/bulk_upload/sales/year2023/row_parser.rb +++ b/app/services/bulk_upload/sales/year2023/row_parser.rb @@ -1243,13 +1243,13 @@ private if setup_question?(question) fields.each do |field| unless errors.any? { |e| fields.include?(e.attribute) } - errors.add(field, I18n.t("validations.not_answered", question: question.error_display_label&.downcase), category: :setup) + errors.add(field, I18n.t("validations.not_answered", question: downcase(question.error_display_label)), category: :setup) end end else fields.each do |field| unless errors.any? { |e| fields.include?(e.attribute) } - errors.add(field, I18n.t("validations.not_answered", question: question.error_display_label&.downcase), category: :not_answered) + errors.add(field, I18n.t("validations.not_answered", question: downcase(question.error_display_label)), category: :not_answered) end end end @@ -1271,13 +1271,13 @@ private fields.each do |field| if errors[field].none? block_log_creation! - errors.add(field, I18n.t("validations.invalid_option", question: ensure_punctuation(QUESTIONS[field])&.downcase), category: :setup) + errors.add(field, I18n.t("validations.invalid_option", question: ensure_punctuation(downcase(QUESTIONS[field]))), category: :setup) end end else fields.each do |field| unless errors.any? { |e| fields.include?(e.attribute) } - errors.add(field, I18n.t("validations.invalid_option", question: ensure_punctuation(QUESTIONS[field])&.downcase)) + errors.add(field, I18n.t("validations.invalid_option", question: ensure_punctuation(downcase(QUESTIONS[field])))) end end end @@ -1335,4 +1335,8 @@ private errors.add(:field_35, "Buyer 1 cannot be a child under 16.") end end + + def downcase(str) + downcase_first_letter(str) + end end diff --git a/app/services/bulk_upload/sales/year2024/row_parser.rb b/app/services/bulk_upload/sales/year2024/row_parser.rb index f0030d443..8aeb12bd0 100644 --- a/app/services/bulk_upload/sales/year2024/row_parser.rb +++ b/app/services/bulk_upload/sales/year2024/row_parser.rb @@ -1407,13 +1407,13 @@ private fields.each do |field| if errors[field].none? block_log_creation! - errors.add(field, I18n.t("validations.invalid_option", question: ensure_punctuation(QUESTIONS[field])&.downcase), category: :setup) + errors.add(field, I18n.t("validations.invalid_option", question: ensure_punctuation(downcase(QUESTIONS[field]))), category: :setup) end end else fields.each do |field| unless errors.any? { |e| fields.include?(e.attribute) } - errors.add(field, I18n.t("validations.invalid_option", question: ensure_punctuation(QUESTIONS[field])&.downcase)) + errors.add(field, I18n.t("validations.invalid_option", question: ensure_punctuation(downcase(QUESTIONS[field])))) end end end @@ -1509,4 +1509,8 @@ private def bulk_upload_organisation Organisation.find(bulk_upload.organisation_id) end + + def downcase(str) + downcase_first_letter(str) + end end