Do not show inactive issue priorities where not necessary (#8573).

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@6070 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Baptiste Barth 2011-06-13 19:43:40 +00:00
parent bbf1ae581e
commit d5cc7424a8
8 changed files with 57 additions and 6 deletions

View File

@ -35,7 +35,7 @@ class ContextMenusController < ApplicationController
@trackers = @projects.map(&:trackers).inject{|memo,t| memo & t}
end
@priorities = IssuePriority.all.reverse
@priorities = IssuePriority.active.reverse
@statuses = IssueStatus.find(:all, :order => 'position')
@back = back_url

View File

@ -115,7 +115,7 @@ class IssuesController < ApplicationController
@relations = @issue.relations.select {|r| r.other_issue(@issue) && r.other_issue(@issue).visible? }
@allowed_statuses = @issue.new_statuses_allowed_to(User.current)
@edit_allowed = User.current.allowed_to?(:edit_issues, @project)
@priorities = IssuePriority.all
@priorities = IssuePriority.active
@time_entry = TimeEntry.new(:issue => @issue, :project => @issue.project)
respond_to do |format|
format.html { render :template => 'issues/show.rhtml' }
@ -279,7 +279,7 @@ private
# TODO: Refactor, not everything in here is needed by #edit
def update_issue_from_params
@allowed_statuses = @issue.new_statuses_allowed_to(User.current)
@priorities = IssuePriority.all
@priorities = IssuePriority.active
@edit_allowed = User.current.allowed_to?(:edit_issues, @project)
@time_entry = TimeEntry.new(:issue => @issue, :project => @issue.project)
@time_entry.attributes = params[:time_entry]
@ -315,7 +315,7 @@ private
@issue.watcher_user_ids = params[:issue]['watcher_user_ids']
end
end
@priorities = IssuePriority.all
@priorities = IssuePriority.active
@allowed_statuses = @issue.new_statuses_allowed_to(User.current, true)
end

View File

@ -32,7 +32,7 @@
<p>
<label><%= l(:field_priority) %></label>
<%= select_tag('priority_id', "<option value=\"\">#{l(:label_no_change_option)}</option>" + options_from_collection_for_select(IssuePriority.all, :id, :name)) %>
<%= select_tag('priority_id', "<option value=\"\">#{l(:label_no_change_option)}</option>" + options_from_collection_for_select(IssuePriority.active, :id, :name)) %>
</p>
<p>

View File

@ -21,7 +21,7 @@
<% end %>
<p>
<label><%= l(:field_priority) %></label>
<%= select_tag('issue[priority_id]', "<option value=\"\">#{l(:label_no_change_option)}</option>" + options_from_collection_for_select(IssuePriority.all, :id, :name)) %>
<%= select_tag('issue[priority_id]', "<option value=\"\">#{l(:label_no_change_option)}</option>" + options_from_collection_for_select(IssuePriority.active, :id, :name)) %>
</p>
<p>
<label><%= l(:field_assigned_to) %></label>

View File

@ -81,3 +81,9 @@ enumerations_014:
type: TimeEntryActivity
position: 4
active: false
enumerations_015:
name: Inactive Priority
id: 15
type: IssuePriority
position: 6
active: false

View File

@ -17,6 +17,7 @@ class ContextMenusControllerTest < ActionController::TestCase
assert_tag :tag => 'a', :content => 'Immediate',
:attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&amp;issue%5Bpriority_id%5D=8',
:class => '' }
assert_no_tag :tag => 'a', :content => 'Inactive Priority'
# Versions
assert_tag :tag => 'a', :content => '2.0',
:attributes => { :href => '/issues/bulk_edit?ids%5B%5D=1&amp;issue%5Bfixed_version_id%5D=3',

View File

@ -7,6 +7,25 @@ class IssueMovesControllerTest < ActionController::TestCase
User.current = nil
end
def test_get_issue_moves_new
@request.session[:user_id] = 2
get :new, :id => 1
assert_tag :tag => 'option', :content => 'eCookbook',
:attributes => { :value => '1', :selected => 'selected' }
%w(new_tracker_id status_id priority_id assigned_to_id).each do |field|
assert_tag :tag => 'option', :content => '(No change)', :attributes => { :value => '' },
:parent => {:tag => 'select', :attributes => {:id => field}}
assert_no_tag :tag => 'option', :attributes => {:selected => 'selected'},
:parent => {:tag => 'select', :attributes => {:id => field}}
end
# Be sure we don't include inactive enumerations
assert ! IssuePriority.find(15).active?
assert_no_tag :option, :attributes => {:value => '15'},
:parent => {:tag => 'select', :attributes => {:id => 'priority_id'} }
end
def test_create_one_issue_to_another_project
@request.session[:user_id] = 2
post :create, :id => 1, :new_project_id => 2, :tracker_id => '', :assigned_to_id => '', :status_id => '', :start_date => '', :due_date => ''

View File

@ -318,6 +318,16 @@ class IssuesControllerTest < ActionController::TestCase
:content => /Notes/ } }
end
def test_update_form_should_not_display_inactive_enumerations
@request.session[:user_id] = 2
get :show, :id => 1
assert_response :success
assert ! IssuePriority.find(15).active?
assert_no_tag :option, :attributes => {:value => '15'},
:parent => {:tag => 'select', :attributes => {:id => 'issue_priority_id'} }
end
def test_show_should_deny_anonymous_access_without_permission
Role.anonymous.remove_permission!(:view_issues)
get :show, :id => 1
@ -419,6 +429,11 @@ class IssuesControllerTest < ActionController::TestCase
assert_tag :tag => 'input', :attributes => { :name => 'issue[custom_field_values][2]',
:value => 'Default string' }
# Be sure we don't display inactive IssuePriorities
assert ! IssuePriority.find(15).active?
assert_no_tag :option, :attributes => {:value => '15'},
:parent => {:tag => 'select', :attributes => {:id => 'issue_priority_id'} }
end
def test_get_new_without_tracker_id
@ -833,6 +848,11 @@ class IssuesControllerTest < ActionController::TestCase
assert_template 'edit'
assert_not_nil assigns(:issue)
assert_equal Issue.find(1), assigns(:issue)
# Be sure we don't display inactive IssuePriorities
assert ! IssuePriority.find(15).active?
assert_no_tag :option, :attributes => {:value => '15'},
:parent => {:tag => 'select', :attributes => {:id => 'issue_priority_id'} }
end
def test_get_edit_with_params
@ -1185,6 +1205,11 @@ class IssuesControllerTest < ActionController::TestCase
# System wide custom field
assert CustomField.find(1).is_for_all?
assert_tag :select, :attributes => {:name => 'issue[custom_field_values][1]'}
# Be sure we don't display inactive IssuePriorities
assert ! IssuePriority.find(15).active?
assert_no_tag :option, :attributes => {:value => '15'},
:parent => {:tag => 'select', :attributes => {:id => 'issue_priority_id'} }
end
def test_get_bulk_edit_on_different_projects