Sha256: 2e4f5ea59c7a36f7cb6a0173e33095986dd68d9456e236a1bd12d42584effda2
Contents?: true
Size: 1.44 KB
Versions: 3
Compression:
Stored size: 1.44 KB
Contents
# Search for possible works that user can edit and could be a work's child or parent. class Sufia::FindWorksSearchBuilder < Sufia::SearchBuilder include Sufia::MySearchBuilderBehavior include CurationConcerns::FilterByType self.default_processor_chain += [:filter_on_title, :show_only_resources_deposited_by_current_user, :show_only_other_works, :show_only_works_not_child, :show_only_works_not_parent] def initialize(context) super(context) @id = context.params[:id] @q = context.params[:q] end def filter_on_title(solr_parameters) solr_parameters[:fq] ||= [] solr_parameters[:fq] += [ActiveFedora::SolrQueryBuilder.construct_query(title_tesim: @q)] end def show_only_other_works(solr_parameters) solr_parameters[:fq] ||= [] solr_parameters[:fq] += [ "-" + ActiveFedora::SolrQueryBuilder.construct_query_for_ids([@id]) ] end def show_only_works_not_child(solr_parameters) ids = ActiveFedora::SolrService.query("{!field f=id}#{@id}", fl: "member_ids_ssim", rows: 10_000).flat_map { |x| x.fetch("member_ids_ssim", []) } solr_parameters[:fq] ||= [] solr_parameters[:fq] += [ "-" + ActiveFedora::SolrQueryBuilder.construct_query_for_ids(ids) ] end def show_only_works_not_parent(solr_parameters) solr_parameters[:fq] ||= [] solr_parameters[:fq] += [ "-" + ActiveFedora::SolrQueryBuilder.construct_query(member_ids_ssim: @id) ] end def only_works? true end end
Version data entries
3 entries across 3 versions & 1 rubygems