[evolvis-commits] r9147: adding ability to move task to other subp?==?UTF-8?Q?roject↵

mirabilos at evolvis.org mirabilos at evolvis.org
Thu Feb 24 17:19:24 CET 2011


Author: mirabilos
Date: 2011-02-24 17:19:24 +0100 (Thu, 24 Feb 2011)
New Revision: 9147

Modified:
   trunk/gforge_base/evolvisforge-5.1/gforge/common/pm/ProjectTask.class
   trunk/gforge_base/evolvisforge-5.1/gforge/www/include/languages/Base.tab
   trunk/gforge_base/evolvisforge-5.1/gforge/www/pm/browse_task.php
   trunk/gforge_base/evolvisforge-5.1/gforge/www/pm/include/ProjectGroupHTML.class
   trunk/gforge_base/evolvisforge-5.1/gforge/www/pm/mod_task.php
   trunk/gforge_base/evolvisforge-5.1/gforge/www/pm/task.php
Log:
adding ability to move task to other subproject


Modified: trunk/gforge_base/evolvisforge-5.1/gforge/common/pm/ProjectTask.class
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/common/pm/ProjectTask.class	2011-02-24 16:19:22 UTC (rev 9146)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/common/pm/ProjectTask.class	2011-02-24 16:19:24 UTC (rev 9147)
@@ -687,10 +687,11 @@
 	 *	@param	int	The percentage of completion in integer format of this task.
 	 *	@param	array	An array of user_id's that are assigned this task.
 	 *	@param	array	An array of project_task_id's that this task depends on.
+	 *	@param	int	The GroupProjectID of a new subproject that you want to move this Task to.
 	 *	@return	boolean success.
 	 */
 	function update($summary,$details,$priority,$hours,$start_date,$end_date,
-		$status_id,$category_id,$percent_complete,&$assigned_arr,&$depend_arr) {
+		$status_id,$category_id,$percent_complete,&$assigned_arr,&$depend_arr,$new_group_project_id) {
 		$v = new Validator();
 		$v->check($summary, "summary");
 		$v->check($priority, "priority");
@@ -712,6 +713,37 @@
 		}
 
 		db_begin();
