diff --git a/module/bug/model.php b/module/bug/model.php index e62af700f8..df0578d44a 100644 --- a/module/bug/model.php +++ b/module/bug/model.php @@ -647,7 +647,7 @@ class bugModel extends model if(!empty($bug->resolvedBy)) $this->loadModel('score')->create('bug', 'resolve', $bugID); $this->file->updateObjectID($this->post->uid, $bugID, 'bug'); - $relation = $this->loadModel('gitlab')->getRelationByObject('bug',$bugID); + $relation = $this->loadModel('gitlab')->getRelationByObject('bug', $bugID); if($relation) $this->loadModel('gitlab')->pushToIssue('bug', $bugID, $relation->gitlabID, $relation->projectID); return common::createChanges($oldBug, $bug); @@ -1183,7 +1183,7 @@ class bugModel extends model $this->dao->update(TABLE_BUG)->data($bug)->autoCheck()->where('id')->eq((int)$bugID)->exec(); $this->dao->update(TABLE_BUG)->set('activatedCount = activatedCount + 1')->where('id')->eq((int)$bugID)->exec(); - $relation = $this->loadModel('gitlab')->getGitlabIDprojectID('bug',$bugID); + $relation = $this->loadModel('gitlab')->getRelationByObject('bug',$bugID); if($relation) $this->loadModel('gitlab')->pushToIssue('bug', $bugID, $relation->gitlabID, $relation->projectID); $openedBuilds = $this->post->openedBuild; @@ -1226,19 +1226,20 @@ class bugModel extends model ->remove('comment') ->get(); - $relation = $this->loadModel('gitlab')->getRelationByObject('bug', $bugID); - $this->dao->update(TABLE_BUG)->data($bug)->autoCheck()->where('id')->eq((int)$bugID)->exec(); - $singleIssue = new stdclass(); - $singleIssue = $this->loadModel('gitlab')->apiGetSingleIssue($relation->gitlabID, $relation->issueID); + $relation = $this->loadModel('gitlab')->getRelationByObject('bug', $bugID); + if(!empty($relation)) + { + $singleIssue = new stdclass(); + $singleIssue = $this->loadModel('gitlab')->apiGetSingleIssue($relation->gitlabID, $relation->issueID); - if($singleIssue->state != 'closed') - { - $objectID = $this->loadModel('gitlab')->getGitlabIDprojectID('bug',$bugID); - if($objectID) $this->loadModel('gitlab')->pushToIssue('bug', $bugID, $objectID->gitlabID, $objectID->projectID); + if($singleIssue->state != 'closed') + { + $objectID = $this->loadModel('gitlab')->getRelationByObject('bug',$bugID); + if($objectID) $this->loadModel('gitlab')->pushToIssue('bug', $bugID, $objectID->gitlabID, $objectID->projectID); + } } - return common::createChanges($oldBug, $bug); } diff --git a/module/gitlab/model.php b/module/gitlab/model.php index 49d8071f88..d895df3e20 100644 --- a/module/gitlab/model.php +++ b/module/gitlab/model.php @@ -829,9 +829,9 @@ class gitlabModel extends model $projectID = $result->projectID; } - $syncedIssue = $this->getSyncedIssue($objectType = $objectType, $objectID = $objectID, $gitlabID); + $syncedIssue = $this->getRelationByObject($objectType, $objectID); $issue = $this->parseObjectToIssue($gitlabID, $projectID, $object, $objectType); - if($syncedIssue) return $this->apiUpdateIssue($gitlabID, $projectID, $syncedIssue->BID, $issue); + if($syncedIssue) return $this->apiUpdateIssue($gitlabID, $projectID, $syncedIssue->issueID, $issue); $label = $this->createZentaoObjectLabel($gitlabID, $projectID, $objectType, $objectID); $issue->labels = $label->name; diff --git a/module/story/model.php b/module/story/model.php index 7dc44bb7a8..153d6473db 100644 --- a/module/story/model.php +++ b/module/story/model.php @@ -830,7 +830,7 @@ class storyModel extends model $this->dao->insert(TABLE_STORYREVIEW)->data($reviewData)->exec(); } /* update story to gitlab issue. */ - $objectID = $this->loadModel('gitlab')->getGitlabidProjectID('story',$storyID); + $objectID = $this->loadModel('gitlab')->getRelationByObject('story',$storyID); if($objectID) $this->loadModel('gitlab')->pushToIssue('story', $storyID, $objectID->gitlabID, $objectID->projectID); unset($oldStory->parent); @@ -1426,8 +1426,19 @@ class storyModel extends model ->checkIF($story->closedReason == 'duplicate', 'duplicateStory', 'notempty') ->where('id')->eq($storyID)->exec(); - $objectID = $this->loadModel('gitlab')->getGitlabIDprojectID('story',$storyID); - if($objectID) $this->loadModel('gitlab')->pushToIssue('story', $storyID, $objectID->gitlabID, $objectID->projectID); + $relation = $this->loadModel('gitlab')->getRelationByObject('story', $storyID); + + if(!empty($relation)) + { + $singleIssue = new stdclass(); + $singleIssue = $this->loadModel('gitlab')->apiGetSingleIssue($relation->gitlabID, $relation->issueID); + + if($singleIssue->state != 'closed') + { + $objectID = $this->loadModel('gitlab')->getRelationByObject('story',$storyID); + if($objectID) $this->loadModel('gitlab')->pushToIssue('story', $storyID, $objectID->gitlabID, $objectID->projectID); + } + } /* Update parent story status. */ if($oldStory->parent > 0) $this->updateParentStatus($storyID, $oldStory->parent); diff --git a/module/task/model.php b/module/task/model.php index 649e41c6d0..ddf4aea17e 100644 --- a/module/task/model.php +++ b/module/task/model.php @@ -942,7 +942,7 @@ class taskModel extends model ->where('id')->eq((int)$taskID)->exec(); /* update story to gitlab issue. */ - $objectID = $this->loadModel('gitlab')->getGitlabidProjectID('task',$taskID); + $objectID = $this->loadModel('gitlab')->getRelationByObject('task',$taskID); if($objectID) $this->loadModel('gitlab')->pushToIssue('task', $taskID, $objectID->gitlabID, $objectID->projectID); if(!dao::isError()) @@ -1733,8 +1733,19 @@ class taskModel extends model $this->dao->update(TABLE_TASK)->data($task)->autoCheck()->where('id')->eq((int)$taskID)->exec(); - $objectID = $this->loadModel('gitlab')->getGitlabIDprojectID('task',$taskID); - if($objectID) $this->loadModel('gitlab')->pushToissue('task', $taskID, $objectID->gitlabID, $objectID->projectID); + $relation = $this->loadModel('gitlab')->getRelationByObject('task', $taskID); + + if(!empty($relation)) + { + $singleIssue = new stdclass(); + $singleIssue = $this->loadModel('gitlab')->apiGetSingleIssue($relation->gitlabID, $relation->issueID); + + if($singleIssue->state != 'closed') + { + $objectID = $this->loadModel('gitlab')->getRelationByObject('task',$taskID); + if($objectID) $this->loadModel('gitlab')->pushToIssue('task', $taskID, $objectID->gitlabID, $objectID->projectID); + } + } if(!dao::isError()) {