Files
grecia/lib/tasks/budgets.rake
Julian Herrero 77aaa5e973 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>
2021-02-23 17:05:24 +01:00

33 lines
921 B
Ruby

namespace :budgets do
namespace :email do
desc "Sends emails to authors of selected investments"
task selected: :environment do
Budget.last.email_selected
end
desc "Sends emails to authors of unselected investments"
task unselected: :environment 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