diff --git a/app/controllers/application_controller/report_data_additional_options.rb b/app/controllers/application_controller/report_data_additional_options.rb index b35163927ef..3f35e5b9a22 100644 --- a/app/controllers/application_controller/report_data_additional_options.rb +++ b/app/controllers/application_controller/report_data_additional_options.rb @@ -5,6 +5,7 @@ class ApplicationController :model, :match_via_descendants, :parent_id, + :parent_class_name, :parent_method, :association, :view_suffix @@ -16,6 +17,7 @@ def self.from_options(options) additional_options.with_model(options[:model]) if options[:model] additional_options.match_via_descendants = options[:match_via_descendants] additional_options.parent_id = options[:parent].id if options[:parent] + additional_options.parent_class_name = options[:parent].class.name if options[:parent] additional_options.association = options[:association] additional_options.view_suffix = options[:view_suffix] additional_options.parent_method = options[:parent_method] diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index b07cd81028f..6294a89be35 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1639,6 +1639,11 @@ def from_additional_options(additional_options) if additional_options[:match_via_descendants].present? additional_options[:match_via_descendants] = additional_options[:match_via_descendants].constantize end + if additional_options[:parent_id].present? && additional_options[:parent_class_name].present? + parent_id = from_cid(additional_options[:parent_id]) + parent_class = additional_options[:parent_class_name].constantize + additional_options[:parent] = parent_class.find(parent_id) if parent_class < ActiveRecord::Base + end additional_options end