Sha256: b0e85acf019dd0bfd4069130d814b1e819c3ea5fd50119b3584b9c00ffc23cb9

Contents?: true

Size: 1.15 KB

Versions: 49

Compression:

Stored size: 1.15 KB

Contents

# frozen_string_literal: true

class FixDebatesI18nFields < ActiveRecord::Migration[5.2]
  class User < ApplicationRecord
    self.table_name = :decidim_users
  end

  class Debate < ApplicationRecord
    self.table_name = :decidim_debates_debates
  end

  class Organization < ApplicationRecord
    self.table_name = :decidim_organizations
  end

  def change
    reset_column_information

    debates.find_each do |debate|
      locale, org_id = User.where(id: debate.decidim_author_id).pick(:locale, :decidim_organization_id)
      locale = locale.presence || Organization.find(org_id).default_locale
      locale = locale.to_s

      debate.title = {
        locale => debate.title[locale]
      }
      debate.description = {
        locale => debate.description[locale]
      }

      debate.save!(validate: false)
    end

    reset_column_information
  end

  def debates
    Debate
      .where.not(decidim_author_type: "Decidim::Organization")
      .select(:id, :decidim_author_id, :title, :description)
  end

  def reset_column_information
    User.reset_column_information
    Debate.reset_column_information
    Organization.reset_column_information
  end
end

Version data entries

49 entries across 49 versions & 1 rubygems

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