Add task to set published on existing budgets

Note we're making the validation rule dynamic so it's affected by the
way we stub the constant in the tests to emulate data created in old
applications.

Co-Authored-By: Javi Martín <javim@elretirao.net>
This commit is contained in:
Julian Herrero
2020-02-12 09:19:14 +01:00
committed by Javi Martín
parent 28caabecdf
commit 77aaa5e973
4 changed files with 92 additions and 2 deletions

View File

@@ -10,4 +10,23 @@ namespace :budgets do
Budget.last.email_unselected
end
end
desc "Set published attribute"
task set_published: :environment do
Budget.where(published: nil).each do |budget|
if budget.phase == "drafting"
if budget.phases.enabled.first.present?
next_enabled_phase = budget.phases.enabled.where.not(kind: "drafting").first.kind
else
next_enabled_phase = "informing"
budget.phases.informing.update!(enabled: true)
end
budget.update!(phase: next_enabled_phase)
budget.update!(published: false)
else
budget.update!(published: true)
end
end
end
end

View File

@@ -7,6 +7,7 @@ namespace :consul do
desc "Runs tasks needed to upgrade from 1.2.0 to 1.3.0"
task "execute_release_1.3.0_tasks": [
"db:load_sdg",
"db:calculate_tsv"
"db:calculate_tsv",
"budgets:set_published"
]
end