* [task#134153,done,1h] change version if title/precondition/files is changed.
This commit is contained in:
@@ -1415,6 +1415,7 @@ class fileModel extends model
|
||||
$this->updateObjectID($this->post->uid, $oldObject->id, $objectType);
|
||||
$addedFiles = $this->saveUpload($objectType, $oldObject->id, $extra, $filesName, $labelsName);
|
||||
|
||||
if(!isset($oldObject->files)) $oldObject->files = array();
|
||||
$files = array_diff(array_keys($oldObject->files), array_keys($deleteFiles));
|
||||
$files = array_merge($files, array_keys($addedFiles));
|
||||
|
||||
|
||||
@@ -561,8 +561,11 @@ class testcase extends control
|
||||
|
||||
/* 更新用例。 */
|
||||
/* Update cases. */
|
||||
$caseFiles = $this->testcase->getRelatedFiles($caseIdList);
|
||||
foreach($editedCases as $caseID => $case)
|
||||
{
|
||||
if(!isset($case->files)) $case->files = zget($caseFiles, $caseID, array());
|
||||
if(!isset($cases[$caseID]->files)) $cases[$caseID]->files = zget($caseFiles, $caseID, array());
|
||||
$changes = $this->testcase->update($case, $cases[$caseID], zget($testtasks, $caseID, array()));
|
||||
$this->executeHooks($caseID);
|
||||
|
||||
|
||||
@@ -248,7 +248,7 @@ class testcaseModel extends model
|
||||
{
|
||||
if(!$caseIdList) return array();
|
||||
|
||||
return $this->dao->select('*')->from(TABLE_CASE)
|
||||
return $this->dao->select('*,precondition')->from(TABLE_CASE)
|
||||
->where('deleted')->eq(0)
|
||||
->andWhere('id')->in($caseIdList)
|
||||
->beginIF($query)->andWhere($query)->fi()
|
||||
|
||||
@@ -336,7 +336,7 @@ class testcaseTao extends testcaseModel
|
||||
*/
|
||||
protected function getRelatedFiles(array $caseIdList): array
|
||||
{
|
||||
return $this->dao->select('*')->from(TABLE_FILE)->where('objectType')->eq('testcase')->andWhere('objectID')->in($caseIdList)->andWhere('extra')->ne('editor')->fetchGroup('objectID');
|
||||
return $this->dao->select('*')->from(TABLE_FILE)->where('objectType')->eq('testcase')->andWhere('objectID')->in($caseIdList)->andWhere('extra')->ne('editor')->fetchGroup('objectID', 'id');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -398,7 +398,7 @@ class testcaseTao extends testcaseModel
|
||||
$requiredFields = $this->config->testcase->edit->requiredFields;
|
||||
if(!empty($case->lib)) $requiredFields = str_replace(',story,', ',', ",$requiredFields,");
|
||||
|
||||
$this->dao->update(TABLE_CASE)->data($case, 'deleteFiles,uid,stepChanged,comment,steps,expects,stepType,linkBug,renameFiles')
|
||||
$this->dao->update(TABLE_CASE)->data($case, 'deleteFiles,uid,stepChanged,comment,steps,expects,stepType,linkBug,renameFiles,files')
|
||||
->autoCheck()
|
||||
->batchCheck($requiredFields, 'notempty')
|
||||
->checkFlow()
|
||||
|
||||
+10
-3
@@ -1496,9 +1496,9 @@ class testcaseZen extends testcase
|
||||
$caseIdList = array_keys($oldCases);
|
||||
if(empty($caseIdList)) return array();
|
||||
|
||||
$now = helper::now();
|
||||
$account = $this->app->user->account;
|
||||
$cases = form::batchData($this->config->testcase->form->batchEdit)->get();
|
||||
$now = helper::now();
|
||||
$account = $this->app->user->account;
|
||||
$cases = form::batchData($this->config->testcase->form->batchEdit)->get();
|
||||
foreach($cases as $caseID => $case)
|
||||
{
|
||||
$oldCase = $oldCases[$caseID];
|
||||
@@ -1506,6 +1506,12 @@ class testcaseZen extends testcase
|
||||
$case->product = $oldCase->product;
|
||||
$case->lastEditedBy = $account;
|
||||
$case->lastEditedDate = $now;
|
||||
if(!isset($case->precondition)) $case->precondition = $oldCase->precondition;
|
||||
|
||||
$versionChanged = false;
|
||||
if($case->title && $case->title != $oldCase->title) $versionChanged = true;
|
||||
if($case->precondition && $case->precondition != $oldCase->precondition) $versionChanged = true;
|
||||
if($versionChanged) $case->version = $oldCase->version + 1;
|
||||
}
|
||||
return $cases;
|
||||
}
|
||||
@@ -3202,6 +3208,7 @@ class testcaseZen extends testcase
|
||||
|
||||
if($this->post->title && $case->title != $this->post->title) $stepChanged = true;
|
||||
if($this->post->precondition && $case->precondition != $this->post->precondition) $stepChanged = true;
|
||||
if(!empty($_FILES['files']['name'][0])) $stepChanged = true;
|
||||
|
||||
return array($stepChanged, $status);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user