Sha256: 0660b99aa3715ac22e9a6f655b49c763fe8fb838ee7dce4d9728d2d31be964c3

Contents?: true

Size: 1.06 KB

Versions: 63

Compression:

Stored size: 1.06 KB

Contents

# frozen_string_literal: true

class AllowMultipleInitiativeVotesCounterCaches < ActiveRecord::Migration[5.2]
  class InitiativeVote < ApplicationRecord
    self.table_name = :decidim_initiatives_votes
  end

  class Initiative < ApplicationRecord
    self.table_name = :decidim_initiatives
    has_many :votes, foreign_key: "decidim_initiative_id", class_name: "InitiativeVote"
  end

  def change
    add_column :decidim_initiatives, :online_votes, :jsonb, default: {}

    Initiative.reset_column_information

    Initiative.find_each do |initiative|
      online_votes = initiative.votes.group(:decidim_scope_id).count.each_with_object({}) do |(scope_id, count), counters|
        counters[scope_id || "global"] = count
        counters["total"] = count
      end

      # rubocop:disable Rails/SkipsModelValidations
      initiative.update_column("online_votes", online_votes)
      # rubocop:enable Rails/SkipsModelValidations
    end

    remove_column :decidim_initiatives, :initiative_supports_count
    remove_column :decidim_initiatives, :initiative_votes_count
  end
end

Version data entries

63 entries across 63 versions & 1 rubygems

Version Path
decidim-initiatives-0.30.0.rc3 db/migrate/20191116170841_allow_multiple_initiative_votes_counter_caches.rb
decidim-initiatives-0.30.0.rc2 db/migrate/20191116170841_allow_multiple_initiative_votes_counter_caches.rb
decidim-initiatives-0.30.0.rc1 db/migrate/20191116170841_allow_multiple_initiative_votes_counter_caches.rb
decidim-initiatives-0.29.2 db/migrate/20191116170841_allow_multiple_initiative_votes_counter_caches.rb
decidim-initiatives-0.28.5 db/migrate/20191116170841_allow_multiple_initiative_votes_counter_caches.rb
decidim-initiatives-0.29.1 db/migrate/20191116170841_allow_multiple_initiative_votes_counter_caches.rb
decidim-initiatives-0.28.4 db/migrate/20191116170841_allow_multiple_initiative_votes_counter_caches.rb
decidim-initiatives-0.27.9 db/migrate/20191116170841_allow_multiple_initiative_votes_counter_caches.rb
decidim-initiatives-0.29.0 db/migrate/20191116170841_allow_multiple_initiative_votes_counter_caches.rb
decidim-initiatives-0.28.3 db/migrate/20191116170841_allow_multiple_initiative_votes_counter_caches.rb
decidim-initiatives-0.27.8 db/migrate/20191116170841_allow_multiple_initiative_votes_counter_caches.rb
decidim-initiatives-0.29.0.rc4 db/migrate/20191116170841_allow_multiple_initiative_votes_counter_caches.rb
decidim-initiatives-0.29.0.rc3 db/migrate/20191116170841_allow_multiple_initiative_votes_counter_caches.rb
decidim-initiatives-0.29.0.rc2 db/migrate/20191116170841_allow_multiple_initiative_votes_counter_caches.rb
decidim-initiatives-0.29.0.rc1 db/migrate/20191116170841_allow_multiple_initiative_votes_counter_caches.rb
decidim-initiatives-0.28.2 db/migrate/20191116170841_allow_multiple_initiative_votes_counter_caches.rb
decidim-initiatives-0.27.7 db/migrate/20191116170841_allow_multiple_initiative_votes_counter_caches.rb
decidim-initiatives-0.28.1 db/migrate/20191116170841_allow_multiple_initiative_votes_counter_caches.rb
decidim-initiatives-0.27.6 db/migrate/20191116170841_allow_multiple_initiative_votes_counter_caches.rb
decidim-initiatives-0.26.10 db/migrate/20191116170841_allow_multiple_initiative_votes_counter_caches.rb