From d5b3b25e1e9553cdd7943ea1057032085f6b5fa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Thu, 20 May 2021 11:34:51 +0200 Subject: [PATCH] Refactor legislation phases date validation rules So now they're easier to change and we make sure the same rules apply to all phases. --- app/models/legislation/process.rb | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/app/models/legislation/process.rb b/app/models/legislation/process.rb index 85bb5fde5..d90b69544 100644 --- a/app/models/legislation/process.rb +++ b/app/models/legislation/process.rb @@ -46,14 +46,15 @@ class Legislation::Process < ApplicationRecord validates_translation :title, presence: true validates :start_date, presence: true validates :end_date, presence: true - validates :debate_start_date, presence: true, if: :debate_end_date? - validates :debate_end_date, presence: true, if: :debate_start_date? - validates :draft_start_date, presence: true, if: :draft_end_date? - validates :draft_end_date, presence: true, if: :draft_start_date? - validates :allegations_start_date, presence: true, if: :allegations_end_date? - validates :allegations_end_date, presence: true, if: :allegations_start_date? - validates :proposals_phase_start_date, presence: true, if: :proposals_phase_end_date? - validates :proposals_phase_end_date, presence: true, if: :proposals_phase_start_date? + + %i[draft debate proposals_phase allegations].each do |phase_name| + start_attribute = :"#{phase_name}_start_date" + end_attribute = :"#{phase_name}_end_date" + + validates start_attribute, presence: true, if: :"#{end_attribute}?" + validates end_attribute, presence: true, if: :"#{start_attribute}?" + end + validate :valid_date_ranges validates :background_color, format: { allow_blank: true, with: CSS_HEX_COLOR } validates :font_color, format: { allow_blank: true, with: CSS_HEX_COLOR }