diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2007-04-03 19:48:49 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2007-04-03 19:48:49 +0000 |
commit | 52ced19e2e58b420c83c3dda0637439209f85f4f (patch) | |
tree | 20377bbec416c204e343b82d3366bcbc22f6630b /app/controllers/reports_controller.rb | |
parent | 1c0971b12c6060144e2ea067d93f8e44e8046988 (diff) | |
download | redmine-52ced19e2e58b420c83c3dda0637439209f85f4f.tar.gz redmine-52ced19e2e58b420c83c3dda0637439209f85f4f.zip |
Added subprojects issue count on project "Reports" page
git-svn-id: http://redmine.rubyforge.org/svn/trunk@410 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/controllers/reports_controller.rb')
-rw-r--r-- | app/controllers/reports_controller.rb | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/app/controllers/reports_controller.rb b/app/controllers/reports_controller.rb index ab648460b..5536e272c 100644 --- a/app/controllers/reports_controller.rb +++ b/app/controllers/reports_controller.rb @@ -47,16 +47,24 @@ class ReportsController < ApplicationController @data = issues_by_author @report_title = l(:field_author) render :template => "reports/issue_report_details" + when "subproject" + @field = "project_id" + @rows = @project.children + @data = issues_by_subproject + @report_title = l(:field_subproject) + render :template => "reports/issue_report_details" else @queries = @project.queries.find :all, :conditions => ["is_public=? or user_id=?", true, (logged_in_user ? logged_in_user.id : 0)] @trackers = Tracker.find(:all, :order => 'position') @priorities = Enumeration::get_values('IPRI') @categories = @project.issue_categories @authors = @project.members.collect { |m| m.user } + @subprojects = @project.children issues_by_tracker issues_by_priority issues_by_category issues_by_author + issues_by_subproject @total_hours = @project.time_entries.sum(:hours) render :template => "reports/issue_report" end @@ -165,4 +173,19 @@ private and i.project_id=#{@project.id} group by s.id, s.is_closed, a.id") end + + def issues_by_subproject + @issues_by_subproject ||= + ActiveRecord::Base.connection.select_all("select s.id as status_id, + s.is_closed as closed, + i.project_id as project_id, + count(i.id) as total + from + #{Issue.table_name} i, #{IssueStatus.table_name} s + where + i.status_id=s.id + and i.project_id IN (#{@project.children.collect{|p| p.id}.join(',')}) + group by s.id, s.is_closed, i.project_id") if @project.children.any? + @issues_by_subproject ||= [] + end end |