Sha256: cbe2904ddc9d46dd55379494cd6fac93f7a0d1855208d3a71e8147085e7a874c
Contents?: true
Size: 1.59 KB
Versions: 1
Compression:
Stored size: 1.59 KB
Contents
module Spotlight class Page < ActiveRecord::Base MAX_PAGES = 50 extend FriendlyId friendly_id :title, use: [:slugged,:scoped,:finders,:history], scope: :exhibit belongs_to :exhibit, touch: true belongs_to :created_by, class_name: "::User" belongs_to :last_edited_by, class_name: "::User" validates :weight, :inclusion => { :in => Proc.new{ 0..Spotlight::Page::MAX_PAGES } } default_scope { order("weight ASC") } scope :at_top_level, -> { where(parent_page_id: nil) } scope :published, -> { where(published: true) } scope :recent, -> { order("updated_at DESC").limit(10)} has_one :lock, as: :on, dependent: :destroy sir_trevor_content :content # display_sidebar should be set to true by default before_create do self.content ||= [].to_json self.display_sidebar = true end def has_content? read_attribute(:content).present? end def display_sidebar? true end # explicitly set the partial path so that # we don't have to duplicate view logic. def to_partial_path "spotlight/pages/page" end def feature_page? is_a? FeaturePage end def about_page? is_a? AboutPage end def top_level_page? try(:parent_page).blank? end def top_level_page_or_self parent_page || self end def should_generate_new_friendly_id? title_changed? end def should_display_title? title.present? end def lock! user unless lock.present? create_lock(by: user) lock.current_session! end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
blacklight-spotlight-0.2.0 | app/models/spotlight/page.rb |