Sha256: f8429a0e714548a7903803e78ac9667bd2dfee4c7e10da2928b280ac4a7a5b10

Contents?: true

Size: 1.14 KB

Versions: 31

Compression:

Stored size: 1.14 KB

Contents

# frozen_string_literal: true

module Spotlight
  ##
  # Exhibit curator contact information
  class Contact < ActiveRecord::Base
    belongs_to :exhibit, touch: true, optional: true
    scope :published, -> { where(show_in_sidebar: true) }
    default_scope { order('weight ASC') }
    serialize :contact_info, Hash

    extend FriendlyId
    friendly_id :name, use: %i[slugged scoped finders], scope: :exhibit

    belongs_to :avatar, class_name: 'Spotlight::ContactImage', dependent: :destroy, optional: true
    accepts_nested_attributes_for :avatar, update_only: true, reject_if: proc { |attr| attr['iiif_tilesource'].blank? }

    before_save do
      self.contact_info = contact_info.symbolize_keys
    end

    before_create do
      self.show_in_sidebar = true if show_in_sidebar.nil?
    end

    def self.fields
      @fields ||= { title: { itemprop: 'jobTitle' },
                    location: { itemprop: 'workLocation' },
                    email: { helper: :render_contact_email_address },
                    telephone: {} }
    end

    protected

    def should_generate_new_friendly_id?
      super || (name_changed? && persisted?)
    end
  end
end

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
blacklight-spotlight-3.5.0.4 app/models/spotlight/contact.rb
blacklight-spotlight-3.5.0.3 app/models/spotlight/contact.rb
blacklight-spotlight-3.6.0.beta6 app/models/spotlight/contact.rb
blacklight-spotlight-3.6.0.beta5 app/models/spotlight/contact.rb
blacklight-spotlight-3.6.0.beta4 app/models/spotlight/contact.rb
blacklight-spotlight-3.6.0.beta3 app/models/spotlight/contact.rb
blacklight-spotlight-3.6.0.beta1 app/models/spotlight/contact.rb
blacklight-spotlight-3.5.0.2 app/models/spotlight/contact.rb
blacklight-spotlight-3.5.0.1 app/models/spotlight/contact.rb
blacklight-spotlight-3.5.0 app/models/spotlight/contact.rb
blacklight-spotlight-3.4.4.1 app/models/spotlight/contact.rb
blacklight-spotlight-3.4.4 app/models/spotlight/contact.rb
blacklight-spotlight-3.4.3 app/models/spotlight/contact.rb
blacklight-spotlight-3.4.2.2 app/models/spotlight/contact.rb
blacklight-spotlight-3.4.2.1 app/models/spotlight/contact.rb
blacklight-spotlight-3.4.2 app/models/spotlight/contact.rb
blacklight-spotlight-3.4.1 app/models/spotlight/contact.rb
blacklight-spotlight-3.4.0 app/models/spotlight/contact.rb
blacklight-spotlight-3.3.0 app/models/spotlight/contact.rb
blacklight-spotlight-3.2.0 app/models/spotlight/contact.rb