git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@10771 e93f8b46-1217-0410-a6f0-8f06a7374b81tags/2.2.0
rescue ActiveRecord::RecordNotFound | rescue ActiveRecord::RecordNotFound | ||||
# When grouping by an association, Rails throws this exception if there's no result (bug) | # When grouping by an association, Rails throws this exception if there's no result (bug) | ||||
end | end | ||||
counts = h.keys.compact.sort.collect {|k| {:group => k, :total => h[k][0], :open => h[k][1], :closed => (h[k][0] - h[k][1])}} | |||||
# Sort with nil keys in last position | |||||
counts = h.keys.sort {|a,b| a.nil? ? 1 : (b.nil? ? -1 : a <=> b)}.collect {|k| {:group => k, :total => h[k][0], :open => h[k][1], :closed => (h[k][0] - h[k][1])}} | |||||
max = counts.collect {|c| c[:total]}.max | max = counts.collect {|c| c[:total]}.max | ||||
render :partial => 'issue_counts', :locals => {:version => version, :criteria => criteria, :counts => counts, :max => max} | render :partial => 'issue_counts', :locals => {:version => version, :criteria => criteria, :counts => counts, :max => max} |
<% counts.each do |count| %> | <% counts.each do |count| %> | ||||
<tr> | <tr> | ||||
<td width="130px" align="right" > | <td width="130px" align="right" > | ||||
<%= link_to h(count[:group]), {:controller => 'issues', | |||||
:action => 'index', | |||||
:project_id => version.project, | |||||
:set_filter => 1, | |||||
:status_id => '*', | |||||
:fixed_version_id => version}.merge("#{criteria}_id".to_sym => count[:group]) %> | |||||
<% if count[:group] -%> | |||||
<%= link_to(h(count[:group]), project_issues_path(version.project, :set_filter => 1, :status_id => '*', :fixed_version_id => version, "#{criteria}_id" => count[:group])) %> | |||||
<% else -%> | |||||
<%= link_to(l(:label_none), project_issues_path(version.project, :set_filter => 1, :status_id => '*', :fixed_version_id => version, "#{criteria}_id" => "!*")) %> | |||||
<% end %> | |||||
</td> | </td> | ||||
<td width="240px"> | <td width="240px"> | ||||
<%= progress_bar((count[:closed].to_f / count[:total])*100, | <%= progress_bar((count[:closed].to_f / count[:total])*100, |
class VersionsController; def rescue_action(e) raise e end; end | class VersionsController; def rescue_action(e) raise e end; end | ||||
class VersionsControllerTest < ActionController::TestCase | class VersionsControllerTest < ActionController::TestCase | ||||
fixtures :projects, :versions, :issues, :users, :roles, :members, :member_roles, :enabled_modules, :issue_statuses | |||||
fixtures :projects, :versions, :issues, :users, :roles, :members, :member_roles, :enabled_modules, :issue_statuses, :issue_categories | |||||
def setup | def setup | ||||
@controller = VersionsController.new | @controller = VersionsController.new | ||||
assert_tag :tag => 'h2', :content => /1.0/ | assert_tag :tag => 'h2', :content => /1.0/ | ||||
end | end | ||||
def test_show_should_display_nil_counts | |||||
with_settings :default_language => 'en' do | |||||
get :show, :id => 2, :status_by => 'category' | |||||
assert_response :success | |||||
assert_select 'div#status_by' do | |||||
assert_select 'select[name=status_by]' do | |||||
assert_select 'option[value=category][selected=selected]' | |||||
end | |||||
assert_select 'a', :text => 'none' | |||||
end | |||||
end | |||||
end | |||||
def test_new | def test_new | ||||
@request.session[:user_id] = 2 | @request.session[:user_id] = 2 | ||||
get :new, :project_id => '1' | get :new, :project_id => '1' |