2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# redMine - project management software  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Copyright (C) 2006-2007  Jean-Philippe Lang  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# This program is free software; you can redistribute it and/or  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# modify it under the terms of the GNU General Public License  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# as published by the Free Software Foundation; either version 2  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# of the License, or (at your option) any later version.  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#   
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# This program is distributed in the hope that it will be useful,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# but WITHOUT ANY WARRANTY; without even the implied warranty of  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# GNU General Public License for more details.  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#   
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# You should have received a copy of the GNU General Public License  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# along with this program; if not, write to the Free Software  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								class  ProjectsController  <  ApplicationController  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  layout  'base' 
							 
						 
					
						
							
								
									
										
										
										
											2008-01-19 11:53:43 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  menu_item  :overview 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  menu_item  :activity ,  :only  = >  :activity 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  menu_item  :roadmap ,  :only  = >  :roadmap 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  menu_item  :files ,  :only  = >  [ :list_files ,  :add_file ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  menu_item  :settings ,  :only  = >  :settings 
							 
						 
					
						
							
								
									
										
										
										
											2008-02-10 13:17:41 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  menu_item  :issues ,  :only  = >  [ :changelog ] 
							 
						 
					
						
							
								
									
										
										
										
											2008-01-19 11:53:43 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
									
										
										
										
											2008-03-11 19:33:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  before_filter  :find_project ,  :except  = >  [  :index ,  :list ,  :add ,  :activity  ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  before_filter  :find_optional_project ,  :only  = >  :activity 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  before_filter  :authorize ,  :except  = >  [  :index ,  :list ,  :add ,  :archive ,  :unarchive ,  :destroy ,  :activity  ] 
							 
						 
					
						
							
								
									
										
										
										
											2007-05-27 17:42:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  before_filter  :require_admin ,  :only  = >  [  :add ,  :archive ,  :unarchive ,  :destroy  ] 
							 
						 
					
						
							
								
									
										
										
										
											2007-08-29 16:52:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  accept_key_auth  :activity ,  :calendar 
							 
						 
					
						
							
								
									
										
										
										
											2007-05-06 16:40:33 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  helper  :sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  include  SortHelper 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  helper  :custom_fields 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  include  CustomFieldsHelper    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  helper  :ifpdf 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  include  IfpdfHelper 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-03 17:20:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  helper  :issues 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  helper  IssuesHelper 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  helper  :queries 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  include  QueriesHelper 
							 
						 
					
						
							
								
									
										
										
										
											2007-06-12 20:12:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  helper  :repositories 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  include  RepositoriesHelper 
							 
						 
					
						
							
								
									
										
										
										
											2007-08-26 07:55:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  include  ProjectsHelper 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
									
										
										
										
											2006-07-03 19:38:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  def  index 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    list 
							 
						 
					
						
							
								
									
										
										
										
											2006-10-21 10:38:53 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    render  :action  = >  'list'  unless  request . xhr? 
							 
						 
					
						
							
								
									
										
										
										
											2006-07-03 19:38:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2007-09-14 19:55:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  # Lists visible projects 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  def  list 
							 
						 
					
						
							
								
									
										
										
										
											2007-09-14 19:55:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    projects  =  Project . find  :all , 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-20 15:40:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            :conditions  = >  Project . visible_by ( User . current ) , 
							 
						 
					
						
							
								
									
										
										
										
											2007-09-14 19:55:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                            :include  = >  :parent 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @project_tree  =  projects . group_by  { | p |  p . parent  ||  p } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @project_tree . each_key  { | p |  @project_tree [ p ]  -=  [ p ] } 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2007-09-14 19:55:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
									
										
										
										
											2006-06-28 18:11:03 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								  # Add a new project 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  def  add 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-12 17:23:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @custom_fields  =  IssueCustomField . find ( :all ,  :order  = >  " #{ CustomField . table_name } .position " ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-20 20:29:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @trackers  =  Tracker . all 
							 
						 
					
						
							
								
									
										
										
										
											2007-12-03 10:28:08 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @root_projects  =  Project . find ( :all , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                  :conditions  = >  " parent_id IS NULL AND status =  #{ Project :: STATUS_ACTIVE } " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                  :order  = >  'name' ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @project  =  Project . new ( params [ :project ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-09-15 08:56:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @project . enabled_module_names  =  Redmine :: AccessControl . available_project_modules 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  request . get? 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-12 17:23:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      @custom_values  =  ProjectCustomField . find ( :all ,  :order  = >  " #{ CustomField . table_name } .position " ) . collect  {  | x |  CustomValue . new ( :custom_field  = >  x ,  :customized  = >  @project )  } 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-20 20:29:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      @project . trackers  =  Tracker . all 
							 
						 
					
						
							
								
									
										
										
										
											2008-03-12 19:58:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      @project . is_public  =  Setting . default_projects_public? 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      @project . custom_fields  =  CustomField . find ( params [ :custom_field_ids ] )  if  params [ :custom_field_ids ] 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-12 17:23:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      @custom_values  =  ProjectCustomField . find ( :all ,  :order  = >  " #{ CustomField . table_name } .position " ) . collect  {  | x |  CustomValue . new ( :custom_field  = >  x ,  :customized  = >  @project ,  :value  = >  ( params [ :custom_fields ]  ?  params [ " custom_fields " ] [ x . id . to_s ]  :  nil ) )  } 
							 
						 
					
						
							
								
									
										
										
										
											2007-09-14 11:34:08 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      @project . custom_values  =  @custom_values 
							 
						 
					
						
							
								
									
										
										
										
											2006-07-09 16:30:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      if  @project . save 
							 
						 
					
						
							
								
									
										
										
										
											2007-09-14 11:34:08 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        @project . enabled_module_names  =  params [ :enabled_modules ] 
							 
						 
					
						
							
								
									
										
										
										
											2006-07-30 10:47:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        flash [ :notice ]  =  l ( :notice_successful_create ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        redirect_to  :controller  = >  'admin' ,  :action  = >  'projects' 
							 
						 
					
						
							
								
									
										
										
										
											2008-03-12 19:58:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									    end 		
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    end 	
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  # Show @project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  def  show 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-12 17:23:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @custom_values  =  @project . custom_values . find ( :all ,  :include  = >  :custom_field ,  :order  = >  " #{ CustomField . table_name } .position " ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-04-08 17:44:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @members_by_role  =  @project . members . find ( :all ,  :include  = >  [ :user ,  :role ] ,  :order  = >  'position' ) . group_by  { | m |  m . role } 
							 
						 
					
						
							
								
									
										
										
										
											2007-05-27 17:42:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @subprojects  =  @project . active_children 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-15 22:11:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @news  =  @project . news . find ( :all ,  :limit  = >  5 ,  :include  = >  [  :author ,  :project  ] ,  :order  = >  " #{ News . table_name } .created_on DESC " ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-02-28 21:57:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @trackers  =  @project . rolled_up_trackers 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    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 ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      @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 ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end 
							 
						 
					
						
							
								
									
										
										
										
											2008-02-27 20:50:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    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 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end 
							 
						 
					
						
							
								
									
										
										
										
											2007-08-29 16:52:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @key  =  User . current . rss_key 
							 
						 
					
						
							
								
									
										
										
										
											2006-07-09 16:30:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  def  settings 
							 
						 
					
						
							
								
									
										
										
										
											2007-12-03 10:28:08 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @root_projects  =  Project . find ( :all , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                  :conditions  = >  [ " parent_id IS NULL AND status =  #{ Project :: STATUS_ACTIVE }  AND id <> ? " ,  @project . id ] , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                  :order  = >  'name' ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @custom_fields  =  IssueCustomField . find ( :all ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @issue_category  || =  IssueCategory . new 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @member  || =  @project . members . new 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-20 20:29:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @trackers  =  Tracker . all 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-12 17:23:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @custom_values  || =  ProjectCustomField . find ( :all ,  :order  = >  " #{ CustomField . table_name } .position " ) . collect  {  | x |  @project . custom_values . find_by_custom_field_id ( x . id )  ||  CustomValue . new ( :custom_field  = >  x )  } 
							 
						 
					
						
							
								
									
										
										
										
											2007-09-14 11:34:08 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @repository  || =  @project . repository 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @wiki  || =  @project . wiki 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  # Edit @project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  def  edit 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  request . post? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      if  params [ :custom_fields ] 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-12 17:23:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        @custom_values  =  ProjectCustomField . find ( :all ,  :order  = >  " #{ CustomField . table_name } .position " ) . collect  {  | x |  CustomValue . new ( :custom_field  = >  x ,  :customized  = >  @project ,  :value  = >  params [ " custom_fields " ] [ x . id . to_s ] )  } 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        @project . custom_values  =  @custom_values 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      @project . attributes  =  params [ :project ] 
							 
						 
					
						
							
								
									
										
										
										
											2006-12-24 13:38:45 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      if  @project . save 
							 
						 
					
						
							
								
									
										
										
										
											2006-07-30 10:47:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        flash [ :notice ]  =  l ( :notice_successful_update ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        redirect_to  :action  = >  'settings' ,  :id  = >  @project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        settings 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        render  :action  = >  'settings' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      end 
							 
						 
					
						
							
								
									
										
										
										
											2006-07-09 16:30:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    end 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2007-09-14 11:34:08 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  def  modules 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @project . enabled_module_names  =  params [ :enabled_modules ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    redirect_to  :action  = >  'settings' ,  :id  = >  @project ,  :tab  = >  'modules' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2007-05-27 17:42:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  def  archive 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @project . archive  if  request . post?  &&  @project . active? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    redirect_to  :controller  = >  'admin' ,  :action  = >  'projects' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  def  unarchive 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @project . unarchive  if  request . post?  &&  ! @project . active? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    redirect_to  :controller  = >  'admin' ,  :action  = >  'projects' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
									
										
										
										
											2006-07-29 09:32:58 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  # Delete @project 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  def  destroy 
							 
						 
					
						
							
								
									
										
										
										
											2007-05-27 17:42:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @project_to_destroy  =  @project 
							 
						 
					
						
							
								
									
										
										
										
											2006-06-28 18:11:03 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    if  request . post?  and  params [ :confirm ] 
							 
						 
					
						
							
								
									
										
										
										
											2007-05-27 17:42:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      @project_to_destroy . destroy 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      redirect_to  :controller  = >  'admin' ,  :action  = >  'projects' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end 
							 
						 
					
						
							
								
									
										
										
										
											2007-05-27 17:42:04 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    # hide project in layout 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @project  =  nil 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  # Add a new issue category to @project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  def  add_issue_category 
							 
						 
					
						
							
								
									
										
										
										
											2007-06-29 17:21:37 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @category  =  @project . issue_categories . build ( params [ :category ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  request . post?  and  @category . save 
							 
						 
					
						
							
								
									
										
										
										
											2007-08-16 16:45:06 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  	  respond_to  do  | format | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        format . html  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          flash [ :notice ]  =  l ( :notice_successful_create ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          redirect_to  :action  = >  'settings' ,  :tab  = >  'categories' ,  :id  = >  @project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        format . js  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          # IE doesn't support the replace_html rjs method for select box options 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          render ( :update )  { | page |  page . replace  " issue_category_id " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            content_tag ( 'select' ,  '<option></option>'  +  options_from_collection_for_select ( @project . issue_categories ,  'id' ,  'name' ,  @category . id ) ,  :id  = >  'issue_category_id' ,  :name  = >  'issue[category_id]' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								          } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      end 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    end 
							 
						 
					
						
							
								
									
										
										
										
											2007-06-29 17:21:37 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  # Add a new version to @project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  def  add_version 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  	@version  =  @project . versions . build ( params [ :version ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  	if  request . post?  and  @version . save 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  	  flash [ :notice ]  =  l ( :notice_successful_create ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      redirect_to  :action  = >  'settings' ,  :tab  = >  'versions' ,  :id  = >  @project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  	end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  def  add_file 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  request . post? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      @version  =  @project . versions . find_by_id ( params [ :version_id ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-12-18 19:07:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      attachments  =  attach_files ( @version ,  params [ :attachments ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-12-14 17:33:05 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      Mailer . deliver_attachments_added ( attachments )  if  ! attachments . empty?  &&  Setting . notified_events . include? ( 'file_added' ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      redirect_to  :controller  = >  'projects' ,  :action  = >  'list_files' ,  :id  = >  @project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end 
							 
						 
					
						
							
								
									
										
										
										
											2007-05-20 17:46:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @versions  =  @project . versions . sort 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  def  list_files 
							 
						 
					
						
							
								
									
										
										
										
											2008-03-05 11:54:54 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @versions  =  @project . versions . sort . reverse 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  # Show changelog for @project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  def  changelog 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-20 20:29:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @trackers  =  @project . trackers . find ( :all ,  :conditions  = >  [ " is_in_chlog=? " ,  true ] ,  :order  = >  'position' ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-05-20 17:46:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    retrieve_selected_tracker_ids ( @trackers )     
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @versions  =  @project . versions . sort 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  def  roadmap 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-20 20:29:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @trackers  =  @project . trackers . find ( :all ,  :conditions  = >  [ " is_in_roadmap=? " ,  true ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-05-20 17:46:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    retrieve_selected_tracker_ids ( @trackers ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-08-12 09:58:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @versions  =  @project . versions . sort 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @versions  =  @versions . select  { | v |  ! v . completed?  }  unless  params [ :completed ] 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  def  activity 
							 
						 
					
						
							
								
									
										
										
										
											2008-03-05 13:44:08 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @days  =  Setting . activity_days_default . to_i 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  params [ :from ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      begin ;  @date_to  =  params [ :from ] . to_date ;  rescue ;  end 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-03-05 13:44:08 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @date_to  || =  Date . today  +  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @date_from  =  @date_to  -  @days 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2007-11-07 23:01:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @event_types  =  %w( issues news files documents changesets wiki_pages messages ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-03-11 19:33:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  @project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      @event_types . delete ( 'wiki_pages' )  unless  @project . wiki 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      @event_types . delete ( 'changesets' )  unless  @project . repository 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      @event_types . delete ( 'messages' )  unless  @project . boards . any? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      # only show what the user is allowed to view 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      @event_types  =  @event_types . select  { | o |  User . current . allowed_to? ( " view_ #{ o } " . to_sym ,  @project ) } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      @with_subprojects  =  params [ :with_subprojects ] . nil?  ?  Setting . display_subprojects_issues?  :  ( params [ :with_subprojects ]  ==  '1' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end 
							 
						 
					
						
							
								
									
										
										
										
											2007-08-29 16:52:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @scope  =  @event_types . select  { | t |  params [ " show_ #{ t } " ] } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    # default events if none is specified in parameters 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-07 23:01:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @scope  =  ( @event_types  -  %w( wiki_pages messages ) ) if  @scope . empty? 
							 
						 
					
						
							
								
									
										
										
										
											2007-08-29 16:52:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @events  =  [ ]     
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  @scope . include? ( 'issues' ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-03-11 19:33:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      cond  =  ARCondition . new ( Project . allowed_to_condition ( User . current ,  :view_issues ,  :project  = >  @project ,  :with_subprojects  = >  @with_subprojects ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      cond . add ( [ " #{ Issue . table_name } .created_on BETWEEN ? AND ? " ,  @date_from ,  @date_to ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      @events  +=  Issue . find ( :all ,  :include  = >  [ :project ,  :author ,  :tracker ] ,  :conditions  = >  cond . conditions ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      cond  =  ARCondition . new ( Project . allowed_to_condition ( User . current ,  :view_issues ,  :project  = >  @project ,  :with_subprojects  = >  @with_subprojects ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      cond . add ( [ " #{ Journal . table_name } .journalized_type = 'Issue' AND  #{ JournalDetail . table_name } .prop_key = 'status_id' AND  #{ Journal . table_name } .created_on BETWEEN ? AND ? " ,  @date_from ,  @date_to ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      @events  +=  Journal . find ( :all ,  :include  = >  [ { :issue  = >  :project } ,  :details ,  :user ] ,  :conditions  = >  cond . conditions ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2007-08-29 16:52:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  @scope . include? ( 'news' ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-03-11 19:33:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      cond  =  ARCondition . new ( Project . allowed_to_condition ( User . current ,  :view_news ,  :project  = >  @project ,  :with_subprojects  = >  @with_subprojects ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      cond . add ( [ " #{ News . table_name } .created_on BETWEEN ? AND ? " ,  @date_from ,  @date_to ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      @events  +=  News . find ( :all ,  :include  = >  [ :project ,  :author ] ,  :conditions  = >  cond . conditions ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2007-09-24 17:33:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  @scope . include? ( 'files' ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-03-11 19:33:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      cond  =  ARCondition . new ( Project . allowed_to_condition ( User . current ,  :view_files ,  :project  = >  @project ,  :with_subprojects  = >  @with_subprojects ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      cond . add ( [ " #{ Attachment . table_name } .created_on BETWEEN ? AND ? " ,  @date_from ,  @date_to ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      @events  +=  Attachment . find ( :all ,  :select  = >  " #{ Attachment . table_name } .* " ,  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                       :joins  = >  " LEFT JOIN  #{ Version . table_name }  ON  #{ Attachment . table_name } .container_type='Version' AND  #{ Version . table_name } .id =  #{ Attachment . table_name } .container_id  "  + 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                                 " LEFT JOIN  #{ Project . table_name }  ON  #{ Version . table_name } .project_id =  #{ Project . table_name } .id " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                       :conditions  = >  cond . conditions ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2007-08-29 16:52:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  @scope . include? ( 'documents' ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-03-11 19:33:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      cond  =  ARCondition . new ( Project . allowed_to_condition ( User . current ,  :view_documents ,  :project  = >  @project ,  :with_subprojects  = >  @with_subprojects ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      cond . add ( [ " #{ Document . table_name } .created_on BETWEEN ? AND ? " ,  @date_from ,  @date_to ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      @events  +=  Document . find ( :all ,  :include  = >  :project ,  :conditions  = >  cond . conditions ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      cond  =  ARCondition . new ( Project . allowed_to_condition ( User . current ,  :view_documents ,  :project  = >  @project ,  :with_subprojects  = >  @with_subprojects ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      cond . add ( [ " #{ Attachment . table_name } .created_on BETWEEN ? AND ? " ,  @date_from ,  @date_to ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      @events  +=  Attachment . find ( :all ,  :select  = >  " #{ Attachment . table_name } .* " ,  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                       :joins  = >  " LEFT JOIN  #{ Document . table_name }  ON  #{ Attachment . table_name } .container_type='Document' AND  #{ Document . table_name } .id =  #{ Attachment . table_name } .container_id  "  + 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                                 " LEFT JOIN  #{ Project . table_name }  ON  #{ Document . table_name } .project_id =  #{ Project . table_name } .id " , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                       :conditions  = >  cond . conditions ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2007-09-24 17:33:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  @scope . include? ( 'wiki_pages' ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-04-25 15:06:20 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      select  =  " #{ WikiContent . versioned_table_name } .updated_on,  #{ WikiContent . versioned_table_name } .comments,  "  + 
							 
						 
					
						
							
								
									
										
										
										
											2007-08-29 16:52:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								               " #{ WikiContent . versioned_table_name } . #{ WikiContent . version_column } ,  #{ WikiPage . table_name } .title,  "  + 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               " #{ WikiContent . versioned_table_name } .page_id,  #{ WikiContent . versioned_table_name } .author_id,  "  + 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								               " #{ WikiContent . versioned_table_name } .id " 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-23 15:58:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      joins  =  " LEFT JOIN  #{ WikiPage . table_name }  ON  #{ WikiPage . table_name } .id =  #{ WikiContent . versioned_table_name } .page_id  "  + 
							 
						 
					
						
							
								
									
										
										
										
											2008-03-11 19:33:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								              " LEFT JOIN  #{ Wiki . table_name }  ON  #{ Wiki . table_name } .id =  #{ WikiPage . table_name } .wiki_id  "  + 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								              " LEFT JOIN  #{ Project . table_name }  ON  #{ Project . table_name } .id =  #{ Wiki . table_name } .project_id " 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-23 15:58:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-03-11 19:33:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      cond  =  ARCondition . new ( Project . allowed_to_condition ( User . current ,  :view_wiki_pages ,  :project  = >  @project ,  :with_subprojects  = >  @with_subprojects ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      cond . add ( [ " #{ WikiContent . versioned_table_name } .updated_on BETWEEN ? AND ? " ,  @date_from ,  @date_to ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      @events  +=  WikiContent . versioned_class . find ( :all ,  :select  = >  select ,  :joins  = >  joins ,  :conditions  = >  cond . conditions ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-23 15:58:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2007-09-24 17:33:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  @scope . include? ( 'changesets' ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-03-11 19:33:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      cond  =  ARCondition . new ( Project . allowed_to_condition ( User . current ,  :view_changesets ,  :project  = >  @project ,  :with_subprojects  = >  @with_subprojects ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      cond . add ( [ " #{ Changeset . table_name } .committed_on BETWEEN ? AND ? " ,  @date_from ,  @date_to ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      @events  +=  Changeset . find ( :all ,  :include  = >  { :repository  = >  :project } ,  :conditions  = >  cond . conditions ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-25 12:12:15 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2007-11-07 23:01:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  @scope . include? ( 'messages' ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-03-11 19:33:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      cond  =  ARCondition . new ( Project . allowed_to_condition ( User . current ,  :view_messages ,  :project  = >  @project ,  :with_subprojects  = >  @with_subprojects ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      cond . add ( [ " #{ Message . table_name } .created_on BETWEEN ? AND ? " ,  @date_from ,  @date_to ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      @events  +=  Message . find ( :all ,  :include  = >  [ { :board  = >  :project } ,  :author ] ,  :conditions  = >  cond . conditions ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-07 23:01:24 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2007-08-29 16:52:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @events_by_day  =  @events . group_by ( & :event_date ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    respond_to  do  | format | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      format . html  {  render  :layout  = >  false  if  request . xhr?  } 
							 
						 
					
						
							
								
									
										
										
										
											2008-03-11 19:33:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      format . atom  {  render_feed ( @events ,  :title  = >  " #{ @project  ||  Setting . app_title } :  #{ l ( :label_activity ) } " )  } 
							 
						 
					
						
							
								
									
										
										
										
											2007-08-29 16:52:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    end 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  def  calendar 
							 
						 
					
						
							
								
									
										
										
										
											2008-01-16 21:27:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @trackers  =  @project . rolled_up_trackers 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-31 17:15:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    retrieve_selected_tracker_ids ( @trackers ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  params [ :year ]  and  params [ :year ] . to_i  >  1900 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      @year  =  params [ :year ] . to_i 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      if  params [ :month ]  and  params [ :month ] . to_i  >  0  and  params [ :month ] . to_i  <  13 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        @month  =  params [ :month ] . to_i 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      end     
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @year  || =  Date . today . year 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-07 20:07:11 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @month  || =  Date . today . month     
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @calendar  =  Redmine :: Helpers :: Calendar . new ( Date . civil ( @year ,  @month ,  1 ) ,  current_language ,  :month ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-03-06 08:32:56 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @with_subprojects  =  params [ :with_subprojects ] . nil?  ?  Setting . display_subprojects_issues?  :  ( params [ :with_subprojects ]  ==  '1' ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-07 20:07:11 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    events  =  [ ] 
							 
						 
					
						
							
								
									
										
										
										
											2008-02-28 21:57:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @project . issues_with_subprojects ( @with_subprojects )  do 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-07 20:07:11 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      events  +=  Issue . find ( :all ,  
							 
						 
					
						
							
								
									
										
										
										
											2007-04-27 16:21:53 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                           :include  = >  [ :tracker ,  :status ,  :assigned_to ,  :priority ,  :project ] ,  
							 
						 
					
						
							
								
									
										
										
										
											2007-10-07 20:07:11 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                           :conditions  = >  [ " ((start_date BETWEEN ? AND ?) OR (due_date BETWEEN ? AND ?)) AND  #{ Issue . table_name } .tracker_id IN ( #{ @selected_tracker_ids . join ( ',' ) } ) " ,  @calendar . startdt ,  @calendar . enddt ,  @calendar . startdt ,  @calendar . enddt ] 
							 
						 
					
						
							
								
									
										
										
										
											2007-04-02 17:12:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                           )  unless  @selected_tracker_ids . empty? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-07 20:07:11 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    events  +=  @project . versions . find ( :all ,  :conditions  = >  [ " effective_date BETWEEN ? AND ? " ,  @calendar . startdt ,  @calendar . enddt ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @calendar . events  =  events 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-31 17:15:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    render  :layout  = >  false  if  request . xhr? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  end   
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  def  gantt 
							 
						 
					
						
							
								
									
										
										
										
											2008-01-16 21:27:48 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @trackers  =  @project . rolled_up_trackers 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-31 17:15:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    retrieve_selected_tracker_ids ( @trackers ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  params [ :year ]  and  params [ :year ] . to_i  > 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      @year_from  =  params [ :year ] . to_i 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      if  params [ :month ]  and  params [ :month ] . to_i  > = 1  and  params [ :month ] . to_i  < =  12 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        @month_from  =  params [ :month ] . to_i 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        @month_from  =  1 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-11 20:57:37 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      @month_from  || =  Date . today . month 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      @year_from  || =  Date . today . year 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2007-10-11 20:57:37 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    zoom  =  ( params [ :zoom ]  ||  User . current . pref [ :gantt_zoom ] ) . to_i 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @zoom  =  ( zoom  >  0  &&  zoom  <  5 )  ?  zoom  :  2     
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    months  =  ( params [ :months ]  ||  User . current . pref [ :gantt_months ] ) . to_i 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @months  =  ( months  >  0  &&  months  <  25 )  ?  months  :  6 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    # Save gantt paramters as user preference (zoom and months count) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ( User . current . logged?  &&  ( @zoom  !=  User . current . pref [ :gantt_zoom ]  ||  @months  !=  User . current . pref [ :gantt_months ] ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      User . current . pref [ :gantt_zoom ] ,  User . current . pref [ :gantt_months ]  =  @zoom ,  @months 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      User . current . preference . save 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @date_from  =  Date . civil ( @year_from ,  @month_from ,  1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @date_to  =  ( @date_from  >>  @months )  -  1 
							 
						 
					
						
							
								
									
										
										
										
											2008-03-06 08:32:56 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @with_subprojects  =  params [ :with_subprojects ] . nil?  ?  Setting . display_subprojects_issues?  :  ( params [ :with_subprojects ]  ==  '1' ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-31 17:15:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2007-04-07 12:09:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @events  =  [ ] 
							 
						 
					
						
							
								
									
										
										
										
											2008-02-28 21:57:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @project . issues_with_subprojects ( @with_subprojects )  do 
							 
						 
					
						
							
								
									
										
										
										
											2007-04-07 12:09:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      @events  +=  Issue . find ( :all ,  
							 
						 
					
						
							
								
									
										
										
										
											2007-04-02 17:12:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                           :order  = >  " start_date, due_date " , 
							 
						 
					
						
							
								
									
										
										
										
											2007-04-27 16:21:53 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                           :include  = >  [ :tracker ,  :status ,  :assigned_to ,  :priority ,  :project ] ,  
							 
						 
					
						
							
								
									
										
										
										
											2007-04-02 17:12:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                           :conditions  = >  [ " (((start_date>=? and start_date<=?) or (due_date>=? and due_date<=?) or (start_date<? and due_date>?)) and start_date is not null and due_date is not null and  #{ Issue . table_name } .tracker_id in ( #{ @selected_tracker_ids . join ( ',' ) } )) " ,  @date_from ,  @date_to ,  @date_from ,  @date_to ,  @date_from ,  @date_to ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                           )  unless  @selected_tracker_ids . empty? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end 
							 
						 
					
						
							
								
									
										
										
										
											2007-04-07 12:09:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @events  +=  @project . versions . find ( :all ,  :conditions  = >  [ " effective_date BETWEEN ? AND ? " ,  @date_from ,  @date_to ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @events . sort!  { | x , y |  x . start_date  < = >  y . start_date  } 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2007-08-26 07:55:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if  params [ :format ] == 'pdf' 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      @options_for_rfpdf  || =  { } 
							 
						 
					
						
							
								
									
										
										
										
											2007-08-26 07:55:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      @options_for_rfpdf [ :file_name ]  =  " #{ @project . identifier } -gantt.pdf " 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      render  :template  = >  " projects/gantt.rfpdf " ,  :layout  = >  false 
							 
						 
					
						
							
								
									
										
										
										
											2007-08-26 07:55:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    elsif  params [ :format ] == 'png'  &&  respond_to? ( 'gantt_image' ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      image  =  gantt_image ( @events ,  @date_from ,  @months ,  @zoom ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      image . format  =  'PNG' 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      send_data ( image . to_blob ,  :disposition  = >  'inline' ,  :type  = >  'image/png' ,  :filename  = >  " #{ @project . identifier } -gantt.png " ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      render  :template  = >  " projects/gantt.rhtml " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-17 15:18:50 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								private  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  # Find project of id params[:id] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  # if not found, redirect to project list 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  # Used as a before_filter 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  def  find_project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @project  =  Project . find ( params [ :id ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-01-02 08:47:07 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  rescue  ActiveRecord :: RecordNotFound 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    render_404 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
									
										
										
										
											2008-03-11 19:33:38 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  def  find_optional_project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    return  true  unless  params [ :id ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @project  =  Project . find ( params [ :id ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    authorize 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  rescue  ActiveRecord :: RecordNotFound 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    render_404 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2007-03-31 17:15:30 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  def  retrieve_selected_tracker_ids ( selectable_trackers ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  ids  =  params [ :tracker_ids ] 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      @selected_tracker_ids  =  ( ids . is_a?  Array )  ?  ids . collect  {  | id |  id . to_i . to_s  }  :  ids . split ( '/' ) . collect  {  | id |  id . to_i . to_s  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    else 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      @selected_tracker_ids  =  selectable_trackers . collect  { | t |  t . id . to_s  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
									
										
										
										
											2006-06-28 18:11:03 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								end