diff --git a/app/models/medical_release.rb b/app/models/medical_release.rb index 62f08b9..fdf83b6 100644 --- a/app/models/medical_release.rb +++ b/app/models/medical_release.rb @@ -32,6 +32,7 @@ class MedicalRelease < ApplicationRecord # These validations apply to all releases validates :person_first_name, :person_last_name, presence: true validates :person_email, email: true, allow_blank: true + validate :valid_answers acts_as_taggable_on :internal_tags, :tags @@ -76,4 +77,15 @@ class MedicalRelease < ApplicationRecord def contract_file_name "#{project.name.parameterize}_#{contract_template.release_type}_#{(signed_at || created_at).strftime("%Y.%m.%d")}_#{release_number}_#{filename_suffix.parameterize}" end + + private + + def valid_answers + (1..ContractTemplate::NUMBER_OF_CUSTOM_FIELDS).each do |index| + if contract_template["question_#{index}_text"].present? && + public_send("question_#{index}_answer").blank? + errors.add("question_#{index}", I18n.t('medical_releases.custom_validation_errors.question_answer_is_required')) + end + end + end end diff --git a/app/views/public/medical_releases/new.html.erb b/app/views/public/medical_releases/new.html.erb index 7f4dd2f..0ae2d9d 100644 --- a/app/views/public/medical_releases/new.html.erb +++ b/app/views/public/medical_releases/new.html.erb @@ -30,7 +30,7 @@ <% (1..MedicalRelease::NUMBER_OF_CUSTOM_FIELDS).each do |n| %> <% if @contract_template.public_send("question_#{n}_text").present? %>