diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2008-03-27 18:22:12 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2008-03-27 18:22:12 +0000 |
commit | 89602004098de22c59e668ad814969f5f12cd80b (patch) | |
tree | 7947dff042afeab4a171b8f10c15d1fe45133719 /app/controllers | |
parent | ef80597c39e02d5e209f5c3dadcf27096b21120b (diff) | |
download | redmine-89602004098de22c59e668ad814969f5f12cd80b.tar.gz redmine-89602004098de22c59e668ad814969f5f12cd80b.zip |
If 'Display subprojects issues on main projects' is set to false:
* do not include subprojects in the issue count of the parent project overview (#939)
* do not include subproject timelogs on the parent project (#848)
git-svn-id: http://redmine.rubyforge.org/svn/trunk@1298 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/controllers')
-rw-r--r-- | app/controllers/projects_controller.rb | 8 | ||||
-rw-r--r-- | app/controllers/timelog_controller.rb | 4 |
2 files changed, 7 insertions, 5 deletions
diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index dbd36f6e4..199b2f0c5 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -90,18 +90,20 @@ class ProjectsController < ApplicationController @subprojects = @project.active_children @news = @project.news.find(:all, :limit => 5, :include => [ :author, :project ], :order => "#{News.table_name}.created_on DESC") @trackers = @project.rolled_up_trackers + + cond = @project.project_condition(Setting.display_subprojects_issues?) Issue.visible_by(User.current) do @open_issues_by_tracker = Issue.count(:group => :tracker, :include => [:project, :status, :tracker], - :conditions => ["(#{Project.table_name}.id=? OR #{Project.table_name}.parent_id=?) and #{IssueStatus.table_name}.is_closed=?", @project.id, @project.id, false]) + :conditions => ["(#{cond}) AND #{IssueStatus.table_name}.is_closed=?", false]) @total_issues_by_tracker = Issue.count(:group => :tracker, :include => [:project, :status, :tracker], - :conditions => ["#{Project.table_name}.id=? OR #{Project.table_name}.parent_id=?", @project.id, @project.id]) + :conditions => cond) end TimeEntry.visible_by(User.current) do @total_hours = TimeEntry.sum(:hours, :include => :project, - :conditions => ["(#{Project.table_name}.id = ? OR #{Project.table_name}.parent_id = ?)", @project.id, @project.id]).to_f + :conditions => cond).to_f end @key = User.current.rss_key end diff --git a/app/controllers/timelog_controller.rb b/app/controllers/timelog_controller.rb index d767037eb..8cfe225d1 100644 --- a/app/controllers/timelog_controller.rb +++ b/app/controllers/timelog_controller.rb @@ -72,7 +72,7 @@ class TimelogController < ApplicationController sql << " FROM #{TimeEntry.table_name}" sql << " LEFT JOIN #{Issue.table_name} ON #{TimeEntry.table_name}.issue_id = #{Issue.table_name}.id" sql << " LEFT JOIN #{Project.table_name} ON #{TimeEntry.table_name}.project_id = #{Project.table_name}.id" - sql << " WHERE (#{Project.table_name}.id = %s OR #{Project.table_name}.parent_id = %s)" % [@project.id, @project.id] + sql << " WHERE (%s)" % @project.project_condition(Setting.display_subprojects_issues?) sql << " AND (%s)" % Project.allowed_to_condition(User.current, :view_time_entries) sql << " AND spent_on BETWEEN '%s' AND '%s'" % [ActiveRecord::Base.connection.quoted_date(@date_from.to_time), ActiveRecord::Base.connection.quoted_date(@date_to.to_time)] sql << " GROUP BY #{sql_group_by}, tyear, tmonth, tweek" @@ -159,7 +159,7 @@ class TimelogController < ApplicationController @from, @to = @to, @from if @from && @to && @from > @to cond = ARCondition.new - cond << (@issue.nil? ? ["(#{Project.table_name}.id = ? OR #{Project.table_name}.parent_id = ?)", @project.id, @project.id] : + cond << (@issue.nil? ? @project.project_condition(Setting.display_subprojects_issues?) : ["#{TimeEntry.table_name}.issue_id = ?", @issue.id]) if @from |