Sha256: 3ae1f2cfa9e32a35d669c9fa73bf47f9964633fb5bc0c40df8b3aff888460cf4

Contents?: true

Size: 1.03 KB

Versions: 3

Compression:

Stored size: 1.03 KB

Contents

class Cms::PageWorkflow < ActiveRecord::Base
  self.table_name = 'cms_page_workflows'

  belongs_to :page, :class_name => 'Comfy::Cms::Page', :foreign_key => 'cms_page_id'

  after_save do |record|
    record.page.update_attribute(:is_published, record.page_published?)
  end

  def self.statuses
    {
      0 => :draft,
      1 => :reviewed,
      # 2 => :scheduled,
      3 => :published
    }
  end

  def self.statuses_for_select(can_publish, can_review)
    ret = [["Draft", 0]]
    ret << ["Reviewed", 1] if can_review
    ret << ["Published", 3] if can_publish
    # self.statuses.map {|k,v| [v.to_s.titleize, k]}
    ret
  end

  def self.cached_timeout_for_select
    {
      "Uncached" => 0,
      "15 minutes" => 15.minutes,
      "30 minutes" => 30.minutes,
      "1 hour" => 1.hour,
      "3 hours" => 3.hours,
      "24 hours" => 1.day,
      "15 days" => 15.days,
      "30 days" => 30.days
    }.map {|k,v| [k, v.to_i] }
  end

  def page_published?
    (status_id.eql?(3) || status_id.eql?(2)) && published_date <= Date.today
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
cms-fortress-1.2.2 app/models/cms/page_workflow.rb
cms-fortress-1.2.1 app/models/cms/page_workflow.rb
cms-fortress-1.2.0 app/models/cms/page_workflow.rb