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  
						 
					
						
							
								
									
										
										
										
											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 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  
							 
						 
					
						
							
								
									
										
										
										
											2007-09-14 19:55:51 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  # Lists visible projects 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-26 20:10:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  def  index 
							 
						 
					
						
							
								
									
										
										
										
											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 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-27 16:49:18 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    respond_to  do  | format | 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      format . html  {  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        @project_tree  =  projects . group_by  { | p |  p . parent  ||  p } 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-04 17:58:14 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        @project_tree . keys . each  { | p |  @project_tree [ p ]  -=  [ p ] }  
							 
						 
					
						
							
								
									
										
										
										
											2008-05-27 16:49:18 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      format . atom  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        render_feed ( projects . sort_by ( & :created_on ) . reverse . slice ( 0 ,  Setting . feeds_limit . to_i ) ,  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                  :title  = >  " #{ Setting . app_title } :  #{ l ( :label_project_latest ) } " ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    end 
							 
						 
					
						
							
								
									
										
										
										
											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 
							 
						 
					
						
							
								
									
										
										
										
											2008-06-27 20:13:56 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @issue_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 ] ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if  request . get? 
							 
						 
					
						
							
								
									
										
										
										
											2008-08-31 12:59:57 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      @project . identifier  =  Project . next_identifier  if  Setting . sequential_project_identifiers? 
							 
						 
					
						
							
								
									
										
										
										
											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? 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-26 09:49:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      @project . enabled_module_names  =  Redmine :: AccessControl . available_project_modules 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    else 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-26 09:49:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      @project . enabled_module_names  =  params [ :enabled_modules ] 
							 
						 
					
						
							
								
									
										
										
										
											2006-07-09 16:30:01 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      if  @project . save 
							 
						 
					
						
							
								
									
										
										
										
											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-04-26 09:49:16 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
									  end 		
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    end 	
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  end 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
									
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  # Show @project 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  def  show 
							 
						 
					
						
							
								
									
										
										
										
											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 } 
							 
						 
					
						
							
								
									
										
										
										
											2008-05-01 12:56:59 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @subprojects  =  @project . children . find ( :all ,  :conditions  = >  Project . visible_by ( User . current ) ) 
							 
						 
					
						
							
								
									
										
										
										
											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 
							 
						 
					
						
							
								
									
										
										
										
											2008-03-27 18:22:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    cond  =  @project . project_condition ( Setting . display_subprojects_issues? ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-02-28 21:57:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Issue . visible_by ( User . current )  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      @open_issues_by_tracker  =  Issue . count ( :group  = >  :tracker , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                            :include  = >  [ :project ,  :status ,  :tracker ] , 
							 
						 
					
						
							
								
									
										
										
										
											2008-03-27 18:22:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                            :conditions  = >  [ " ( #{ cond } ) AND  #{ IssueStatus . table_name } .is_closed=? " ,  false ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-02-28 21:57:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      @total_issues_by_tracker  =  Issue . count ( :group  = >  :tracker , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                            :include  = >  [ :project ,  :status ,  :tracker ] , 
							 
						 
					
						
							
								
									
										
										
										
											2008-03-27 18:22:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                            :conditions  = >  cond ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-02-28 21:57:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    end 
							 
						 
					
						
							
								
									
										
										
										
											2008-02-27 20:50:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    TimeEntry . visible_by ( User . current )  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      @total_hours  =  TimeEntry . sum ( :hours ,  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                   :include  = >  :project , 
							 
						 
					
						
							
								
									
										
										
										
											2008-03-27 18:22:12 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								                                   :conditions  = >  cond ) . to_f 
							 
						 
					
						
							
								
									
										
										
										
											2008-02-27 20:50:19 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    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' ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-06-27 20:13:56 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @issue_custom_fields  =  IssueCustomField . find ( :all ,  :order  = >  " #{ CustomField . table_name } .position " ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @issue_category  || =  IssueCategory . new 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @member  || =  @project . members . new 
							 
						 
					
						
							
								
									
										
										
										
											2007-11-20 20:29:03 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @trackers  =  Tracker . all 
							 
						 
					
						
							
								
									
										
										
										
											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? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      @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-04-06 10:53:18 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    sort_init  " #{ Attachment . table_name } .filename " ,  " asc " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    sort_update 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @versions  =  @project . versions . find ( :all ,  :include  = >  :attachments ,  :order  = >  sort_clause ) . sort . reverse 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    render  :layout  = >  ! request . xhr? 
							 
						 
					
						
							
								
									
										
										
										
											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 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-27 17:54:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @with_subprojects  =  params [ :with_subprojects ] . nil?  ?  Setting . display_subprojects_issues?  :  ( params [ :with_subprojects ]  ==  '1' ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-12 17:59:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
									
										
										
										
											2008-07-27 17:54:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @activity  =  Redmine :: Activity :: Fetcher . new ( User . current ,  :project  = >  @project ,  :with_subprojects  = >  @with_subprojects ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @activity . scope_select  { | t |  ! params [ " show_ #{ t } " ] . nil? } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    @activity . default_scope!  if  @activity . scope . empty? 
							 
						 
					
						
							
								
									
										
										
										
											2007-03-23 15:58:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2008-07-27 17:54:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    events  =  @activity . events ( @date_from ,  @date_to ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-08-29 16:52:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    respond_to  do  | format | 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-27 17:54:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      format . html  {  
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        @events_by_day  =  events . group_by ( & :event_date ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        render  :layout  = >  false  if  request . xhr? 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-06 13:57:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      format . atom  { 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-30 18:33:35 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        title  =  ( @activity . scope . size  ==  1 )  ?  l ( " label_ #{ @activity . scope . first . singularize } _plural " )  :  l ( :label_activity ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-27 17:54:09 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        render_feed ( events ,  :title  = >  " #{ @project  ||  Setting . app_title } :  #{ title } " ) 
							 
						 
					
						
							
								
									
										
										
										
											2008-07-06 13:57:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      } 
							 
						 
					
						
							
								
									
										
										
										
											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? 
							 
						 
					
						
							
								
									
										
										
										
											2008-04-27 08:20:53 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								      events  +=  Version . find ( :all ,  :include  = >  :project , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                   :conditions  = >  [ " effective_date BETWEEN ? AND ? " ,  @calendar . startdt ,  @calendar . enddt ] ) 
							 
						 
					
						
							
								
									
										
										
										
											2007-04-02 17:12:02 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    end 
							 
						 
					
						
							
								
									
										
										
										
											2007-10-07 20:07:11 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    @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 
							 
						 
					
						
							
								
									
										
										
										
											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