Sha256: 8d2648f58a25fc291bee4fcd56e70bf993773c9fb032e4b6cdc0374e9ef1aca4

Contents?: true

Size: 748 Bytes

Versions: 16

Compression:

Stored size: 748 Bytes

Contents

class AddPositionToPages < ActiveRecord::Migration[5.1]
  def self.up
    unless column_exists? :pages, :position
      add_column :pages, :position, :integer
      Page.reset_column_information
      say_with_time("Putting all pages in a default order...") do
        ActiveRecord::Base.record_timestamps = false
        Page.where(parent_id: nil).each do |p|
          put_children_into_list(p)
        end
        ActiveRecord::Base.record_timestamps = true
      end
    end
  end

  def self.down
    remove_column :pages, :position
  end

  def self.put_children_into_list(page)
    page.children.order("title asc").each_with_index do |pg, idx|
      pg.update_attribute('position', idx + 1)
      put_children_into_list(pg)
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
trusty-cms-3.3.2 db/migrate/20161027141250_add_position_to_pages.rb
trusty-cms-3.3.1 db/migrate/20161027141250_add_position_to_pages.rb
trusty-cms-3.2.1 db/migrate/20161027141250_add_position_to_pages.rb
trusty-cms-3.3.0 db/migrate/20161027141250_add_position_to_pages.rb
trusty-cms-3.2.0 db/migrate/20161027141250_add_position_to_pages.rb
trusty-cms-3.1.11 db/migrate/20161027141250_add_position_to_pages.rb
trusty-cms-3.1.10 db/migrate/20161027141250_add_position_to_pages.rb
trusty-cms-3.1.9 db/migrate/20161027141250_add_position_to_pages.rb
trusty-cms-3.1.8 db/migrate/20161027141250_add_position_to_pages.rb
trusty-cms-3.1.7 db/migrate/20161027141250_add_position_to_pages.rb
trusty-cms-3.1.6 db/migrate/20161027141250_add_position_to_pages.rb
trusty-cms-3.1.5 db/migrate/20161027141250_add_position_to_pages.rb
trusty-cms-3.1.3 db/migrate/20161027141250_add_position_to_pages.rb
trusty-cms-3.1.2 db/migrate/20161027141250_add_position_to_pages.rb
trusty-cms-3.1.1 db/migrate/20161027141250_add_position_to_pages.rb
trusty-cms-3.1.0 db/migrate/20161027141250_add_position_to_pages.rb