Sha256: 6b31a3e5616efe0228bbcbae49f310e3160c66ff49cc76dd4948e7adbb8f0287

Contents?: true

Size: 1018 Bytes

Versions: 24

Compression:

Stored size: 1018 Bytes

Contents

# frozen_string_literal: true

class Tramway::Landing::Block < ::Tramway::Landing::ApplicationRecord
  enumerize :block_type, in: %i[header footer page cards features contacts link page_with_button just_text view]
  enumerize :navbar_link, in: %i[exist not_exist], default: :not_exist
  enumerize :link_object_type, in: ['Tramway::SportSchool::Document', 'Tramway::Page::Page']

  mount_uploader :background, PhotoUploader

  state_machine :view_state, initial: :published do
    state :published
    state :hidden

    event :publish do
      transition hidden: :published
    end

    event :hide do
      transition published: :hidden
    end
  end

  scope :on_main_page, -> { active.where(view_state: :published).order :position }
  scope :with_navbar_link, -> { where navbar_link: :exist }
  scope :header, -> { on_main_page.where(block_type: :header).first }
  scope :footer, -> { on_main_page.where(block_type: :footer).first }

  def link_object
    link_object_type.constantize.find link_object_id
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
tramway-landing-2.1.0.2 app/models/tramway/landing/block.rb
tramway-landing-2.1.0.1 app/models/tramway/landing/block.rb
tramway-landing-2.1 app/models/tramway/landing/block.rb
tramway-landing-2.0.1.6 app/models/tramway/landing/block.rb
tramway-landing-2.0.1.5 app/models/tramway/landing/block.rb
tramway-landing-2.0.1.4 app/models/tramway/landing/block.rb
tramway-landing-2.0.1.3 app/models/tramway/landing/block.rb
tramway-landing-2.0.1.2 app/models/tramway/landing/block.rb
tramway-landing-2.0.1.1 app/models/tramway/landing/block.rb
tramway-landing-2.0.1 app/models/tramway/landing/block.rb
tramway-landing-2.0.0.3 app/models/tramway/landing/block.rb
tramway-landing-2.0.0.2 app/models/tramway/landing/block.rb
tramway-landing-2.0.0.1 app/models/tramway/landing/block.rb
tramway-landing-2.0 app/models/tramway/landing/block.rb
tramway-landing-1.8.3.3 app/models/tramway/landing/block.rb
tramway-landing-1.8.3.2 app/models/tramway/landing/block.rb
tramway-landing-1.8.3.1 app/models/tramway/landing/block.rb
tramway-landing-1.8.3 app/models/tramway/landing/block.rb
tramway-landing-1.8.2.8 app/models/tramway/landing/block.rb
tramway-landing-1.8.2.7 app/models/tramway/landing/block.rb