Sha256: 5502769ed75ca322491c1e203d4ebfc4596aa7e6a220b325d33af313ff569ba7

Contents?: true

Size: 1.04 KB

Versions: 4

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

class CreateDefaultProposalStates < ActiveRecord::Migration[6.1]
  class Proposal < ApplicationRecord
    belongs_to :proposal_state,
               class_name: "Decidim::Proposals::ProposalState",
               foreign_key: "decidim_proposals_proposal_state_id",
               inverse_of: :proposals,
               optional: true

    self.table_name = :decidim_proposals_proposals
    STATES = { not_answered: 0, evaluating: 10, accepted: 20, rejected: -10 }.freeze
    enum old_state: STATES, _default: "not_answered"
  end

  def up
    Decidim::Component.where(manifest_name: "proposals").find_each do |component|
      admin_user = component.organization.admins.first

      default_states = Decidim::Proposals.create_default_states!(component, admin_user)

      Proposal.where(decidim_component_id: component.id).find_each do |proposal|
        proposal.update!(proposal_state: default_states.dig(proposal.old_state.to_sym, :object))
      end
    end
  end

  def down
    raise ActiveRecord::IrreversibleMigration
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
decidim-proposals-0.29.0.rc4 db/migrate/20240110203504_create_default_proposal_states.rb
decidim-proposals-0.29.0.rc3 db/migrate/20240110203504_create_default_proposal_states.rb
decidim-proposals-0.29.0.rc2 db/migrate/20240110203504_create_default_proposal_states.rb
decidim-proposals-0.29.0.rc1 db/migrate/20240110203504_create_default_proposal_states.rb