class PagePart
   
  include Mongoid::Document
  include Mongoid::Timestamps

  field :name
  field :content
  field :kind
  field :public_r_tag
  field :public_r_tag_object_id, :default => nil
  field :public_r_tag_option, :default => nil
  field :widget_path
  
  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

  belongs_to :page
  belongs_to :module_app

  before_save :set_key

  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

end