+
+		//
+		//  Attempt to move this Task to a new Subproject
+		//  need to instantiate new ProjectGroup obj and test if it works
+		//
+		$group_project_id = $this->ProjectGroup->getID();
+		if ($new_group_project_id != $group_project_id) {
+			$newProjectGroup= new ProjectGroup($this->ProjectGroup->getGroup(), $new_group_project_id);
+			if (!is_object($newProjectGroup) || $newProjectGroup->isError()) {
+				$this->setError('ProjectTask: Could not move to new ProjectGroup'. $newProjectGroup->getErrorMessage());
+				db_rollback();
+				return false;
+			}
+			/*  do they have perms for new ArtifactType?
+			if (!$newArtifactType->userIsAdmin()) {
+				$this->setPermissionDeniedError();
+				db_rollback();
+				return false;
+			}*/
+			//
+			//  Now set ProjectGroup, Category, and Assigned to 100 in the new ProjectGroup
+			//
+			$status_id=1;
+			$category_id='100';
+			unset($assigned_to);
+			$assigned_to=array('100');
+			$this->ProjectGroup =& $newProjectGroup;
+			$this->addHistory ('group_project_id',$group_project_id);
+		}
+
+
 		if ($details) {
 			if (!$this->addMessage($details)) {
 				db_rollback();
@@ -772,8 +804,9 @@
 				end_date='$end_date',
 				status_id='$status_id',
 				percent_complete='$percent_complete',
-				category_id='$category_id'
-				WHERE group_project_id='".$this->ProjectGroup->getID()."'
+				category_id='$category_id',
+				group_project_id='$new_group_project_id'
+				WHERE group_project_id='$group_project_id'
 				AND project_task_id='".$this->getID()."'";
 
 			$res=db_query($sql);

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/include/languages/Base.tab
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/include/languages/Base.tab	2011-02-24 16:19:22 UTC (rev 9146)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/include/languages/Base.tab	2011-02-24 16:19:24 UTC (rev 9147)
@@ -1234,7 +1234,7 @@
 pm_admin_projects	category_inserted	Category Inserted
 pm_admin_projects	category_name	Category Name
 pm_admin_projects	category_note	Once you add a category, it cannot be deleted
-pm_admin_projects	category_note2	It is not recommended that you change the artifact category name because other things are dependent upon it. When you change the category name, all related items will be changed to the new name.</font></strong>
+pm_admin_projects	category_note2	It is not recommended that you change the category name because other things are dependent upon it. When you change the category name, all related items will be changed to the new name.</font></strong>
 pm_admin_projects	category_updated	Category Updated
 pm_admin_projects	change_project_intro	You can modify an existing Project using this form. Please note that private projects can still be viewed by members of your project, but not the general public.
 pm_admin_projects	change_project_title	Change Project/Task Manager Status
@@ -1271,6 +1271,7 @@
 pm_browsetask	overdue_tasks	* Denotes overdue tasks
 pm_browsetask	previous	previous 50
 pm_browsetask	title	Browse tasks
+pm_detailtask	subproject	Subproject
 pm_detailtask	assigned_to	Assigned To
 pm_detailtask	category	Category
 pm_detailtask	dependend_on_task	Dependent On Task

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/pm/browse_task.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/pm/browse_task.php	2011-02-24 16:19:22 UTC (rev 9146)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/pm/browse_task.php	2011-02-24 16:19:24 UTC (rev 9147)
@@ -233,7 +233,9 @@
 				'<br />'. $pg->statusBox ('status_id','xzxz',true,$Language->getText('pm_browsetask','no_change')) .'</td>
 			</tr>
 
-			<tr><td colspan="3" align="middle"><input type="submit" name="submit" value="'.
+			<tr><td><strong>'.$Language->getText('pm_detailtask','subproject').'</strong><br />
+			'.$pg->groupProjectBox('new_group_project_id',$group_project_id,false).'</td>
+			<td align="middle"><input type="submit" name="submit" value="'.
 			$Language->getText('pm_browsetask','mass_update').'"></td></tr>
 
 			</table>

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/pm/include/ProjectGroupHTML.class
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/pm/include/ProjectGroupHTML.class	2011-02-24 16:19:22 UTC (rev 9146)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/pm/include/ProjectGroupHTML.class	2011-02-24 16:19:24 UTC (rev 9147)
@@ -76,6 +76,13 @@
 		return html_build_select_box($this->getCategories(),$name,$checked,$show_100,$text_100);
 	}
 
+	function groupProjectBox($name='group_project_id',$checked='xzxz',$show_100=true,$text_100='None') {
+		$res=db_query("SELECT group_project_id,project_name 
+			FROM project_group_list 
+			WHERE group_id='".$this->Group->getID()."'");
+		return html_build_select_box($res,$name,$checked,$show_100,$text_100);
+	}
+
 	function percentCompleteBox($name='percent_complete',$selected=0) {
 		global $Language;
 		echo '

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/pm/mod_task.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/pm/mod_task.php	2011-02-24 16:19:22 UTC (rev 9146)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/pm/mod_task.php	2011-02-24 16:19:24 UTC (rev 9147)
@@ -29,17 +29,20 @@
 <table border="0" width="100%">
 
 	<tr>
-		<td><strong><?php echo $Language->getText('pm_modtask','submitted_by') ?>:</strong><br /><?php echo $pt->getSubmittedRealName(); ?> (<?php echo $pt->getSubmittedUnixName(); ?>)</td>
+		<td><strong><?php echo $Language->getText('pm_modtask','submitted_by') ?>:</strong><br />
+			<?php echo $pt->getSubmittedRealName(); ?> (<?php echo $pt->getSubmittedUnixName(); ?>)</td>
+		<td><input type="submit" value="<?php echo $Language->getText('general','submit') ?>" name="submit" /></td>
 	</tr>
 
 	<tr>
 		<td>
-		<strong><?php echo $Language->getText('pm','category') ?>:</strong><br />
-		<?php echo $pg->categoryBox('category_id',$pt->getCategoryID()); ?> <a href="/pm/admin/?<?php echo "group_id=$group_id&add_cat=1&group_project_id=$group_project_id"; ?>">(admin)</a>
+			<strong><?php echo $Language->getText('pm','category') ?>:</strong><br />
+			<?php echo $pg->categoryBox('category_id',$pt->getCategoryID()); ?> <a href="/pm/admin/?<?php echo "group_id=$group_id&add_cat=1&group_project_id=$group_project_id"; ?>">(admin)</a>
 		</td>
 
 		<td>
-		<input type="submit" value="<?php echo $Language->getText('general','submit') ?>" name="submit" />
+			<strong><?php echo $Language->getText('pm_detailtask','subproject'); ?>:</strong><br />
+			<?php echo $pg->groupProjectBox('new_group_project_id',$group_project_id,false); ?>
 		</td>
 	</tr>
 

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/www/pm/task.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/www/pm/task.php	2011-02-24 16:19:22 UTC (rev 9146)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/www/pm/task.php	2011-02-24 16:19:24 UTC (rev 9147)
@@ -113,7 +113,7 @@
 			$start_date=mktime($start_hour,$start_minute,0,$start_month,$start_day,$start_year);
 			$end_date=mktime($end_hour,$end_minute,0,$end_month,$end_day,$end_year);
 			if (!$pt->update($summary,$details,$priority,$hours,$start_date,$end_date,
-				$status_id,$category_id,$percent_complete,$assigned_to,$dependent_on)) {
+				$status_id,$category_id,$percent_complete,$assigned_to,$dependent_on,$new_group_project_id)) {
 				exit_error('ERROR','update():: '.$pt->getErrorMessage());
 			} else {
 				if (count($rem_artifact_id) > 0) {
@@ -156,9 +156,10 @@
 					//conflicts with the "no change" ID! Sorry for messy use of 100.1
 					$_assigned_to=(($assigned_to != '100.1') ? $pt->getAssignedTo() : array('100'));
 					$_dependent_on=$pt->getDependentOn();
+					$_new_group_project_id=(($new_group_project_id != 100) ? $new_group_project_id : $pt->ProjectGroup->getID() );
 
 					if (!$pt->update($_summary,$_details,$_priority,$_hours,$_start_date,$_end_date,
-							$_status_id,$_category_id,$_percent_complete,$_assigned_to,$_dependent_on)) {
+							$_status_id,$_category_id,$_percent_complete,$_assigned_to,$_dependent_on,$_new_group_project_id)) {
 						$was_error=true;
 						$feedback .= ' ID: '.$project_task_id_list[$i].'::'.$pt->getErrorMessage();
 



More information about the evolvis-commits mailing list