Actions
Defect #38023
openModel hook: model_project_copy_before_save misses options[:only]
Status:
New
Priority:
Normal
Assignee:
-
Category:
Projects
Target version:
-
Start date:
Due date:
% Done:
0%
Estimated time:
Resolution:
Affected version:
Description
The model hook is implemented in Project#copy:
def copy(project, options={}) project = project.is_a?(Project) ? project : Project.find(project) to_be_copied = %w(members wiki versions issue_categories issues queries boards documents) to_be_copied = to_be_copied & Array.wrap(options[:only]) unless options[:only].nil? Project.transaction do if save reload self.attachments = project.attachments.map do |attachment| attachment.copy(:container => self) end to_be_copied.each do |name| send "copy_#{name}", project end Redmine::Hook.call_hook(:model_project_copy_before_save, :source_project => project, :destination_project => self) <--- No options[:only] containing modules selected to be copied!!!! save else false end end end
This is my proposal for the hook above:
def copy(project, options={}) project = project.is_a?(Project) ? project : Project.find(project) selection = options[:only] to_be_copied = %w[members wiki versions issue_categories issues queries boards documents] to_be_copied = to_be_copied & Array.wrap(selection) if selection Project.transaction do if save reload self.attachments = project.attachments.map do |attachment| attachment.copy(container: self) end to_be_copied.each do |name| send "copy_#{name}", project end Redmine::Hook.call_hook(:model_project_copy_before_save, source_project: project, destination_project: self, selection: selection) save else false end end end
It affects all (latest) Redmine Versions.
No data to display
Actions