58 lines
1.1 KiB
Ruby
58 lines
1.1 KiB
Ruby
# -*- encoding : utf-8 -*-
|
|
class Block < ActiveRecord::Base
|
|
|
|
ContentTypes = {
|
|
TitleContent: "Titre",
|
|
TextContent: "Texte",
|
|
ImageContent: "Image",
|
|
LinkContent:"Lien",
|
|
BreakContent: "Séparation",
|
|
HtmlContent: "Code HTML",
|
|
DownloadContent: "Téléchargement",
|
|
GalleryContent: "Galerie",
|
|
DynamicContent: "Contenu dynamique",
|
|
TableContent: "Tableau",
|
|
BlockContent: "Bloc",
|
|
MapContent: "Plan"
|
|
}
|
|
|
|
|
|
belongs_to :blockable, :polymorphic => true
|
|
|
|
has_many :portlets, :order => :position, :dependent => :destroy
|
|
accepts_nested_attributes_for :portlets
|
|
|
|
|
|
def allow_types(*type)
|
|
if type == [:all]
|
|
ContentTypes
|
|
else
|
|
allow_types = {}
|
|
type.each do |content|
|
|
|
|
allow_types[content] = ContentTypes[content]
|
|
end
|
|
allow_types
|
|
end
|
|
end
|
|
|
|
def alloweds_types
|
|
allow_types :all #:TitleContent, :ImageContent
|
|
|
|
end
|
|
|
|
def dup
|
|
@block = Block.new(self.attributes)
|
|
@block.id = nil
|
|
@block.save
|
|
|
|
self.portlets.each do |portlet|
|
|
new_p = portlet.dup
|
|
new_p.save
|
|
@block.portlets << new_p
|
|
end
|
|
@block
|
|
end
|
|
|
|
end
|