Sha256: de2994887f55d44d9fbfdac907bd6d6753d2e6a6c73b67c65a3a22d79b178da6

Contents?: true

Size: 1.04 KB

Versions: 4

Compression:

Stored size: 1.04 KB

Contents

module Ecm::Cms
  class Page < ActiveRecord::Base
    # add shared behaviour for database backed templates
    include DatabaseTemplate

    # associations
    has_many :ecm_cms_navigation_items,
             :class_name => 'NavigationItem',
             :dependent => :nullify,
             :foreign_key => 'ecm_cms_page_id'
    has_many :ecm_cms_page_content_blocks,
             :class_name => 'Ecm::Cms::Page::ContentBlock',
             :dependent => :destroy,
             :foreign_key => 'ecm_cms_page_id',
             :inverse_of => :ecm_cms_page

    accepts_nested_attributes_for :ecm_cms_page_content_blocks, :allow_destroy => true

    # callbacks
    after_save :touch_navigation_items # , :if => Proc.new { |page| page.locale_changed? || page.pathname_changed? || page.basename_changed? }

    # validations
    validates :title, :presence => true

    def home_page?
      return self.pathname == '/' && self.basename == 'home'
    end

    def touch_navigation_items
      self.ecm_cms_navigation_items.map(&:update_url_form_page!)
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ecm_cms2-1.1.1 app/models/ecm/cms/page.rb
ecm_cms2-1.1.0 app/models/ecm/cms/page.rb
ecm_cms2-1.0.1 app/models/ecm/cms/page.rb
ecm_cms2-1.0.0 app/models/ecm/cms/page.rb