Sha256: 51453b77abe3478a40fdcbc1a0cc025205651b98257b62c914f1de3c33db7539
Contents?: true
Size: 1.57 KB
Versions: 3
Compression:
Stored size: 1.57 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, lambda { active.joins(:page).where(view_state: :published).where('tramway_page_pages.page_type = ?', :main).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 } scope :published, -> { where(view_state: :published) } def link_object link_object_type.constantize.find link_object_id end def header? block_type.in? %w[header header_with_form] end def footer? block_type.footer? end def form_to_render case values['form_url'] when '/auth/sign_up' "#{Tramway::Auth.authenticable_models.first}SignUpForm".constantize end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
tramway-landing-3.0.3 | app/models/tramway/landing/block.rb |
tramway-landing-3.0.2.4 | app/models/tramway/landing/block.rb |
tramway-landing-3.0.2.3 | app/models/tramway/landing/block.rb |