class Pwb::ContentsSeeder

Public Class Methods

seed_page_content_translations!() click to toggle source

Called by this rake task: rake app:pwb:db:seed_pages sets actual content for each page based on its page_parts below need to have page_parts populated to work correctly

# File lib/pwb/contents_seeder.rb, line 12
def seed_page_content_translations!
  I18n.available_locales.each do |locale|
    locale_seed_file = Pwb::Engine.root.join('db', 'yml_seeds', 'content_translations', locale.to_s + '.yml')
    if File.exist? locale_seed_file
      yml = YAML.load_file(locale_seed_file)

      seed_content_for_locale locale.to_s, yml
    else
      puts "Contents seed for #{locale} not found"
    end
  end
end

Protected Class Methods

seed_content_for_locale(locale, yml) click to toggle source

def seed_rails_parts

contact_us_page = Pwb::Page.find_by_slug "contact-us"
contact_us_rails_part = contact_us_page.page_contents.find_or_create_by(label: "contact_us__form_and_map")

end

# File lib/pwb/contents_seeder.rb, line 32
def seed_content_for_locale(locale, yml)

  current_website = Pwb::Website.last
  current_website.page_parts.each do |page_part|
    page_part_key = page_part.page_part_key

    page_part_manager = Pwb::PagePartManager.new page_part_key, current_website
    set_page_part_content yml, page_part_key, page_part_manager, "website", locale
  end

  Pwb::Page.all.each do |page|
    page.page_parts.each do |page_part|
      page_part_key = page_part.page_part_key
      page_part_manager = Pwb::PagePartManager.new page_part_key, page

      # if page_part.is_rails_part
      #   page_part_manager.find_or_create_join_model
      # else
      # end
      set_page_part_content yml, page_part_key, page_part_manager, page.slug, locale
      page_part_manager.set_default_page_content_order_and_visibility

    end
  end
end
set_page_part_content(yml, page_part_key, page_part_manager, container_label, locale) click to toggle source

reads content from

# File lib/pwb/contents_seeder.rb, line 59
def set_page_part_content yml, page_part_key, page_part_manager, container_label, locale

  # Items in each locale seed file are nested as
  # page_slug/page_part_key and then the block labels

  if yml[locale] && yml[locale][container_label] && yml[locale][container_label][page_part_key]
    seed_content = yml[locale][container_label][page_part_key]
    page_part_manager.seed_container_block_content locale, seed_content
    p "#{container_label} #{page_part_key} content set for #{locale}."
  else
    # Might get here because the page_part is_rails_part or
    # does not have any content to be seeded.
    # Still want to have a page_content entry based on that
    # page_part though
    page_part_manager.find_or_create_join_model
    p "no content for #{container_label} page #{page_part_key} #{locale}."
  end
end