Remove tasks to upgrade to version 1.3.0

These tasks are not needed for new installations, and in existing
installations they've already been executed when upgrading to version
1.3.0.
This commit is contained in:
Javi Martín
2021-08-27 14:05:29 +02:00
parent 0cdddc3647
commit 1b2256e084
5 changed files with 0 additions and 306 deletions

View File

@@ -10,59 +10,4 @@ namespace :budgets do
Budget.last.email_unselected Budget.last.email_unselected
end end
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
desc "Copies the Budget::Phase summary into description"
task phases_summary_to_description: :environment do
ApplicationLogger.new.info "Adding budget phases summary to descriptions"
Budget::Phase::Translation.find_each do |translation|
if translation.summary.present?
translation.description << "<br>"
translation.description << translation.summary
translation.update!(summary: nil) if translation.save
end
end
end
desc "Add name to existing budget phases"
task add_name_to_existing_phases: :environment do
ApplicationLogger.new.info "Adding names to budgets phases"
Budget::Phase.find_each do |phase|
if phase.translations.present?
phase.translations.each do |translation|
unless translation.name.present?
if I18n.available_locales.include? translation.locale
locale = translation.locale
else
locale = I18n.default_locale
end
translation.update!(name: I18n.t("budgets.phase.#{phase.kind}", locale: locale))
end
end
else
phase.translations.create!(name: I18n.t("budgets.phase.#{phase.kind}"), locale: I18n.default_locale)
end
end
end
end end

View File

@@ -8,13 +8,4 @@ namespace :consul do
task "execute_release_1.4.0_tasks": [ task "execute_release_1.4.0_tasks": [
"active_storage:migrate_from_paperclip" "active_storage:migrate_from_paperclip"
] ]
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",
"budgets:set_published",
"budgets:phases_summary_to_description",
"budgets:add_name_to_existing_phases"
]
end end

View File

@@ -4,17 +4,4 @@ namespace :db do
@avoid_log = args[:print_log] == "avoid_log" @avoid_log = args[:print_log] == "avoid_log"
load(Rails.root.join("db", "dev_seeds.rb")) load(Rails.root.join("db", "dev_seeds.rb"))
end end
desc "Load SDG content into database"
task load_sdg: :environment do
ApplicationLogger.new.info "Adding Sustainable Development Goals content"
load(Rails.root.join("db", "sdg.rb"))
WebSection.where(name: "sdg").first_or_create!
end
desc "Calculates the TSV column for all polls and legislation processes"
task calculate_tsv: :environment do
Poll.find_each(&:calculate_tsvector)
Legislation::Process.find_each(&:calculate_tsvector)
end
end end

View File

