[evolvis-commits] r11955: [#2591] Deleting a project's 'task' project fails due to constraint violation.

mirabilos at evolvis.org mirabilos at evolvis.org
Thu Feb 24 18:30:40 CET 2011


Author: mirabilos
Date: 2011-02-24 18:30:39 +0100 (Thu, 24 Feb 2011)
New Revision: 11955

Modified:
   trunk/gforge_base/evolvisforge-5.1/gforge/common/pm/ProjectGroup.class
Log:
[#2591] Deleting a project's 'task' project fails due to constraint violation.

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/common/pm/ProjectGroup.class
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/common/pm/ProjectGroup.class	2011-02-24 17:30:26 UTC (rev 11954)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/common/pm/ProjectGroup.class	2011-02-24 17:30:39 UTC (rev 11955)
@@ -413,52 +413,131 @@
 			$this->setPermissionDeniedError();
 			return false;
 		}
+
 		db_begin();
-		db_query("DELETE FROM project_category
-			WHERE group_project_id='".$this->getID()."'");
-//echo '1'.db_error();
-		db_query("DELETE FROM project_perm
-			WHERE group_project_id='".$this->getID()."'");
-//echo '2'.db_error();
-		db_query("DELETE FROM project_assigned_to
+
+                $sql = "DELETE FROM project_perm WHERE group_project_id='".$this->getID()."'";
+                $res = db_query($sql);
+
+                if (!$res)
+                {
+                        $this->setError('DATABASE '.db_error().' QUERY='.$sql);
+                        return false;
+                }
+
+
+                $sql = "DELETE FROM project_assigned_to
 			WHERE EXISTS (SELECT project_task_id FROM project_task
 			WHERE group_project_id='".$this->getID()."'
-			AND project_task.project_task_id=project_assigned_to.project_task_id)");
-//echo '4'.db_error();
-		db_query("DELETE FROM project_dependencies
+			AND project_task.project_task_id=project_assigned_to.project_task_id)";
+                $res = db_query($sql);
+
+                if (!$res)
+                {
+                        $this->setError('DATABASE '.db_error().' QUERY='.$sql);
+                        return false;
+                }
+
+                $sql = "DELETE FROM project_dependencies
 			WHERE EXISTS (SELECT project_task_id FROM project_task
 			WHERE group_project_id='".$this->getID()."'
-			AND project_task.project_task_id=project_dependencies.project_task_id)");
-//echo '5'.db_error();
-		db_query("DELETE FROM project_history
+			AND project_task.project_task_id=project_dependencies.project_task_id)";
+                $res = db_query($sql);
+
+                if (!$res)
+                {
+                        $this->setError('DATABASE '.db_error().' QUERY='.$sql);
+                        return false;
+                }
+
+                $sql = "DELETE FROM project_history
 			WHERE EXISTS (SELECT project_task_id FROM project_task
 			WHERE group_project_id='".$this->getID()."'
-			AND project_task.project_task_id=project_history.project_task_id)");
-//echo '6'.db_error();
-		db_query("DELETE FROM project_messages
+			AND project_task.project_task_id=project_history.project_task_id)";
+                $res = db_query($sql);
+
+                if (!$res)
+                {
+                        $this->setError('DATABASE '.db_error().' QUERY='.$sql);
+                        return false;
+                }
+
+                $sql = "DELETE FROM project_messages
 			WHERE EXISTS (SELECT project_task_id FROM project_task
 			WHERE group_project_id='".$this->getID()."'
-			AND project_task.project_task_id=project_messages.project_task_id)");
-//echo '7'.db_error();
-		db_query("DELETE FROM project_task_artifact
+			AND project_task.project_task_id=project_messages.project_task_id)";
+                $res = db_query($sql);
+
+                if (!$res)
+                {
+                        $this->setError('DATABASE '.db_error().' QUERY='.$sql);
+                        return false;
+                }
+
+                $sql = "DELETE FROM project_task_artifact
 			WHERE EXISTS (SELECT project_task_id FROM project_task
 			WHERE group_project_id='".$this->getID()."'
-			AND project_task.project_task_id=project_task_artifact.project_task_id)");
-//echo '8'.db_error();
-		db_query("DELETE FROM rep_time_tracking
+			AND project_task.project_task_id=project_task_artifact.project_task_id)";
+                $res = db_query($sql);
+
+                if (!$res)
+                {
+                        $this->setError('DATABASE '.db_error().' QUERY='.$sql);
+                        return false;
+                }
+
+                $sql = "DELETE FROM rep_time_tracking
 			WHERE EXISTS (SELECT project_task_id FROM project_task
 			WHERE group_project_id='".$this->getID()."'
-			AND project_task.project_task_id=rep_time_tracking.project_task_id)");
-//echo '9'.db_error();
-		db_query("DELETE FROM project_task
-			WHERE group_project_id='".$this->getID()."'");
-//echo '10'.db_error();
-		db_query("DELETE FROM project_group_list
-			WHERE group_project_id='".$this->getID()."'");
-//echo '11'.db_error();
-		db_query("DELETE FROM project_counts_agg
-			WHERE group_project_id='".$this->getID()."'");
-//echo '12'.db_error();
+			AND project_task.project_task_id=rep_time_tracking.project_task_id)";
+                $res = db_query($sql);
+
+                if (!$res)
+                {
+                        $this->setError('DATABASE '.db_error().' QUERY='.$sql);
+                        return false;
+                }
+
+                $sql = "DELETE FROM project_task
+			WHERE group_project_id='".$this->getID()."'";
+                $res = db_query($sql);
+
+                if (!$res)
+                {
+                        $this->setError('DATABASE '.db_error().' QUERY='.$sql);
+                        return false;
+                }
+
+		$sql = "DELETE FROM project_category WHERE group_project_id='".$this->getID()."'";
+		$res = db_query($sql);
+
+		if (!$res)
+		{
+			$this->setError('DATABASE '.db_error().' QUERY='.$sql);
+			return false;
+		}
+
+                $sql = "DELETE FROM project_group_list
+			WHERE group_project_id='".$this->getID()."'";
+                $res = db_query($sql);
+
+                if (!$res)
+                {
+                        $this->setError('DATABASE '.db_error().' QUERY='.$sql);
+                        return false;
+                }
+
+                $sql = "DELETE FROM project_counts_agg
+			WHERE group_project_id='".$this->getID()."'";
+                $res = db_query($sql);
+
+                if (!$res)
+                {
+                        $this->setError('DATABASE '.db_error().' QUERY='.$sql);
+                        return false;
+                }
+
+
 		db_commit();
 		return true;
 	}



More information about the evolvis-commits mailing list