* Finish task #36070.

This commit is contained in:
tianshujie98
2021-02-25 17:05:03 +08:00
parent 95dbdc51c2
commit ca3ee258ad
6 changed files with 73 additions and 35 deletions
+2
View File
@@ -20,6 +20,8 @@ ALTER TABLE `zt_project` ADD `parentVersion` smallint(6) NOT NULL AFTER `version
ALTER TABLE `zt_project` ADD `planDuration` int(11) NOT NULL AFTER `parentVersion`;
ALTER TABLE `zt_project` ADD `realDuration` int(11) NOT NULL AFTER `planDuration`;
ALTER TABLE `zt_project` ADD `output` text NOT NULL AFTER `milestone`;
ALTER TABLE `zt_project` ADD `lastEditedBy` varchar(30) NOT NULL DEFAULT '' AFTER `openedVersion`;
ALTER TABLE `zt_project` ADD `lastEditedDate` datetime NOT NULL AFTER `lastEditedBy`;
ALTER TABLE `zt_product` ADD `program` mediumint(8) unsigned NOT NULL AFTER `id`;
ALTER TABLE `zt_product` ADD `bind` enum('0','1') NOT NULL DEFAULT '0' AFTER `code`;
+2
View File
@@ -683,6 +683,8 @@ CREATE TABLE IF NOT EXISTS `zt_project` (
`openedBy` varchar(30) NOT NULL DEFAULT '',
`openedDate` datetime NOT NULL,
`openedVersion` varchar(20) NOT NULL,
`lastEditedBy` varchar(30) NOT NULL DEFAULT '',
`lastEditedDate` datetime NOT NULL,
`closedBy` varchar(30) NOT NULL DEFAULT '',
`closedDate` datetime NOT NULL,
`canceledBy` varchar(30) NOT NULL DEFAULT '',
+6 -1
View File
@@ -1654,7 +1654,12 @@ class program extends control
{
$newID = array_shift($idList);
if($id == $newID) continue;
$this->dao->update(TABLE_PROJECT)->set('`order`')->eq($order)->where('id')->eq($newID)->exec();
$this->dao->update(TABLE_PROJECT)
->set('`order`')->eq($order)
->set('lastEditedBy')->eq($this->app->user->account)
->set('lastEditedDate')->eq(helper::now())
->where('id')->eq($newID)
->exec();
}
}
+9 -3
View File
@@ -1480,6 +1480,8 @@ class programModel extends model
->setDefault('openedBy', $this->app->user->account)
->setDefault('openedDate', helper::now())
->setDefault('team', substr($this->post->name, 0, 30))
->setDefault('lastEditedBy', $this->app->user->account)
->setDefault('lastEditedDate', helper::now())
->add('type', 'project')
->join('whitelist', ',')
->stripTags($this->config->program->editor->prjcreate['id'], $this->config->allowedTags)
@@ -1665,6 +1667,8 @@ class programModel extends model
$project = fixer::input('post')
->setDefault('team', substr($this->post->name, 0, 30))
->setDefault('lastEditedBy', $this->app->user->account)
->setDefault('lastEditedDate', helper::now())
->setIF($this->post->delta == 999, 'end', LONG_TIME)
->setIF($this->post->delta == 999, 'days', 0)
->setIF($this->post->begin == '0000-00-00', 'begin', '')
@@ -1783,9 +1787,11 @@ class programModel extends model
$projectID = (int)$projectID;
$projects[$projectID] = new stdClass();
$projects[$projectID]->name = $projectName;
$projects[$projectID]->parent = $parentProgram;
$projects[$projectID]->PM = $data->PMs[$projectID];
$projects[$projectID]->name = $projectName;
$projects[$projectID]->parent = $parentProgram;
$projects[$projectID]->PM = $data->PMs[$projectID];
$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->program->PRJName, $projectName);
+34 -16
View File
@@ -342,6 +342,8 @@ class projectModel extends model
->setDefault('openedBy', $this->app->user->account)
->setDefault('openedDate', helper::now())
->setDefault('openedVersion', $this->config->version)
->setDefault('lastEditedBy', $this->app->user->account)
->setDefault('lastEditedDate', helper::now())
->setDefault('team', substr($this->post->name,0, 30))
->setIF($this->config->systemMode == 'new', 'project', $this->session->PRJ)
->setIF($this->config->systemMode == 'new', 'parent', $this->session->PRJ)
@@ -470,6 +472,8 @@ class projectModel extends model
/* Get the data from the post. */
$project = fixer::input('post')
->setDefault('lastEditedBy', $this->app->user->account)
->setDefault('lastEditedDate', helper::now())
->setIF(helper::isZeroDate($this->post->begin), 'begin', '')
->setIF(helper::isZeroDate($this->post->end), 'end', '')
->setIF($this->post->acl != 'custom', 'whitelist', '')
@@ -565,21 +569,23 @@ class projectModel extends model
$projectID = (int)$projectID;
$projects[$projectID] = new stdClass();
$projects[$projectID]->name = $projectName;
$projects[$projectID]->code = $projectCode;
$projects[$projectID]->PM = $data->PMs[$projectID];
$projects[$projectID]->PO = $data->POs[$projectID];
$projects[$projectID]->QD = $data->QDs[$projectID];
$projects[$projectID]->RD = $data->RDs[$projectID];
$projects[$projectID]->lifetime = $data->lifetimes[$projectID];
$projects[$projectID]->attribute = $data->attributes[$projectID];
$projects[$projectID]->status = $data->statuses[$projectID];
$projects[$projectID]->begin = $data->begins[$projectID];
$projects[$projectID]->end = $data->ends[$projectID];
$projects[$projectID]->team = $data->teams[$projectID];
$projects[$projectID]->desc = htmlspecialchars_decode($data->descs[$projectID]);
$projects[$projectID]->days = $data->dayses[$projectID];
$projects[$projectID]->order = $data->orders[$projectID];
$projects[$projectID]->name = $projectName;
$projects[$projectID]->code = $projectCode;
$projects[$projectID]->PM = $data->PMs[$projectID];
$projects[$projectID]->PO = $data->POs[$projectID];
$projects[$projectID]->QD = $data->QDs[$projectID];
$projects[$projectID]->RD = $data->RDs[$projectID];
$projects[$projectID]->lifetime = $data->lifetimes[$projectID];
$projects[$projectID]->attribute = $data->attributes[$projectID];
$projects[$projectID]->status = $data->statuses[$projectID];
$projects[$projectID]->begin = $data->begins[$projectID];
$projects[$projectID]->end = $data->ends[$projectID];
$projects[$projectID]->team = $data->teams[$projectID];
$projects[$projectID]->desc = htmlspecialchars_decode($data->descs[$projectID]);
$projects[$projectID]->days = $data->dayses[$projectID];
$projects[$projectID]->order = $data->orders[$projectID];
$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);
@@ -652,6 +658,8 @@ class projectModel extends model
$project = fixer::input('post')
->add('realBegan', $now)
->setDefault('status', 'doing')
->setDefault('lastEditedBy', $this->app->user->account)
->setDefault('lastEditedDate', $now)
->remove('comment')->get();
$this->dao->update(TABLE_PROJECT)->data($project)->autoCheck()->where('id')->eq((int)$projectID)->exec();
@@ -670,7 +678,11 @@ class projectModel extends model
{
$oldProject = $this->getById($projectID);
$now = helper::now();
$project = fixer::input('post')->remove('comment')->get();
$project = fixer::input('post')
->setDefault('lastEditedBy', $this->app->user->account)
->setDefault('lastEditedDate', $now)
->remove('comment')
->get();
$this->dao->update(TABLE_PROJECT)->data($project)
->autoCheck()
@@ -693,6 +705,8 @@ class projectModel extends model
$now = helper::now();
$project = fixer::input('post')
->setDefault('status', 'suspended')
->setDefault('lastEditedBy', $this->app->user->account)
->setDefault('lastEditedDate', $now)
->remove('comment')->get();
$this->dao->update(TABLE_PROJECT)->data($project)
@@ -716,6 +730,8 @@ class projectModel extends model
$now = helper::now();
$project = fixer::input('post')
->setDefault('status', 'doing')
->setDefault('lastEditedBy', $this->app->user->account)
->setDefault('lastEditedDate', $now)
->remove('comment,readjustTime,readjustTask')
->get();
@@ -783,6 +799,8 @@ class projectModel extends model
->setDefault('status', 'closed')
->setDefault('closedBy', $this->app->user->account)
->setDefault('closedDate', $now)
->setDefault('lastEditedBy', $this->app->user->account)
->setDefault('lastEditedDate', $now)
->remove('comment')
->get();
+20 -15
View File
@@ -1060,6 +1060,7 @@ class upgradeModel extends model
$releases = $this->dao->select('id, `desc`')->from(TABLE_RELEASE)->fetchAll();
$projects = $this->dao->select('id, `desc`, goal')->from(TABLE_PROJECT)->fetchAll();
$builds = $this->dao->select('id, `desc`')->from(TABLE_BUILD)->fetchAll();
$account = isset($this->app->user->account) ? $this->app->user->account : '';
foreach($products as $product)
{
@@ -1084,8 +1085,10 @@ class upgradeModel extends model
foreach($projects as $project)
{
$project->desc = nl2br($project->desc);
$project->goal = nl2br($project->goal);
$project->desc = nl2br($project->desc);
$project->goal = nl2br($project->goal);
$project->lastEditedBy = $account;
$project->lastEditedDate = helper::now();
$this->dao->update(TABLE_PROJECT)->data($project)->where('id')->eq($project->id)->exec();
$this->saveLogs($this->dao->get());
}
@@ -4068,19 +4071,21 @@ class upgradeModel extends model
/* Insert project. */
$project = new stdclass();
$project->name = $data->PRJName;
$project->type = 'project';
$project->model = 'scrum';
$project->parent = $programID;
$project->status = $data->PRJStatus;
$project->begin = $data->begin;
$project->end = isset($data->end) ? $data->end : LONG_TIME;
$project->PM = $data->PM;
$project->auth = 'extend';
$project->openedBy = $account;
$project->openedDate = helper::now();
$project->openedVersion = $this->config->version;
$project->acl = $data->acl;
$project->name = $data->PRJName;
$project->type = 'project';
$project->model = 'scrum';
$project->parent = $programID;
$project->status = $data->PRJStatus;
$project->begin = $data->begin;
$project->end = isset($data->end) ? $data->end : LONG_TIME;
$project->PM = $data->PM;
$project->auth = 'extend';
$project->openedBy = $account;
$project->openedDate = helper::now();
$project->openedVersion = $this->config->version;
$project->lastEditedBy = $account;
$project->lastEditedDate = helper::now();
$project->acl = $data->acl;
$this->lang->project->name = $this->lang->program->PRJName;