lib/ddr/models/solr_document.rb in ddr-models-1.12.3 vs lib/ddr/models/solr_document.rb in ddr-models-1.13.0

- old
+ new

@@ -22,11 +22,11 @@ end def internal_uri get(Ddr::IndexFields::INTERNAL_URI) end - + def object_profile @object_profile ||= get_json(Ddr::IndexFields::OBJECT_PROFILE) end def object_state @@ -90,22 +90,22 @@ get(Ddr::IndexFields::TITLE) end alias_method :title_display, :title # duck-type Ddr::Models::Base def principal_has_role?(principal, role) - (Array(get("admin_metadata__#{role}_ssim")) & Array(principal)).any? + (Array(self["admin_metadata__#{role}_ssim"]) & Array(principal)).any? end def identifier # We want the multivalued version here get(ActiveFedora::SolrService.solr_name(:identifier, :stored_searchable, type: :text)) end def source get(ActiveFedora::SolrService.solr_name(:source, :stored_searchable, type: :text)) end - + def has_thumbnail? has_datastream?(Ddr::Datastreams::THUMBNAIL) end def has_content? @@ -127,36 +127,63 @@ end def content_size_human get(Ddr::IndexFields::CONTENT_SIZE_HUMAN) end - + def content_checksum content_ds["dsChecksum"] rescue nil end - + def targets @targets ||= ActiveFedora::SolrService.query(targets_query) end def targets_count @targets_count ||= ActiveFedora::SolrService.count(targets_query) end - + def has_target? targets_count > 0 end - + def has_default_rights? has_datastream?(Ddr::Datastreams::DEFAULT_RIGHTS) end - + def association(name) get_pid(ActiveFedora::SolrService.solr_name(name, :symbol)) end def controller_name active_fedora_model.tableize + end + + def inherited_license + if admin_policy_pid + query = ActiveFedora::SolrService.construct_query_for_pids([admin_policy_pid]) + results = ActiveFedora::SolrService.query(query) + doc = results.map { |result| ::SolrDocument.new(result) }.first + { title: doc.get(Ddr::IndexFields::DEFAULT_LICENSE_TITLE), + description: doc.get(Ddr::IndexFields::DEFAULT_LICENSE_DESCRIPTION), + url: doc.get(Ddr::IndexFields::DEFAULT_LICENSE_URL) } + end + end + + def license + if get(Ddr::IndexFields::LICENSE_TITLE) || get(Ddr::IndexFields::LICENSE_DESCRIPTION) || get(Ddr::IndexFields::LICENSE_URL) + { title: get(Ddr::IndexFields::LICENSE_TITLE), + description: get(Ddr::IndexFields::LICENSE_DESCRIPTION), + url: get(Ddr::IndexFields::LICENSE_URL) } + end + end + + def effective_license + @effective_license ||= license || inherited_license || {} + end + + def permanent_id + get(Ddr::IndexFields::PERMANENT_ID) end private def targets_query