lib/ddr/models/solr_document.rb in ddr-models-1.16.2 vs lib/ddr/models/solr_document.rb in ddr-models-1.17.0

- old
+ new

@@ -211,10 +211,19 @@ def access_role get("access_role_ssi") end + def display_format + get(Ddr::IndexFields::DISPLAY_FORMAT) + end + + def research_help + research_help_contact = self[Ddr::IndexFields::RESEARCH_HELP_CONTACT] || inherited_research_help_contact + Ddr::Contacts.get(research_help_contact) if research_help_contact + end + private def targets_query "#{Ddr::IndexFields::IS_EXTERNAL_TARGET_FOR}:#{internal_uri_for_query}" end @@ -235,9 +244,18 @@ Time.parse(date).localtime if date end def get_pid(field) ActiveFedora::Base.pid_from_uri(get(field)) rescue nil + end + + def inherited_research_help_contact + 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 + doc[Ddr::IndexFields::RESEARCH_HELP_CONTACT].first + end end end end end