65 lines
1.0 KiB
Ruby
65 lines
1.0 KiB
Ruby
# -*- encoding : utf-8 -*-
|
|
class Page < ActiveRecord::Base
|
|
|
|
has_many :lang_pages
|
|
|
|
accepts_nested_attributes_for :lang_pages
|
|
|
|
|
|
has_one :menu_item, :as => :menu_content
|
|
|
|
has_many :blocks, :as => :blockable, :dependent => :destroy
|
|
|
|
|
|
#validates :title, :presence => true
|
|
|
|
HUMAN_NAME = "Page"
|
|
|
|
after_create :after_creation
|
|
|
|
def after_creation
|
|
|
|
LangSite.all.each do |lang|
|
|
@block = Block.new(:block_name => "general", :lang_site => lang)
|
|
@block.blockable = self
|
|
@block.save
|
|
|
|
end
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
def dup
|
|
@new = Page.new(self.attributes)
|
|
@new.id = nil
|
|
@new.save
|
|
@new.blocks.destroy_all
|
|
|
|
self.lang_pages.each do |lang_page|
|
|
|
|
new_p = lang_page.dup
|
|
|
|
new_p.title = lang_page.title+" copie"
|
|
new_p.page = @new
|
|
new_p.save
|
|
|
|
|
|
end
|
|
|
|
self.blocks.each do |block|
|
|
|
|
new_b = block.dup
|
|
new_b.blockable = @new
|
|
new_b.save
|
|
|
|
|
|
end
|
|
|
|
@new
|
|
|
|
end
|
|
|
|
end
|