Browse Source

Update full stops in validate methods and add ensure_punctuation method

pull/2674/head
Manny Dinssa 2 years ago
parent
commit
6f1f68b64f
  1. 6
      app/helpers/formatting_helper.rb
  2. 4
      app/models/form/question.rb
  3. 9
      app/services/bulk_upload/lettings/year2023/row_parser.rb
  4. 7
      app/services/bulk_upload/lettings/year2024/row_parser.rb
  5. 5
      app/services/bulk_upload/sales/year2023/row_parser.rb
  6. 5
      app/services/bulk_upload/sales/year2024/row_parser.rb

6
app/helpers/formatting_helper.rb

@ -0,0 +1,6 @@
module FormattingHelper
def ensure_punctuation(value)
return value if value.blank?
value.match?(/[[:punct:]]\z/) && !value.match?(/[(){}\[\]]\z/) ? value : "#{value}."
end
end

4
app/models/form/question.rb

@ -1,4 +1,6 @@
class Form::Question
include FormattingHelper
attr_accessor :id, :header, :hint_text, :description, :questions, :disable_clearing_if_not_routed_or_dynamic_answer_options,
:type, :min, :max, :step, :width, :fields_to_add, :result_field,
:conditional_for, :readonly, :answer_options, :page, :check_answer_label,
@ -205,7 +207,7 @@ class Form::Question
def error_display_label
label = error_label || check_answer_label || header || id.humanize
label.match?(/[[:punct:]]\z/) && !label.match?(/[(){}\[\]]\z/) ? label : "#{label}."
ensure_punctuation(label)
end
def unanswered_error_message

9
app/services/bulk_upload/lettings/year2023/row_parser.rb

@ -2,6 +2,7 @@ class BulkUpload::Lettings::Year2023::RowParser
include ActiveModel::Model
include ActiveModel::Attributes
include InterruptionScreenHelper
include FormattingHelper
QUESTIONS = {
field_1: "Which organisation owns this property?",
@ -289,7 +290,7 @@ class BulkUpload::Lettings::Year2023::RowParser
},
inclusion: {
in: (1..12).to_a,
message: I18n.t("validations.invalid_option", question: "letting type"),
message: I18n.t("validations.invalid_option", question: "letting type."),
unless: -> { field_5.blank? },
category: :setup,
},
@ -543,9 +544,9 @@ private
fields.each do |field|
if setup_question?(question)
errors.add(field, I18n.t("validations.invalid_option", question: QUESTIONS[field]), category: :setup)
errors.add(field, I18n.t("validations.invalid_option", question: ensure_punctuation(QUESTIONS[field])&.downcase), category: :setup)
else
errors.add(field, I18n.t("validations.invalid_option", question: QUESTIONS[field]))
errors.add(field, I18n.t("validations.invalid_option", question: ensure_punctuation(QUESTIONS[field])&.downcase))
end
end
end
@ -746,7 +747,7 @@ private
def validate_data_types
unless attribute_set["field_5"].value_before_type_cast&.match?(/^\d+\.?0*$/)
errors.add(:field_5, I18n.t("validations.invalid_number", question: "letting type"))
errors.add(:field_5, I18n.t("validations.invalid_number", question: "letting type."))
end
end

7
app/services/bulk_upload/lettings/year2024/row_parser.rb

@ -2,6 +2,7 @@ class BulkUpload::Lettings::Year2024::RowParser
include ActiveModel::Model
include ActiveModel::Attributes
include InterruptionScreenHelper
include FormattingHelper
QUESTIONS = {
field_1: "Which organisation owns this property?",
@ -567,9 +568,9 @@ private
fields.each do |field|
if setup_question?(question)
errors.add(field, I18n.t("validations.invalid_option", question: QUESTIONS[field]), category: :setup)
errors.add(field, I18n.t("validations.invalid_option", question: ensure_punctuation(QUESTIONS[field])&.downcase), category: :setup)
else
errors.add(field, I18n.t("validations.invalid_option", question: QUESTIONS[field]))
errors.add(field, I18n.t("validations.invalid_option", question: ensure_punctuation(QUESTIONS[field])&.downcase))
end
end
end
@ -800,7 +801,7 @@ private
def validate_data_types
unless attribute_set["field_11"].value_before_type_cast&.match?(/^\d+\.?0*$/)
errors.add(:field_11, I18n.t("validations.invalid_number", question: "rent type"))
errors.add(:field_11, I18n.t("validations.invalid_number", question: "rent type."))
end
end

5
app/services/bulk_upload/sales/year2023/row_parser.rb

@ -2,6 +2,7 @@ class BulkUpload::Sales::Year2023::RowParser
include ActiveModel::Model
include ActiveModel::Attributes
include InterruptionScreenHelper
include FormattingHelper
QUESTIONS = {
field_1: "Which organisation owned this property before the sale?",
@ -1270,13 +1271,13 @@ private
fields.each do |field|
if errors[field].none?
block_log_creation!
errors.add(field, I18n.t("validations.invalid_option", question: QUESTIONS[field]), category: :setup)
errors.add(field, I18n.t("validations.invalid_option", question: ensure_punctuation(QUESTIONS[field])&.downcase), 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: QUESTIONS[field]))
errors.add(field, I18n.t("validations.invalid_option", question: ensure_punctuation(QUESTIONS[field])&.downcase))
end
end
end

5
app/services/bulk_upload/sales/year2024/row_parser.rb

@ -2,6 +2,7 @@ class BulkUpload::Sales::Year2024::RowParser
include ActiveModel::Model
include ActiveModel::Attributes
include InterruptionScreenHelper
include FormattingHelper
QUESTIONS = {
field_1: "Which organisation owned this property before the sale?",
@ -1406,13 +1407,13 @@ private
fields.each do |field|
if errors[field].none?
block_log_creation!
errors.add(field, I18n.t("validations.invalid_option", question: QUESTIONS[field]), category: :setup)
errors.add(field, I18n.t("validations.invalid_option", question: ensure_punctuation(QUESTIONS[field])&.downcase), 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: QUESTIONS[field]))
errors.add(field, I18n.t("validations.invalid_option", question: ensure_punctuation(QUESTIONS[field])&.downcase))
end
end
end

Loading…
Cancel
Save