diff options
author | Eric Davis <edavis@littlestreamsoftware.com> | 2010-02-23 17:06:08 +0000 |
---|---|---|
committer | Eric Davis <edavis@littlestreamsoftware.com> | 2010-02-23 17:06:08 +0000 |
commit | f838904a7ead46c040e59c016275889f3d31ba56 (patch) | |
tree | 476aede37b2cc78165565268db95f4c8c1dca8a1 /app/models | |
parent | 89cf2d256dd4a2072b223f7d8117cb4997ae86d8 (diff) | |
download | redmine-f838904a7ead46c040e59c016275889f3d31ba56.tar.gz redmine-f838904a7ead46c040e59c016275889f3d31ba56.zip |
Refactor: Extract Issue#bulk_edit from the IssuesController
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3475 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/issue.rb | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/app/models/issue.rb b/app/models/issue.rb index 7264b0cb0..8a1413600 100644 --- a/app/models/issue.rb +++ b/app/models/issue.rb @@ -136,6 +136,24 @@ class Issue < ActiveRecord::Base end return issue end + + def bulk_edit(params) + journal = init_journal(User.current, params[:notes]) + self.tracker = params[:tracker] if params[:tracker] + self.priority = params[:priority] if params[:priority] + self.assigned_to = params[:assigned_to] if params[:assigned_to] || params[:assigned_to_id] == 'none' + self.category = params[:category] if params[:category] || params[:category_id] == 'none' + self.fixed_version = params[:fixed_version] if params[:fixed_version] || params[:fixed_version_id] == 'none' + self.start_date = params[:start_date] unless params[:start_date].blank? + self.due_date = params[:due_date] unless params[:due_date].blank? + self.done_ratio = params[:done_ratio] unless params[:done_ratio].blank? + self.custom_field_values = params[:custom_field_values] if params[:custom_field_values] && !params[:custom_field_values].empty? + # TODO: Edit hook name + Redmine::Hook.call_hook(:controller_issues_bulk_edit_before_save, { :params => params, :issue => self }) + + # Don't save any change to the issue if the user is not authorized to apply the requested status + return (params[:status].nil? || (new_statuses_allowed_to(User.current).include?(params[:status]) && self.status = params[:status])) && save + end def priority_id=(pid) self.priority = nil |