Sha256: b03e2da49133614c06ddf61250f350cfe7bc2c5a790d0ac97c6b37163519c253
Contents?: true
Size: 1.58 KB
Versions: 1
Compression:
Stored size: 1.58 KB
Contents
# frozen_string_literal: true class Tramway::Landing::Block < ::Tramway::Landing::ApplicationRecord belongs_to :page, class_name: 'Tramway::Page::Page' enumerize :block_type, in: %i[header header_with_form 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 store_accessor :values, :form_url store_accessor :button, :button_link store_accessor :button, :button_title scope :on_main_page, -> do active.joins(:page).where(view_state: :published).where('tramway_page_pages.page_type = ?', :main).order :position end 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 } scope :published, -> { where(view_state: :published) } def link_object link_object_type.constantize.find link_object_id end def header? block_type.in? [ 'header', 'header_with_form'] end def footer? block_type.footer? end def form_to_render case self.values['form_url'] when '/auth/sign_up' "#{Tramway::Auth.authenticable_models.first}SignUpForm".constantize end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
tramway-landing-3.0.1.2 | app/models/tramway/landing/block.rb |