Fixed that the bulk edit/copy form does not propose versions and categories for the target project (#10350).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9046 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
ac46497f1a
commit
7448e0dbc4
@ -221,7 +221,7 @@ class IssuesController < ApplicationController
|
|||||||
if User.current.allowed_to?(:move_issues, @projects)
|
if User.current.allowed_to?(:move_issues, @projects)
|
||||||
@allowed_projects = Issue.allowed_target_projects_on_move
|
@allowed_projects = Issue.allowed_target_projects_on_move
|
||||||
if params[:issue]
|
if params[:issue]
|
||||||
@target_project = @allowed_projects.detect {|p| p.id.to_s == params[:issue][:project_id]}
|
@target_project = @allowed_projects.detect {|p| p.id.to_s == params[:issue][:project_id].to_s}
|
||||||
if @target_project
|
if @target_project
|
||||||
target_projects = [@target_project]
|
target_projects = [@target_project]
|
||||||
end
|
end
|
||||||
@ -233,6 +233,8 @@ class IssuesController < ApplicationController
|
|||||||
@custom_fields = target_projects.map{|p|p.all_issue_custom_fields}.reduce(:&)
|
@custom_fields = target_projects.map{|p|p.all_issue_custom_fields}.reduce(:&)
|
||||||
@assignables = target_projects.map(&:assignable_users).reduce(:&)
|
@assignables = target_projects.map(&:assignable_users).reduce(:&)
|
||||||
@trackers = target_projects.map(&:trackers).reduce(:&)
|
@trackers = target_projects.map(&:trackers).reduce(:&)
|
||||||
|
@versions = target_projects.map {|p| p.shared_versions.open}.reduce(:&)
|
||||||
|
@categories = target_projects.map {|p| p.issue_categories}.reduce(:&)
|
||||||
|
|
||||||
@safe_attributes = @issues.map(&:safe_attribute_names).reduce(:&)
|
@safe_attributes = @issues.map(&:safe_attribute_names).reduce(:&)
|
||||||
render :layout => false if request.xhr?
|
render :layout => false if request.xhr?
|
||||||
|
@ -43,23 +43,18 @@
|
|||||||
content_tag('option', l(:label_nobody), :value => 'none') +
|
content_tag('option', l(:label_nobody), :value => 'none') +
|
||||||
principals_options_for_select(@assignables)) %>
|
principals_options_for_select(@assignables)) %>
|
||||||
</p>
|
</p>
|
||||||
<% if @project %>
|
|
||||||
<p>
|
<p>
|
||||||
<label for='issue_category_id'><%= l(:field_category) %></label>
|
<label for='issue_category_id'><%= l(:field_category) %></label>
|
||||||
<%= select_tag('issue[category_id]', content_tag('option', l(:label_no_change_option), :value => '') +
|
<%= select_tag('issue[category_id]', content_tag('option', l(:label_no_change_option), :value => '') +
|
||||||
content_tag('option', l(:label_none), :value => 'none') +
|
content_tag('option', l(:label_none), :value => 'none') +
|
||||||
options_from_collection_for_select(@project.issue_categories, :id, :name)) %>
|
options_from_collection_for_select(@categories, :id, :name)) %>
|
||||||
</p>
|
</p>
|
||||||
<% end %>
|
|
||||||
<% #TODO: allow editing versions when multiple projects %>
|
|
||||||
<% if @project %>
|
|
||||||
<p>
|
<p>
|
||||||
<label for='issue_fixed_version_id'><%= l(:field_fixed_version) %></label>
|
<label for='issue_fixed_version_id'><%= l(:field_fixed_version) %></label>
|
||||||
<%= select_tag('issue[fixed_version_id]', content_tag('option', l(:label_no_change_option), :value => '') +
|
<%= select_tag('issue[fixed_version_id]', content_tag('option', l(:label_no_change_option), :value => '') +
|
||||||
content_tag('option', l(:label_none), :value => 'none') +
|
content_tag('option', l(:label_none), :value => 'none') +
|
||||||
version_options_for_select(@project.shared_versions.open.sort)) %>
|
version_options_for_select(@versions.sort)) %>
|
||||||
</p>
|
</p>
|
||||||
<% end %>
|
|
||||||
|
|
||||||
<% @custom_fields.each do |custom_field| %>
|
<% @custom_fields.each do |custom_field| %>
|
||||||
<p><label><%= h(custom_field.name) %></label> <%= custom_field_tag_for_bulk_edit('issue', custom_field, @projects) %></p>
|
<p><label><%= h(custom_field.name) %></label> <%= custom_field_tag_for_bulk_edit('issue', custom_field, @projects) %></p>
|
||||||
|
@ -2672,6 +2672,28 @@ class IssuesControllerTest < ActionController::TestCase
|
|||||||
:children => {:count => 3} # 2 statuses + "no change" option
|
:children => {:count => 3} # 2 statuses + "no change" option
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_bulk_edit_should_propose_target_project_open_shared_versions
|
||||||
|
@request.session[:user_id] = 2
|
||||||
|
post :bulk_edit, :ids => [1, 2, 6], :issue => {:project_id => 1}
|
||||||
|
assert_response :success
|
||||||
|
assert_template 'bulk_edit'
|
||||||
|
assert_equal Project.find(1).shared_versions.open.all.sort, assigns(:versions).sort
|
||||||
|
assert_tag 'select',
|
||||||
|
:attributes => {:name => 'issue[fixed_version_id]'},
|
||||||
|
:descendant => {:tag => 'option', :content => '2.0'}
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_bulk_edit_should_propose_target_project_categories
|
||||||
|
@request.session[:user_id] = 2
|
||||||
|
post :bulk_edit, :ids => [1, 2, 6], :issue => {:project_id => 1}
|
||||||
|
assert_response :success
|
||||||
|
assert_template 'bulk_edit'
|
||||||
|
assert_equal Project.find(1).issue_categories.sort, assigns(:categories).sort
|
||||||
|
assert_tag 'select',
|
||||||
|
:attributes => {:name => 'issue[category_id]'},
|
||||||
|
:descendant => {:tag => 'option', :content => 'Recipes'}
|
||||||
|
end
|
||||||
|
|
||||||
def test_bulk_update
|
def test_bulk_update
|
||||||
@request.session[:user_id] = 2
|
@request.session[:user_id] = 2
|
||||||
# update issues priority
|
# update issues priority
|
||||||
|
Loading…
x
Reference in New Issue
Block a user