diff --git a/app/models/budget.rb b/app/models/budget.rb index 19cc85a10..8d65d63e3 100644 --- a/app/models/budget.rb +++ b/app/models/budget.rb @@ -125,6 +125,10 @@ class Budget < ApplicationRecord Budget::Phase::PUBLISHED_PRICES_PHASES.include?(phase) end + def valuating_or_later? + current_phase&.valuating_or_later? + end + def publishing_prices_or_later? current_phase&.publishing_prices_or_later? end diff --git a/app/models/budget/phase.rb b/app/models/budget/phase.rb index cbacefa60..125368ccd 100644 --- a/app/models/budget/phase.rb +++ b/app/models/budget/phase.rb @@ -47,6 +47,10 @@ class Budget end end + def valuating_or_later? + in_phase_or_later?("valuating") + end + def publishing_prices_or_later? in_phase_or_later?("publishing_prices") end diff --git a/spec/models/budget_spec.rb b/spec/models/budget_spec.rb index d5fc6ffc4..87063b549 100644 --- a/spec/models/budget_spec.rb +++ b/spec/models/budget_spec.rb @@ -97,6 +97,23 @@ describe Budget do expect(budget).to be_finished end + describe "#valuating_or_later?" do + it "returns false before valuating" do + budget.phase = "selecting" + expect(budget).not_to be_valuating_or_later + end + + it "returns true while valuating" do + budget.phase = "valuating" + expect(budget).to be_valuating_or_later + end + + it "returns true after valuating" do + budget.phase = "publishing_prices" + expect(budget).to be_valuating_or_later + end + end + describe "#publishing_prices_or_later?" do it "returns false before publishing prices" do budget.phase = "valuating"