Merge pull request #3751 from consul/prepare_1.1_tasks
Remove tasks executed in version 1.0.0
This commit is contained in:
@@ -1,29 +0,0 @@
|
||||
class Migrations::Reports
|
||||
def migrate
|
||||
migrate_polls
|
||||
migrate_budgets
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def migrate_polls
|
||||
Poll.find_each do |poll|
|
||||
next unless poll.report.new_record?
|
||||
|
||||
poll.report.update!(
|
||||
results: poll.read_attribute(:results_enabled),
|
||||
stats: poll.read_attribute(:stats_enabled),
|
||||
advanced_stats: poll.read_attribute(:stats_enabled),
|
||||
)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
def migrate_budgets
|
||||
Budget.find_each do |budget|
|
||||
next unless budget.report.new_record?
|
||||
|
||||
budget.report.update!(results: true, stats: true, advanced_stats: true)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1,14 +1,4 @@
|
||||
namespace :budgets do
|
||||
desc "Regenerate ballot_lines_count cache"
|
||||
task calculate_ballot_lines: :environment do
|
||||
ApplicationLogger.new.info "Calculating ballot lines"
|
||||
|
||||
Budget::Ballot.find_each.with_index do |ballot, index|
|
||||
Budget::Ballot.reset_counters ballot.id, :lines
|
||||
print "." if (index % 10_000).zero?
|
||||
end
|
||||
end
|
||||
|
||||
namespace :email do
|
||||
|
||||
desc "Sends emails to authors of selected investments"
|
||||
@@ -25,12 +15,13 @@ namespace :budgets do
|
||||
|
||||
desc "Update investments original_heading_id with current heading_id"
|
||||
task set_original_heading_id: :environment do
|
||||
puts "Starting"
|
||||
ApplicationLogger.new.info "Setting original_heading_id to investments"
|
||||
Budget::Investment.find_each do |investment|
|
||||
investment.update_column(:original_heading_id, investment.heading_id)
|
||||
unless investment.original_heading_id.present?
|
||||
investment.update_column(:original_heading_id, investment.heading_id)
|
||||
end
|
||||
print "."
|
||||
end
|
||||
puts "Finished"
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -1,15 +1,9 @@
|
||||
namespace :consul do
|
||||
desc "Runs tasks needed to upgrade to the latest version"
|
||||
task execute_release_tasks: "execute_release_1.0.0_tasks"
|
||||
task execute_release_tasks: ["settings:add_new_settings", "execute_release_1.1.0_tasks"]
|
||||
|
||||
desc "Runs tasks needed to upgrade from 1.0.0-beta to 1.0.0"
|
||||
task "execute_release_1.0.0_tasks": [
|
||||
"poll:generate_slugs",
|
||||
"stats_and_results:migrate_to_reports",
|
||||
"budgets:calculate_ballot_lines",
|
||||
"settings:remove_deprecated_settings",
|
||||
"settings:rename_setting_keys",
|
||||
"settings:add_new_settings",
|
||||
"stats:generate"
|
||||
desc "Runs tasks needed to upgrade from 1.0.0 to 1.1.0"
|
||||
task "execute_release_1.1.0_tasks": [
|
||||
"budgets:set_original_heading_id"
|
||||
]
|
||||
end
|
||||
|
||||
@@ -4,9 +4,4 @@ namespace :db do
|
||||
@avoid_log = args[:print_log] == "avoid_log"
|
||||
load(Rails.root.join("db", "dev_seeds.rb"))
|
||||
end
|
||||
|
||||
desc "populate the default pages manually"
|
||||
task pages: :environment do
|
||||
load(Rails.root.join("db", "pages.rb"))
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
namespace :legislation_proposals do
|
||||
desc "Calculate cached votes score for existing legislation proposals"
|
||||
task calculate_cached_votes_score: :environment do
|
||||
Legislation::Proposal.find_each do |p|
|
||||
p.update_column(:cached_votes_score, p.cached_votes_up - p.cached_votes_down)
|
||||
print "."
|
||||
end
|
||||
puts "\nTask finished 🎉"
|
||||
end
|
||||
end
|
||||
@@ -1,10 +0,0 @@
|
||||
namespace :poll do
|
||||
desc "Generate slugs polls"
|
||||
task generate_slugs: :environment do
|
||||
ApplicationLogger.new.info "Generating poll slugs"
|
||||
|
||||
Poll.find_each do |poll|
|
||||
poll.update_columns(slug: poll.generate_slug, updated_at: Time.current) if poll.generate_slug?
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -12,29 +12,6 @@ namespace :proposal_actions do
|
||||
end
|
||||
end
|
||||
|
||||
desc "Initialize proposal settings"
|
||||
task initialize_settings: :environment do
|
||||
%w[
|
||||
proposals.successful_proposal_id
|
||||
proposals.poll_short_title
|
||||
proposals.poll_description
|
||||
proposals.poll_link
|
||||
proposals.email_short_title
|
||||
proposals.email_description
|
||||
proposals.poster_short_title
|
||||
proposals.poster_description
|
||||
].each do |key|
|
||||
Setting[key] = nil if Setting.find_by(key: key).nil?
|
||||
end
|
||||
end
|
||||
|
||||
desc "Publish all proposals"
|
||||
task publish_all: :environment do
|
||||
Proposal.draft.find_each do |proposal|
|
||||
proposal.update_columns(published_at: proposal.created_at, updated_at: Time.current)
|
||||
end
|
||||
end
|
||||
|
||||
desc "Simulate successful proposal"
|
||||
task create_successful_proposal: :environment do
|
||||
expected_supports = [
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
namespace :proposals do
|
||||
|
||||
desc "Move external_url to description"
|
||||
task move_external_url_to_description: :environment do
|
||||
include ActionView::Helpers::SanitizeHelper
|
||||
include TextWithLinksHelper
|
||||
|
||||
models = [Proposal, Legislation::Proposal]
|
||||
|
||||
models.each do |model|
|
||||
print "Move external_url to description for #{model}s"
|
||||
model.find_each do |resource|
|
||||
if resource.external_url.present?
|
||||
Globalize.with_locale(I18n.default_locale) do
|
||||
new_description = "#{resource.description} <p>#{sanitize_and_auto_link(resource.external_url)}</p>"
|
||||
resource.description = new_description
|
||||
resource.external_url = ""
|
||||
resource.updated_at = Time.current
|
||||
resource.save(validate: false)
|
||||
print "."
|
||||
end
|
||||
end
|
||||
end
|
||||
puts " ✅ "
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -1,58 +1,7 @@
|
||||
namespace :settings do
|
||||
|
||||
desc "Remove deprecated settings"
|
||||
task remove_deprecated_settings: :environment do
|
||||
ApplicationLogger.new.info "Removing deprecated settings"
|
||||
|
||||
deprecated_keys = [
|
||||
"place_name",
|
||||
"banner-style.banner-style-one",
|
||||
"banner-style.banner-style-two",
|
||||
"banner-style.banner-style-three",
|
||||
"banner-img.banner-img-one",
|
||||
"banner-img.banner-img-two",
|
||||
"banner-img.banner-img-three",
|
||||
"verification_offices_url",
|
||||
"feature.spending_proposals",
|
||||
"feature.spending_proposal_features.phase1",
|
||||
"feature.spending_proposal_features.phase2",
|
||||
"feature.spending_proposal_features.phase3",
|
||||
"feature.spending_proposal_features.voting_allowed",
|
||||
"feature.spending_proposal_features.final_voting_allowed",
|
||||
"feature.spending_proposal_features.open_results_page",
|
||||
"feature.spending_proposal_features.valuation_allowed"
|
||||
]
|
||||
|
||||
deprecated_keys.each do |key|
|
||||
Setting.where(key: key).first&.destroy
|
||||
end
|
||||
end
|
||||
|
||||
desc "Rename existing settings"
|
||||
task rename_setting_keys: :environment do
|
||||
ApplicationLogger.new.info "Renaming existing settings"
|
||||
Setting.rename_key from: "map_latitude", to: "map.latitude"
|
||||
Setting.rename_key from: "map_longitude", to: "map.longitude"
|
||||
Setting.rename_key from: "map_zoom", to: "map.zoom"
|
||||
|
||||
Setting.rename_key from: "feature.debates", to: "process.debates"
|
||||
Setting.rename_key from: "feature.proposals", to: "process.proposals"
|
||||
Setting.rename_key from: "feature.polls", to: "process.polls"
|
||||
Setting.rename_key from: "feature.budgets", to: "process.budgets"
|
||||
Setting.rename_key from: "feature.legislation", to: "process.legislation"
|
||||
|
||||
Setting.rename_key from: "per_page_code_head", to: "html.per_page_code_head"
|
||||
Setting.rename_key from: "per_page_code_body", to: "html.per_page_code_body"
|
||||
|
||||
Setting.rename_key from: "feature.homepage.widgets.feeds.proposals", to: "homepage.widgets.feeds.proposals"
|
||||
Setting.rename_key from: "feature.homepage.widgets.feeds.debates", to: "homepage.widgets.feeds.debates"
|
||||
Setting.rename_key from: "feature.homepage.widgets.feeds.processes", to: "homepage.widgets.feeds.processes"
|
||||
end
|
||||
|
||||
desc "Add new settings"
|
||||
task add_new_settings: :environment do
|
||||
ApplicationLogger.new.info "Adding new settings"
|
||||
Setting.add_new_settings
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
namespace :stats_and_results do
|
||||
desc "Migrates stats_enabled and results_enabled data to enabled reports"
|
||||
task migrate_to_reports: :environment do
|
||||
ApplicationLogger.new.info "Migrating stats and results"
|
||||
Migrations::Reports.new.migrate
|
||||
end
|
||||
end
|
||||
@@ -1,53 +0,0 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe Migrations::Reports do
|
||||
describe "#migrate" do
|
||||
it "ignores polls with existing reports" do
|
||||
create(:poll, results_enabled: true, stats_enabled: true) do |poll|
|
||||
poll.write_attribute(:results_enabled, false)
|
||||
poll.write_attribute(:stats_enabled, false)
|
||||
poll.save
|
||||
end
|
||||
|
||||
Migrations::Reports.new.migrate
|
||||
|
||||
expect(Poll.last.results_enabled).to be true
|
||||
expect(Poll.last.stats_enabled).to be true
|
||||
expect(Poll.last.advanced_stats_enabled).to be nil
|
||||
end
|
||||
|
||||
it "migrates polls with no reports" do
|
||||
create(:poll) do |poll|
|
||||
poll.write_attribute(:results_enabled, true)
|
||||
poll.write_attribute(:stats_enabled, true)
|
||||
poll.save
|
||||
end
|
||||
|
||||
Migrations::Reports.new.migrate
|
||||
|
||||
expect(Poll.last.results_enabled).to be true
|
||||
expect(Poll.last.stats_enabled).to be true
|
||||
expect(Poll.last.advanced_stats_enabled).to be true
|
||||
end
|
||||
|
||||
it "ignores budgets with existing reports" do
|
||||
create(:budget, results_enabled: false, stats_enabled: false, advanced_stats_enabled: false)
|
||||
|
||||
Migrations::Reports.new.migrate
|
||||
|
||||
expect(Budget.last.results_enabled).to be false
|
||||
expect(Budget.last.stats_enabled).to be false
|
||||
expect(Budget.last.advanced_stats_enabled).to be false
|
||||
end
|
||||
|
||||
it "enables results and stats for every budget" do
|
||||
create(:budget)
|
||||
|
||||
Migrations::Reports.new.migrate
|
||||
|
||||
expect(Budget.last.results_enabled).to be true
|
||||
expect(Budget.last.stats_enabled).to be true
|
||||
expect(Budget.last.advanced_stats_enabled).to be true
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -3,6 +3,7 @@ require "rails_helper"
|
||||
describe Budget do
|
||||
|
||||
let(:run_rake_task) do
|
||||
Rake::Task["budgets:set_original_heading_id"].reenable
|
||||
Rake.application.invoke_task("budgets:set_original_heading_id")
|
||||
end
|
||||
|
||||
@@ -19,4 +20,17 @@ describe Budget do
|
||||
expect(investment.original_heading_id).to equal(heading.id)
|
||||
end
|
||||
|
||||
it "does not overwrite original_heading_id when already present" do
|
||||
original_heading = create(:budget_heading)
|
||||
new_heading = create(:budget_heading)
|
||||
investment = create(:budget_investment, heading: original_heading)
|
||||
investment.update(heading: new_heading)
|
||||
|
||||
expect(investment.original_heading_id).to eq original_heading.id
|
||||
|
||||
run_rake_task
|
||||
investment.reload
|
||||
|
||||
expect(investment.original_heading_id).to eq original_heading.id
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe "rake db:pages" do
|
||||
let :run_rake_task do
|
||||
Rake.application.invoke_task("db:pages")
|
||||
end
|
||||
|
||||
it "seeds the database with the default custom pages" do
|
||||
SiteCustomization::Page.destroy_all
|
||||
expect(SiteCustomization::Page.count).to be 0
|
||||
|
||||
run_rake_task
|
||||
expect(SiteCustomization::Page.count).to be 7
|
||||
end
|
||||
end
|
||||
@@ -1,112 +0,0 @@
|
||||
require "rails_helper"
|
||||
|
||||
describe Setting do
|
||||
|
||||
context "Remove deprecated settings" do
|
||||
|
||||
let :run_remove_deprecated_settings_task do
|
||||
Rake::Task["settings:remove_deprecated_settings"].reenable
|
||||
Rake.application.invoke_task "settings:remove_deprecated_settings"
|
||||
end
|
||||
|
||||
before do
|
||||
Setting.create(key: "place_name", value: "City")
|
||||
Setting.create(key: "banner-style.banner-style-one", value: "Style one")
|
||||
Setting.create(key: "banner-style.banner-style-two", value: "Style two")
|
||||
Setting.create(key: "banner-style.banner-style-three", value: "Style three")
|
||||
Setting.create(key: "banner-img.banner-img-one", value: "Image 1")
|
||||
Setting.create(key: "banner-img.banner-img-two", value: "Image 2")
|
||||
Setting.create(key: "banner-img.banner-img-three", value: "Image 3")
|
||||
Setting.create(key: "verification_offices_url", value: "http://offices.url")
|
||||
Setting.create(key: "not_deprecated", value: "Setting not deprecated")
|
||||
run_remove_deprecated_settings_task
|
||||
end
|
||||
|
||||
it "Rake only removes deprecated settings" do
|
||||
expect(Setting.where(key: "place_name").count).to eq(0)
|
||||
expect(Setting.where(key: "banner-style.banner-style-one").count).to eq(0)
|
||||
expect(Setting.where(key: "banner-style.banner-style-two").count).to eq(0)
|
||||
expect(Setting.where(key: "banner-style.banner-style-three").count).to eq(0)
|
||||
expect(Setting.where(key: "banner-img.banner-img-one").count).to eq(0)
|
||||
expect(Setting.where(key: "banner-img.banner-img-two").count).to eq(0)
|
||||
expect(Setting.where(key: "banner-img.banner-img-three").count).to eq(0)
|
||||
expect(Setting.where(key: "verification_offices_url").count).to eq(0)
|
||||
expect(Setting.where(key: "not_deprecated").count).to eq(1)
|
||||
end
|
||||
end
|
||||
|
||||
describe "#rename_setting_keys" do
|
||||
|
||||
let :run_rake_task do
|
||||
Rake::Task["settings:rename_setting_keys"].reenable
|
||||
Rake.application.invoke_task "settings:rename_setting_keys"
|
||||
end
|
||||
|
||||
let :old_keys do
|
||||
%w[map_latitude map_longitude map_zoom feature.debates feature.proposals feature.polls
|
||||
feature.budgets feature.legislation per_page_code_head per_page_code_body
|
||||
feature.homepage.widgets.feeds.proposals feature.homepage.widgets.feeds.debates
|
||||
feature.homepage.widgets.feeds.processes]
|
||||
end
|
||||
|
||||
let :new_keys do
|
||||
%w[map.latitude map.longitude map.zoom process.debates process.proposals process.polls
|
||||
process.budgets process.legislation html.per_page_code_head html.per_page_code_body
|
||||
homepage.widgets.feeds.proposals homepage.widgets.feeds.debates
|
||||
homepage.widgets.feeds.processes]
|
||||
end
|
||||
|
||||
context "with existing old settings" do
|
||||
it "rename all settings keys keeping the same value" do
|
||||
Setting.destroy_all
|
||||
old_keys.each { |old_key| Setting[old_key] = "old value" }
|
||||
|
||||
run_rake_task
|
||||
|
||||
new_keys.each do |new_key|
|
||||
expect(Setting[new_key]).to eq "old value"
|
||||
end
|
||||
|
||||
old_keys.each do |old_key|
|
||||
expect(Setting.where(key: old_key)).not_to exist
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context "without existing old settings" do
|
||||
it "initializes all settings with null value" do
|
||||
Setting.destroy_all
|
||||
|
||||
run_rake_task
|
||||
|
||||
new_keys.each do |new_key|
|
||||
expect(Setting[new_key]).to eq nil
|
||||
end
|
||||
|
||||
old_keys.each do |old_key|
|
||||
expect(Setting.where(key: old_key)).not_to exist
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context "with already existing new settings" do
|
||||
it "does not change the value of the new settings even if the old setting exist" do
|
||||
Setting.destroy_all
|
||||
old_keys.each { |old_key| Setting[old_key] = "old value" }
|
||||
new_keys.each { |new_key| Setting[new_key] = "new value" }
|
||||
|
||||
run_rake_task
|
||||
|
||||
new_keys.each do |new_key|
|
||||
expect(Setting[new_key]).to eq "new value"
|
||||
end
|
||||
|
||||
old_keys.each do |old_key|
|
||||
expect(Setting.where(key: old_key)).not_to exist
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user