@@ -1,159 +0,0 @@
require "rails_helper"
describe "budget tasks" do
describe "set_published" do
let(:run_rake_task) do
Rake::Task["budgets:set_published"].reenable
Rake.application.invoke_task("budgets:set_published")
end
it "does not change anything if the published attribute is set" do
budget = create(:budget, published: false, phase: "accepting")
run_rake_task
budget.reload
expect(budget.phase).to eq "accepting"
expect(budget.published).to be false
end
it "publishes budgets which are not in draft mode" do
budget = create(:budget, published: nil, phase: "accepting")
run_rake_task
budget.reload
expect(budget.phase).to eq "accepting"
expect(budget.published).to be true
end
it "changes the published attribute to false on drafting budgets" do
stub_const("Budget::Phase::PHASE_KINDS", ["drafting"] + Budget::Phase::PHASE_KINDS)
budget = create(:budget, published: nil)
budget.update_column(:phase, "drafting")
stub_const("Budget::Phase::PHASE_KINDS", Budget::Phase::PHASE_KINDS - ["drafting"])
run_rake_task
budget.reload
expect(budget.published).to be false
expect(budget.phase).to eq "informing"
end
it "changes the phase to the first enabled phase" do
budget = create(:budget, published: nil)
budget.update_column(:phase, "drafting")
budget.phases.informing.update!(enabled: false)
expect(budget.phase).to eq "drafting"
run_rake_task
budget.reload
expect(budget.phase).to eq "accepting"
expect(budget.published).to be false
end
it "enables and select the informing phase if there are not any enabled phases" do
budget = create(:budget, published: nil)
budget.update_column(:phase, "drafting")
budget.phases.each { |phase| phase.update!(enabled: false) }
expect(budget.phase).to eq "drafting"
run_rake_task
budget.reload
expect(budget.phase).to eq "informing"
expect(budget.phases.informing.enabled).to be true
expect(budget.published).to be false
end
end
describe "phases_summary_to_description" do
let(:run_rake_task) do
Rake::Task["budgets:phases_summary_to_description"].reenable
Rake.application.invoke_task("budgets:phases_summary_to_description")
end
it "appends the content of summary to the content of description" do
budget = create(:budget)
budget_phase = budget.phases.informing
budget_phase.update!(
description_en: "English description",
description_es: "Spanish description",
description_fr: "French description",
name_es: "Spanish name",
name_fr: "French name",
summary_en: "English summary",
summary_fr: "French summary"
)
run_rake_task
budget_phase.reload
expect(budget_phase.description_en).to eq "English description<br>English summary"
expect(budget_phase.description_es).to eq "Spanish description"
expect(budget_phase.description_fr).to eq "French description<br>French summary"
expect(budget_phase.summary).to be nil
end
end
describe "add_name_to_existing_phases" do
let(:run_rake_task) do
Rake::Task["budgets:add_name_to_existing_phases"].reenable
Rake.application.invoke_task("budgets:add_name_to_existing_phases")
end
it "adds the name to existing budget phases" do
budget = create(:budget)
informing_phase = budget.phases.informing
accepting_phase = budget.phases.accepting
accepting_phase.update!(name_en: "Custom accepting", name_es: "Aceptando personalizado")
informing_phase.translations.create!(locale: :es, name: "temp")
informing_phase.translations.update_all(name: "")
expect(informing_phase.name_en).to eq ""
expect(informing_phase.name_es).to eq ""
expect(informing_phase.name_fr).to be nil
expect(accepting_phase.name_en).to eq "Custom accepting"
expect(accepting_phase.name_es).to eq "Aceptando personalizado"
expect(accepting_phase.name_fr).to be nil
run_rake_task
expect(informing_phase.reload.name_en).to eq "Information"
expect(informing_phase.reload.name_es).to eq "Información"
expect(informing_phase.reload.name_fr).to be nil
expect(accepting_phase.reload.name_en).to eq "Custom accepting"
expect(accepting_phase.reload.name_es).to eq "Aceptando personalizado"
expect(accepting_phase.reload.name_fr).to be nil
end
it "adds the name in default locale to existing translations no longer available" do
budget = create(:budget)
informing_phase = budget.phases.informing
obsolete_translation = informing_phase.translations.build(locale: :fiction)
obsolete_translation.save!(validate: false)
expect(obsolete_translation.reload.name).to be nil
run_rake_task
expect(obsolete_translation.reload.name).to eq "Information"
end
it "adds a default translation to phases with no translations" do
budget = create(:budget)
informing_phase = budget.phases.informing
informing_phase.translations.destroy_all
expect(informing_phase.reload.name).to be nil
run_rake_task
expect(informing_phase.reload.name).to eq "Information"
end
end
end

View File

@@ -1,70 +0,0 @@
require "rails_helper"
describe "rake db:load_sdg" do
before { Rake::Task["db:load_sdg"].reenable }
let :run_rake_task do
Rake.application.invoke_task("db:load_sdg")
end
it "populates empty databases and assigns targets correctly" do
SDG::Goal.destroy_all
SDG::Phase.destroy_all
run_rake_task
expect(SDG::Goal.count).to eq 17
expect(SDG::Target.count).to eq 169
expect(SDG::Target["17.1"].goal.code).to eq 17
expect(SDG::Phase.count).to eq 3
end
it "does not create additional records on populated databases" do
expect(SDG::Goal.count).to eq 17
expect(SDG::Target.count).to eq 169
expect(SDG::Phase.count).to eq 3
goal_id = SDG::Goal.last.id
target_id = SDG::Target.last.id
phase_id = SDG::Phase.last.id
run_rake_task
expect(SDG::Goal.count).to eq 17
expect(SDG::Target.count).to eq 169
expect(SDG::Phase.count).to eq 3
expect(SDG::Goal.last.id).to eq goal_id
expect(SDG::Target.last.id).to eq target_id
expect(SDG::Phase.last.id).to eq phase_id
end
end
describe "rake db:calculate_tsv" do
before { Rake::Task["db:calculate_tsv"].reenable }
let :run_rake_task do
Rake.application.invoke_task("db:calculate_tsv")
end
it "calculates the tsvector for polls" do
poll = create(:poll)
poll.update_column(:tsv, nil)
expect(poll.reload.tsv).to be nil
run_rake_task
expect(poll.reload.tsv).not_to be nil
end
it "calculates the tsvector for legislation processes" do
process = create(:legislation_process)
process.update_column(:tsv, nil)
expect(process.reload.tsv).to be nil
run_rake_task
expect(process.reload.tsv).not_to be nil
end
end