orbit-basic/app/models/page_part.rb

49 lines
1.4 KiB
Ruby
Raw Normal View History

2011-05-18 02:00:00 +00:00
class PagePart
include Mongoid::Document
include Mongoid::Timestamps
field :name
field :content
field :kind
field :public_r_tag
2012-04-23 18:30:40 +00:00
field :public_r_tag_object_id, :default => nil
2012-05-08 20:15:45 +00:00
field :public_r_tag_option, :default => nil
field :widget_path
2012-08-09 07:25:30 +00:00
2012-07-16 08:13:38 +00:00
field :widget_style
2012-07-26 08:39:29 +00:00
field :widget_field , :type => Array
2012-07-16 08:13:38 +00:00
field :widget_data_count
has_one :i18n_variable, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
has_one :title, :class_name => "I18nVariable", :as => :language_value, :autosave => true, :dependent => :destroy
2011-05-18 02:00:00 +00:00
belongs_to :page
belongs_to :module_app
2011-05-18 02:00:00 +00:00
2012-08-09 07:25:30 +00:00
before_save :set_key, :delete_empty_widget_field
def i18n_variable
@i18n_variable ||= I18nVariable.first(:conditions => {:key => 'i18n_variable', :language_value_id => self.id, :language_value_type => self.class}) rescue nil
end
def title
@title ||= I18nVariable.first(:conditions => {:key => 'title', :language_value_id => self.id, :language_value_type => self.class}) rescue nil
end
protected
def set_key
title.key = 'title' if title && (title.key.blank? rescue true)
i18n_variable.key = 'i18n_variable' if i18n_variable && (i18n_variable.key.blank? rescue true)
end
2012-08-09 07:25:30 +00:00
def delete_empty_widget_field
if self.widget_field
self.widget_field.reject! { |wf| (wf[0].blank? || wf[1].blank?) }
end
# self.widget_field.delete("") if self.widget_field
end
2011-05-18 02:00:00 +00:00
end