Sha256: cfd1276b8bb3e449588cf7fe71a249959e0d79742610cb61b823173ea4f7574d

Contents?: true

Size: 1.6 KB

Versions: 44

Compression:

Stored size: 1.6 KB

Contents

module Festivity
  module Extensions
    module PageExtensions

      def self.included(base)
        base.class_eval {

          before_save :set_page_defaults
          after_create  :create_page_defaults

          has_many :festivity_category_types
          has_many :festivity_page_categories
          has_many :festivity_categories, through: :festivity_page_categories

          include ActsAsTree::InstanceMethods
          include Festivity::Extensions::PageExtensions::PageMethods
          include Festivity::Admin::AssetsHelper
        }

      end

      module PageMethods

        def create_page_defaults
          self.save if festivity_base_page?
        end

        def set_page_defaults
          if festivity_base_page? && self.id
            self.slug = self.id unless self.slug == self.id
            parts.create(:name => 'video_embed', :content => "") unless parts.any? { |part| part.name == 'video_embed' }
            parts.create(:name => 'sponsor_logo', :content => "") unless parts.any? { |part| part.name == 'sponsor_logo' }
          end
        end

        def image
          page_image_url('featured_image')
        end

        def organization
          page_organization = nil
          page_parent = self.parent
          while page_organization == nil
            page_organization = page_parent.site
            page_parent = page_parent.parent
          end
          page_organization
        end

        private

        def festivity_base_page?
          (self.class_name == "FestivityEventPage") | (self.class_name == "FestivityMarketPage")
        end

      end

    end
  end
end

Version data entries

44 entries across 44 versions & 1 rubygems

Version Path
trusty-festivity-extension-2.3.30 lib/festivity/extensions/page_extensions.rb
trusty-festivity-extension-2.3.29 lib/festivity/extensions/page_extensions.rb
trusty-festivity-extension-2.3.28 lib/festivity/extensions/page_extensions.rb
trusty-festivity-extension-2.3.27 lib/festivity/extensions/page_extensions.rb
trusty-festivity-extension-2.3.26 lib/festivity/extensions/page_extensions.rb
trusty-festivity-extension-2.3.25 lib/festivity/extensions/page_extensions.rb
trusty-festivity-extension-2.3.24 lib/festivity/extensions/page_extensions.rb
trusty-festivity-extension-2.3.23 lib/festivity/extensions/page_extensions.rb
trusty-festivity-extension-2.3.22 lib/festivity/extensions/page_extensions.rb
trusty-festivity-extension-2.3.21 lib/festivity/extensions/page_extensions.rb
trusty-festivity-extension-2.3.20 lib/festivity/extensions/page_extensions.rb
trusty-festivity-extension-2.3.19 lib/festivity/extensions/page_extensions.rb
trusty-festivity-extension-2.3.18 lib/festivity/extensions/page_extensions.rb
trusty-festivity-extension-2.3.17 lib/festivity/extensions/page_extensions.rb
trusty-festivity-extension-2.3.16 lib/festivity/extensions/page_extensions.rb
trusty-festivity-extension-2.3.15 lib/festivity/extensions/page_extensions.rb
trusty-festivity-extension-2.3.14 lib/festivity/extensions/page_extensions.rb
trusty-festivity-extension-2.3.13 lib/festivity/extensions/page_extensions.rb
trusty-festivity-extension-2.3.12 lib/festivity/extensions/page_extensions.rb
trusty-festivity-extension-2.3.11g lib/festivity/extensions/page_extensions.rb