From 08f6380aaa38f6e382380e92124aef1068880322 Mon Sep 17 00:00:00 2001 From: Bilal Date: Fri, 3 Jul 2020 18:01:34 +0200 Subject: [PATCH] make question answers required --- app/models/medical_release.rb | 12 ++++++++++++ app/views/public/medical_releases/new.html.erb | 2 +- config/locales/en.yml | 2 ++ config/locales/es.yml | 3 +++ 4 files changed, 18 insertions(+), 1 deletion(-) 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? %>
- <%= form.text_area "question_#{n}_answer", wrapper_class: "col-sm-12", label: @contract_template.public_send("question_#{n}_text") %> + <%= form.text_area "question_#{n}_answer", required: true, wrapper_class: "col-sm-12", label: @contract_template.public_send("question_#{n}_text") %>
<% end %> <% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index 7734d89..ef8b351 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -772,6 +772,8 @@ en: update: notice: The material release has been updated medical_releases: + custom_validation_errors: + question_answer_is_required: answer is required destroy: alert: The medical release has been deleted index: diff --git a/config/locales/es.yml b/config/locales/es.yml index 91e271f..636e5f2 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -282,6 +282,9 @@ es: form: photos: dropzone_label: Tap to take a photo of Licensed Material (optional) (ES) + medical_releases: + custom_validation_errors: + question_answer_is_required: answer is required (ES) public: appearance_releases: create: