2018-11-18 11:00:15 +05:30
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2018-03-17 18:26:18 +05:30
|
|
|
module Banzai
|
|
|
|
module Filter
|
|
|
|
class IssuableReferenceFilter < AbstractReferenceFilter
|
|
|
|
def records_per_parent
|
|
|
|
@records_per_project ||= {}
|
|
|
|
|
|
|
|
@records_per_project[object_class.to_s.underscore] ||= begin
|
|
|
|
hash = Hash.new { |h, k| h[k] = {} }
|
|
|
|
|
|
|
|
parent_per_reference.each do |path, parent|
|
|
|
|
record_ids = references_per_parent[path]
|
|
|
|
|
|
|
|
parent_records(parent, record_ids).each do |record|
|
|
|
|
hash[parent][record.iid.to_i] = record
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
hash
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def find_object(parent, iid)
|
|
|
|
records_per_parent[parent][iid]
|
|
|
|
end
|
|
|
|
|
|
|
|
def parent_from_ref(ref)
|
|
|
|
parent_per_reference[ref || current_parent_path]
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|