[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gforge-commits] gforge/common/pm ProjectTask.class, 1.28, 1.29 ProjectT
From: |
tperdue |
Subject: |
[Gforge-commits] gforge/common/pm ProjectTask.class, 1.28, 1.29 ProjectTaskFactory.class, 1.6, 1.7 |
Date: |
Sat, 27 Nov 2004 14:04:47 -0600 |
Update of /cvsroot/gforge/gforge/common/pm
In directory db.perdue.net:/home/tperdue/share/dev.gforge.org/common/pm
Modified Files:
ProjectTask.class ProjectTaskFactory.class
Log Message:
more new functionality and debugging in task mgr
Index: ProjectTask.class
===================================================================
RCS file: /cvsroot/gforge/gforge/common/pm/ProjectTask.class,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -d -r1.28 -r1.29
--- ProjectTask.class 27 Nov 2004 20:00:01 -0000 1.28
+++ ProjectTask.class 27 Nov 2004 20:04:44 -0000 1.29
@@ -158,7 +158,6 @@
$this->setError($v->formErrorMsg("Must include "));
return false;
}
-
if (!$parent_id) {
$parent_id=0;
}
@@ -193,7 +192,7 @@
$result=db_query($sql);
if (!$result || db_affected_rows($result) < 1) {
- $this->setError('ProjectTask::create()
Posting Failed '.db_error());
+ $this->setError('ProjectTask::create()
Posting Failed '.db_error().$sql);
db_rollback();
return false;
} else {
@@ -221,7 +220,7 @@
WHERE project_task_id='$project_task_id'
AND group_project_id='". $this->ProjectGroup->getID()
."'");
if (!$res || db_numrows($res) < 1) {
- $this->setError('ProjectTask::fetchData() Invalid
MessageID'.db_error());
+ $this->setError('ProjectTask::fetchData() Invalid Task
ID'.db_error());
return false;
}
$this->data_array =& db_fetch_array($res);
@@ -383,6 +382,28 @@
}
/**
+ * setExternalID - set a row in project_task_external_order which
stores
+ * an id, for example an ID generated by MS Project, which needs
to be restored later
+ */
+ function setExternalID($id) {
+ $res=db_query("UPDATE project_task_external_order SET
external_id='$id'
+ WHERE project_task_id='".$this->getID()."'");
+ if (db_affected_rows($res) < 1) {
+ $res=db_query("INSERT INTO project_task_external_order
(project_task_id,external_id)
+ VALUES ('".$this->getID()."','$id')");
+ }
+ }
+
+ /**
+ * getExternalID - get the ID that MS Project uses to sort tasks
+ *
+ * @return int the id.
+ */
+ function getExternalID() {
+ return $this->data_array['external_id'];
+ }
+
+ /**
* getRelatedArtifacts - Return a result set of artifacts which
are related to this task.
*
* @returns Database result set.
@@ -407,9 +428,7 @@
* @return boolean success.
*/
function addRelatedArtifacts($art_array) {
- $perm =& $this->ProjectGroup->Group->getPermission(
session_get_user() );
-
- if (!$perm || !is_object($perm) || !$perm->isPMAdmin()) {
+ if (!$this->ProjectGroup->userIsAdmin()) {
$this->setPermissionDeniedError();
return false;
}
@@ -439,9 +458,7 @@
* @return boolean success.
*/
function removeRelatedArtifacts($art_array) {
- $perm =& $this->ProjectGroup->Group->getPermission(
session_get_user() );
-
- if (!$perm || !is_object($perm) || !$perm->isPMAdmin()) {
+ if (!$this->ProjectGroup->userIsAdmin()) {
$this->setPermissionDeniedError();
return false;
}
@@ -457,20 +474,51 @@
}
return true;
}
-/*
- function delete() {
-
- $project_task_id=$this->getID();
- $perm =& $this->ProjectGroup->Group->getPermission(
session_get_user() );
+ function delete() {
- if (!$perm || !is_object($perm) || !$perm->isPMAdmin()) {
+ if (!$this->ProjectGroup->userIsAdmin()) {
$this->setPermissionDeniedError();
return false;
}
-
+ db_begin();
+ db_query("DELETE FROM project_assigned_to
+ WHERE project_task_id='".$this->getID()."'");
+//echo '4'.db_error();
+ db_query("DELETE FROM project_dependencies
+ WHERE project_task_id='".$this->getID()."'");
+//echo '5'.db_error();
+ db_query("DELETE FROM project_history
+ WHERE project_task_id='".$this->getID()."'");
+//echo '6'.db_error();
+ db_query("DELETE FROM project_messages
+ WHERE project_task_id='".$this->getID()."'");
+//echo '7'.db_error();
+ db_query("DELETE FROM project_task_artifact
+ WHERE project_task_id='".$this->getID()."'");
+//echo '8'.db_error();
+ db_query("DELETE FROM rep_time_tracking
+ WHERE project_task_id='".$this->getID()."'");
+//echo '9'.db_error();
+ db_query("DELETE FROM project_task
+ WHERE project_task_id='".$this->getID()."'");
+//echo '11'.db_error();
+ if ($this->getStatusID() == 3) {
+ //no need to update project_counts_agg
+ } else {
+ if ($this->getStatusID() == 2) {
+ db_query("UPDATE project_counts_agg
+ SET count=count-1
+ WHERE
group_project_id='".$this->ProjectGroup->getID()."'");
+ } else {
+ db_query("UPDATE project_counts_agg
+ SET count=count-1,
open_count=open_count-1
+ WHERE
group_project_id='".$this->ProjectGroup->getID()."'");
+
+ }
+ }
+ db_commit();
}
-*/
/**
* getOtherTasks - Return a result set of tasks in this subproject
that do not equal
@@ -769,16 +817,14 @@
$this->setError($v->formErrorMsg("Must include "));
return false;
}
-
if (!$parent_id) {
$parent_id=0;
}
if (!$duration) {
$duration=0;
}
- $perm =& $this->ProjectGroup->Group->getPermission(
session_get_user() );
- if (!$perm || !is_object($perm) || !$perm->isPMAdmin()) {
+ if (!$this->ProjectGroup->userIsAdmin()) {
$this->setPermissionDeniedError();
return false;
}
Index: ProjectTaskFactory.class
===================================================================
RCS file: /cvsroot/gforge/gforge/common/pm/ProjectTaskFactory.class,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- ProjectTaskFactory.class 18 Nov 2004 16:39:47 -0000 1.6
+++ ProjectTaskFactory.class 27 Nov 2004 20:04:44 -0000 1.7
@@ -185,15 +185,25 @@
$cat_str="AND
project_task_vw.category_id='".$this->category."'";
}
+ //
+ // sort using an external ID useful only to something like
MS Project
+ //
+ if ($this->order=='external_id') {
+ $ext_str='natural left join
project_task_external_order';
+ $ext_fld_str=',project_task_external_order.external_id';
+ } else {
+ $ext_str='';
+ }
+
/*
select project_task_vw.*,project_assigned_to.* FROM
project_task_vw,project_assigned_to
WHERE project_assigned_to.project_task_id=project_task_vw.project_task_id;
*/
- $sql="SELECT project_task_vw.*
- FROM project_task_vw $assigned_str2
+ $sql="SELECT project_task_vw.* $ext_fld_str
+ FROM project_task_vw $ext_str $assigned_str2
WHERE $assigned_str3
project_task_vw.group_project_id='". $this->ProjectGroup->getID() ."'
$assigned_str $status_str $cat_str
- ORDER BY
project_task_vw.".$this->order.(($this->order=='priority') ? ' DESC ':' ');
+ ORDER BY ".$this->order.(($this->order=='priority') ? '
DESC ':' ');
//echo $sql;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Gforge-commits] gforge/common/pm ProjectTask.class, 1.28, 1.29 ProjectTaskFactory.class, 1.6, 1.7,
tperdue <=