From 320c191f04d84bbf9e1f97a8c93d87719a7a27c6 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Mon, 18 Jan 2010 18:00:27 +0000 Subject: [PATCH] Fixed: PDF export of a issue list grouped by a custom field raises an error (#4600). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3333 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/controllers/issues_controller.rb | 1 + lib/redmine/export/pdf.rb | 10 ++++++---- test/functional/issues_controller_test.rb | 8 ++++++++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index c0d791e4b..a8dd3d83f 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -40,6 +40,7 @@ class IssuesController < ApplicationController helper :attachments include AttachmentsHelper helper :queries + include QueriesHelper helper :sort include SortHelper include IssuesHelper diff --git a/lib/redmine/export/pdf.rb b/lib/redmine/export/pdf.rb index 5242cb37f..c80880afa 100644 --- a/lib/redmine/export/pdf.rb +++ b/lib/redmine/export/pdf.rb @@ -144,13 +144,15 @@ module Redmine # rows pdf.SetFontStyle('',8) pdf.SetFillColor(255, 255, 255) - group = false + previous_group = false issues.each do |issue| - if query.grouped? && issue.send(query.group_by) != group - group = issue.send(query.group_by) + if query.grouped? && (group = query.group_by_column.value(issue)) != previous_group pdf.SetFontStyle('B',9) - pdf.Cell(277, row_height, "#{group.blank? ? 'None' : group.to_s}", 1, 1, 'L') + pdf.Cell(277, row_height, + (group.blank? ? 'None' : group.to_s) + " (#{@issue_count_by_group[group]})", + 1, 1, 'L') pdf.SetFontStyle('',8) + previous_group = group end pdf.Cell(15, row_height, issue.id.to_s, 1, 0, 'L', 1) query.columns.each_with_index do |column, i| diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb index 78ab04e1b..604ab66f5 100644 --- a/test/functional/issues_controller_test.rb +++ b/test/functional/issues_controller_test.rb @@ -236,6 +236,14 @@ class IssuesControllerTest < ActionController::TestCase assert_equal 'application/pdf', @response.content_type end + def test_index_pdf_with_query_grouped_by_list_custom_field + get :index, :project_id => 1, :query_id => 9, :format => 'pdf' + assert_response :success + assert_not_nil assigns(:issues) + assert_not_nil assigns(:issue_count_by_group) + assert_equal 'application/pdf', @response.content_type + end + def test_index_sort get :index, :sort => 'tracker,id:desc' assert_response :success -- 2.39.5