Sha256: ba93d08977f1a60260e4eea53b6a9c09bddc9d26465fcd797b52e1b06c81a9e9

Contents?: true

Size: 1.15 KB

Versions: 12

Compression:

Stored size: 1.15 KB

Contents

module CurationConcerns
  # A work should be able to be filtered out of search results if it's inactive
  module Suppressible
    extend ActiveSupport::Concern

    included do
      # This holds the workflow state
      property :state, predicate: Vocab::FedoraResourceStatus.objState, multiple: false
    end

    ##
    # Used to restrict visibility on search results for a work that is inactive. If the state is not set, the
    # default behavior is to consider the work not to be suppressed.
    #
    # Override this method if you have some criteria by which records should not display in the search results.
    def suppressed?
      return false if state.nil?
      # This is a clumsy check only needed under RDF < 2.0 where there
      # is a bug with `AT::Resource#==`
      if RDF::VERSION.to_s < '2.0'
        return state.rdf_subject == Vocab::FedoraResourceStatus.inactive
      end
      state == Vocab::FedoraResourceStatus.inactive
    end

    def to_sipity_entity
      raise "Can't create an entity until the model has been persisted" unless persisted?
      @sipity_entity ||= Sipity::Entity.find_by(proxy_for_global_id: to_global_id.to_s)
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
curation_concerns-1.7.8 app/models/concerns/curation_concerns/suppressible.rb
curation_concerns-1.7.7 app/models/concerns/curation_concerns/suppressible.rb
curation_concerns-2.0.0 app/models/concerns/curation_concerns/suppressible.rb
curation_concerns-2.0.0.rc2 app/models/concerns/curation_concerns/suppressible.rb
curation_concerns-1.7.6 app/models/concerns/curation_concerns/suppressible.rb
curation_concerns-1.7.5 app/models/concerns/curation_concerns/suppressible.rb
curation_concerns-1.7.4 app/models/concerns/curation_concerns/suppressible.rb
curation_concerns-1.7.3 app/models/concerns/curation_concerns/suppressible.rb
curation_concerns-1.7.2 app/models/concerns/curation_concerns/suppressible.rb
curation_concerns-2.0.0.rc1 app/models/concerns/curation_concerns/suppressible.rb
curation_concerns-1.7.1 app/models/concerns/curation_concerns/suppressible.rb
curation_concerns-1.7.0 app/models/concerns/curation_concerns/suppressible.rb