Finish task #43916.

This commit is contained in:
zhouxin
2021-11-12 14:06:44 +08:00
parent 89802252fc
commit e57d1d1cc7
5 changed files with 23 additions and 27 deletions
+6 -8
View File
@@ -365,8 +365,8 @@ class executionModel extends model
$this->dao->insert(TABLE_EXECUTION)->data($sprint)
->autoCheck($skipFields = 'begin,end')
->batchcheck($this->config->execution->create->requiredFields, 'notempty')
->checkIF(!empty($sprint->name), 'name', 'unique', "`type` in ('sprint','stage') and `parent` = $sprint->parent")
->checkIF(!empty($sprint->code), 'code', 'unique', "`type` in ('sprint','stage') and `parent` = $sprint->parent")
->checkIF(!empty($sprint->name), 'name', 'unique', "`type` in ('sprint','stage') and `project` = $sprint->project")
->checkIF(!empty($sprint->code), 'code', 'unique', "`type` in ('sprint','stage')")
->checkIF($sprint->begin != '', 'begin', 'date')
->checkIF($sprint->end != '', 'end', 'date')
->checkIF($sprint->end != '', 'end', 'ge', $sprint->begin)
@@ -519,6 +519,7 @@ class executionModel extends model
->checkIF($execution->begin != '', 'begin', 'date')
->checkIF($execution->end != '', 'end', 'date')
->checkIF($execution->end != '', 'end', 'ge', $execution->begin)
->checkIF(!empty($execution->name), 'name', 'unique', "id != $executionID and type in ('sprint','stage') and `project` = $execution->project")
->checkIF(!empty($execution->code), 'code', 'unique', "id != $executionID and type in ('sprint','stage')")
->where('id')->eq($executionID)
->limit(1)
@@ -544,7 +545,7 @@ class executionModel extends model
$changedAccounts[$owner] = $owner;
$teamMembers[$ownerField] = $member;
}
if($execution->project) $this->addProjectMembers($execution->project, $teamMembers);
if($execution->project) $this->addProjectMembers($execution->project, $teamMembers);
$whitelist = explode(',', $execution->whitelist);
$this->loadModel('personnel')->updateWhitelist($whitelist, 'sprint', $executionID);
@@ -624,10 +625,6 @@ class executionModel extends model
if(isset($data->projects)) $executions[$executionID]->project = zget($data->projects, $executionID, 0);
if(isset($data->attributes)) $executions[$executionID]->attribute = zget($data->attributes, $executionID, '');
/* Check unique name for edited executions. */
if(isset($nameList[$executionName])) dao::$errors['name'][] = 'execution#' . $executionID . sprintf($this->lang->error->unique, $this->lang->execution->name, $executionName);
$nameList[$executionName] = $executionName;
/* Check unique code for edited executions. */
if($projectModel == 'scrum' and empty($executionCode))
{
@@ -653,7 +650,8 @@ class executionModel extends model
->checkIF($execution->begin != '', 'begin', 'date')
->checkIF($execution->end != '', 'end', 'date')
->checkIF($execution->end != '', 'end', 'gt', $execution->begin)
->checkIF(!empty($execution->code), 'code', 'unique', "id NOT " . helper::dbIN($data->executionIDList) . " and type in ('sprint','stage')")
->checkIF(!empty($execution->name), 'name', 'unique', "id != $executionID and type in ('sprint','stage') and `project` = $oldExecution->project")
->checkIF(!empty($execution->code), 'code', 'unique', "id != $executionID and type in ('sprint','stage')")
->where('id')->eq($executionID)
->limit(1)
->exec();
+4 -7
View File
@@ -562,7 +562,7 @@ class productModel extends model
$this->dao->insert(TABLE_PRODUCT)->data($product)->autoCheck()
->batchCheck($this->config->product->create->requiredFields, 'notempty')
->checkIF(!empty($product->name), 'name', 'unique', "`program` = $product->program")
->checkIF(!empty($product->code), 'code', 'unique', "`program` = $product->program")
->checkIF(!empty($product->code), 'code', 'unique')
->exec();
if(!dao::isError())
@@ -631,8 +631,8 @@ class productModel extends model
$product = $this->loadModel('file')->processImgURL($product, $this->config->product->editor->edit['id'], $this->post->uid);
$this->dao->update(TABLE_PRODUCT)->data($product)->autoCheck()
->batchCheck($this->config->product->edit->requiredFields, 'notempty')
->checkIF(!empty($product->name), 'name', 'unique', "id != $productID and `program` = $product->program")
->checkIF(!empty($product->code), 'code', 'unique', "id != $productID")
->check('name', 'unique', "id != $productID and deleted = '0'")
->where('id')->eq($productID)
->exec();
@@ -659,6 +659,7 @@ class productModel extends model
$data = fixer::input('post')->get();
$oldProducts = $this->getByIdList($this->post->productIDList);
$nameList = array();
foreach($data->productIDList as $productID)
{
$productName = $data->names[$productID];
@@ -675,10 +676,6 @@ class productModel extends model
$products[$productID]->status = $data->statuses[$productID];
$products[$productID]->desc = strip_tags($this->post->descs[$productID], $this->config->allowedTags);
$products[$productID]->acl = $data->acls[$productID];
/* Check unique name for edited products. */
if(isset($nameList[$productName])) dao::$errors['name'][] = 'product#' . $productID . sprintf($this->lang->error->unique, $this->lang->product->name, $productName);
$nameList[$productName] = $productName;
}
if(dao::isError()) die(js::error(dao::getError()));
@@ -690,7 +687,7 @@ class productModel extends model
->data($product)
->autoCheck()
->batchCheck($this->config->product->edit->requiredFields , 'notempty')
->check('name', 'unique', "id NOT " . helper::dbIN($data->productIDList) . " and deleted='0'")
->checkIF(!empty($product->name), 'name', 'unique', "id != $productID and `program` = $oldProduct->program")
->where('id')->eq($productID)
->exec();
if(dao::isError()) die(js::error('product#' . $productID . dao::getError(true)));
+1 -1
View File
@@ -741,7 +741,7 @@ class programModel extends model
->checkIF($program->begin != '', 'begin', 'date')
->checkIF($program->end != '', 'end', 'date')
->checkIF($program->end != '', 'end', 'gt', $program->begin)
->check('name', 'unique', "id!=$programID and deleted='0' and `type`='program'")
->checkIF(!empty($program->name), 'name', 'unique', "id!=$programID and `type`='program' and `parent` = $program->parent")
->where('id')->eq($programID)
->limit(1)
->exec();
+6 -3
View File
@@ -272,7 +272,7 @@ class project extends control
$this->view->title = $this->lang->project->browse;
$this->view->position[] = $this->lang->project->browse;
$this->view->projectStats = $projectStats;
$this->view->pager = $pager;
$this->view->programID = $programID;
@@ -511,9 +511,12 @@ class project extends control
/* Link the plan stories. */
$newPlans = array();
foreach($_POST['plans'] as $plans)
if(isset($_POST['plans']))
{
foreach($plans as $planID) $newPlans[$planID] = $planID;
foreach($_POST['plans'] as $plans)
{
foreach($plans as $planID) $newPlans[$planID] = $planID;
}
}
$diffResult = array_diff($oldPlans, $newPlans);
+6 -8
View File
@@ -840,7 +840,7 @@ class projectModel extends model
->autoCheck()
->batchcheck($requiredFields, 'notempty')
->checkIF(!empty($project->name), 'name', 'unique', "`type`='project' and `parent` = $project->parent")
->checkIF(!empty($project->code), 'code', 'unique', "`type`='project' and `parent` = $project->parent")
->checkIF(!empty($project->code), 'code', 'unique', "`type`='project'")
->checkIF($project->end != '', 'end', 'gt', $project->begin)
->exec();
@@ -1031,8 +1031,8 @@ class projectModel extends model
->checkIF($project->begin != '', 'begin', 'date')
->checkIF($project->end != '', 'end', 'date')
->checkIF($project->end != '', 'end', 'gt', $project->begin)
->checkIF(!empty($project->code), 'code', 'unique', "id != $projectID and type='project'")
->check('name', 'unique', "id != $projectID AND type='project' AND deleted='0'")
->checkIF(!empty($project->name), 'name', 'unique', "id != $projectID and `type` = 'project' and `parent` = $project->parent")
->checkIF(!empty($project->code), 'code', 'unique', "id != $projectID and `type` = 'project'")
->where('id')->eq($projectID)
->exec();
@@ -1096,10 +1096,6 @@ class projectModel extends model
$projects[$projectID]->lastEditedBy = $this->app->user->account;
$projects[$projectID]->lastEditedDate = helper::now();
/* Check unique name for edited projects. */
if(isset($nameList[$projectName])) dao::$errors['name'][] = 'project#' . $projectID . sprintf($this->lang->error->unique, $this->lang->project->name, $projectName);
$nameList[$projectName] = $projectName;
if($projects[$projectID]->parent)
{
$parentProject = $this->dao->select('*')->from(TABLE_PROGRAM)->where('id')->eq($projects[$projectID]->parent)->fetch();
@@ -1125,6 +1121,8 @@ class projectModel extends model
->checkIF($project->begin != '', 'begin', 'date')
->checkIF($project->end != '', 'end', 'date')
->checkIF($project->end != '', 'end', 'gt', $project->begin)
->checkIF(!empty($project->name), 'name', 'unique', "id != $projectID and `type`='project' and `parent` = $project->parent")
->checkIF(!empty($project->code), 'code', 'unique', "id != $projectID and `type`='project'")
->where('id')->eq($projectID)
->exec();
@@ -1464,7 +1462,7 @@ class projectModel extends model
$class = "c-$id" . (in_array($id, array('budget', 'teamCount', 'estimate', 'consume')) ? ' c-number' : '');
if($id == 'id') $class .= ' cell-id';
if($id == 'code') $title = "title={$project->code}";
if($id == 'name')