Sha256: 1d0f8f1704bdb0f8372f0f06c5c506ff64d73f7208f4e4caeba2ef1f37327b64
Contents?: true
Size: 1.59 KB
Versions: 25
Compression:
Stored size: 1.59 KB
Contents
# frozen_string_literal: true module Spotlight # Mixin for adding default configuration to exhibits module ExhibitDefaults extend ActiveSupport::Concern included do before_create :build_home_page before_create :add_site_reference after_create :initialize_config after_create :initialize_browse after_create :initialize_main_navigation after_create :initialize_filter end protected def initialize_filter return unless Spotlight::Engine.config.filter_resources_by_exhibit filters.create field: default_filter_field, value: default_filter_value end def initialize_config self.blacklight_configuration ||= Spotlight::BlacklightConfiguration.create! end def initialize_browse return unless searches.blank? searches.create title: 'All exhibit items', long_description: 'All items in this exhibit.' end def initialize_main_navigation default_main_navigations.each_with_index do |nav_type, weight| main_navigations.create nav_type: nav_type, weight: weight end end def add_site_reference self.site ||= Spotlight::Site.instance end def default_filter_field "#{Spotlight::Engine.config.solr_fields.prefix}spotlight_exhibit_slug_#{slug}#{Spotlight::Engine.config.solr_fields.boolean_suffix}" end # Return a string to work around any ActiveRecord type-casting def default_filter_value 'true' end private def default_main_navigations Spotlight::Engine.config.exhibit_main_navigation.dup end end end
Version data entries
25 entries across 25 versions & 1 rubygems