* Supports cross-version upgrade.
This commit is contained in:
@@ -0,0 +1,171 @@
|
||||
CREATE TABLE `zt_demandpool` (
|
||||
`id` int(8) NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) NOT NULL,
|
||||
`desc` mediumtext NOT NULL,
|
||||
`status` char(30) NOT NULL,
|
||||
`createdBy` char(30) NOT NULL,
|
||||
`createdDate` date NOT NULL,
|
||||
`owner` text NOT NULL,
|
||||
`reviewer` text NOT NULL,
|
||||
`acl` char(30) NOT NULL,
|
||||
`deleted` enum('0','1') NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
CREATE TABLE `zt_demand` (
|
||||
`id` int(8) NOT NULL AUTO_INCREMENT,
|
||||
`pool` int(8) NOT NULL,
|
||||
`module` int(8) NOT NULL,
|
||||
`product` mediumint(8) NOT NULL,
|
||||
`parent` mediumint(8) NOT NULL,
|
||||
`pri` char(30) NOT NULL,
|
||||
`category` char(30) NOT NULL,
|
||||
`source` char(30) NOT NULL,
|
||||
`sourceNote` varchar(255) NOT NULL,
|
||||
`title` varchar(255) NOT NULL,
|
||||
`feedbackedBy` varchar(255) NOT NULL,
|
||||
`email` varchar(255) NOT NULL,
|
||||
`assignedTo` char(30) NOT NULL,
|
||||
`assignedDate` datetime NOT NULL,
|
||||
`reviewedBy` text NOT NULL,
|
||||
`reviewedDate` datetime NOT NULL,
|
||||
`status` char(30) NOT NULL,
|
||||
`duration` char(30) NOT NULL,
|
||||
`BSA` char(30) NOT NULL,
|
||||
`story` mediumint(8) NOT NULL,
|
||||
`roadmap` mediumint(8) NOT NULL,
|
||||
`createdBy` char(30) NOT NULL,
|
||||
`createdDate` datetime NOT NULL,
|
||||
`mailto` text NOT NULL,
|
||||
`duplicateDemand` mediumint(8) NOT NULL,
|
||||
`childDemands` varchar(255) NOT NULL,
|
||||
`version` varchar(255) NOT NULL,
|
||||
`vision` varchar(255) NOT NULL DEFAULT 'or',
|
||||
`color` varchar(255) NOT NULL,
|
||||
`changedBy` char(30) NOT NULL,
|
||||
`changedDate` datetime NOT NULL,
|
||||
`closedBy` char(30) NOT NULL,
|
||||
`closedDate` datetime NOT NULL,
|
||||
`closedReason` varchar(30) NOT NULL,
|
||||
`submitedBy` varchar(30) NOT NULL,
|
||||
`lastEditedBy` varchar(30) NOT NULL DEFAULT '',
|
||||
`lastEditedDate` datetime NOT NULL,
|
||||
`activatedDate` datetime NOT NULL,
|
||||
`distributedBy` varchar(30) NOT NULL DEFAULT '',
|
||||
`distributedDate` datetime NOT NULL,
|
||||
`deleted` enum('0','1') NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
CREATE TABLE `zt_demandspec` (
|
||||
`demand` mediumint(9) NOT NULL,
|
||||
`version` smallint(6) NOT NULL,
|
||||
`title` varchar(255) NOT NULL,
|
||||
`spec` mediumtext NOT NULL,
|
||||
`verify` mediumtext NOT NULL,
|
||||
`files` text NOT NULL,
|
||||
UNIQUE KEY `demand` (`demand`,`version`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
CREATE TABLE `zt_demandreview` (
|
||||
`demand` mediumint(9) NOT NULL,
|
||||
`version` smallint(6) NOT NULL,
|
||||
`reviewer` varchar(30) NOT NULL,
|
||||
`result` varchar(30) NOT NULL,
|
||||
`reviewDate` datetime NOT NULL,
|
||||
UNIQUE KEY `demand` (`demand`,`version`,`reviewer`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
CREATE TABLE `zt_charter` (
|
||||
`id` int(8) NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(255) NOT NULL,
|
||||
`level` int(8) NOT NULL,
|
||||
`category` char(30) NOT NULL,
|
||||
`market` varchar(30) NOT NULL,
|
||||
`appliedBy` char(30) NOT NULL,
|
||||
`appliedDate` datetime NOT NULL,
|
||||
`budget` char(30) NOT NULL,
|
||||
`budgetUnit` char(30) NOT NULL,
|
||||
`product` mediumint(8) NOT NULL,
|
||||
`roadmap` mediumint(8) NOT NULL,
|
||||
`spec` mediumtext NOT NULL,
|
||||
`status` char(30) NOT NULL,
|
||||
`createdBy` char(30) NOT NULL,
|
||||
`createdDate` datetime NOT NULL,
|
||||
`charterFiles` text NOT NULL,
|
||||
`reviewedBy` char(30) NOT NULL,
|
||||
`reviewedResult` char(30) NOT NULL,
|
||||
`reviewedDate` datetime NOT NULL,
|
||||
`meetingDate` date NOT NULL,
|
||||
`meetingLocation` varchar(255) NOT NULL,
|
||||
`meetingMinutes` mediumtext NOT NULL,
|
||||
`deleted` enum('0','1') NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
REPLACE INTO `zt_config` (`vision`, `owner`, `module`, `section`, `key`, `value`) VALUES ('or', 'system', 'demand', '', 'reviewRules', 'allpass');
|
||||
REPLACE INTO `zt_config` (`vision`, `owner`, `module`, `section`, `key`, `value`) VALUES ('or', 'system', 'demand', '', 'needReview', 1);
|
||||
|
||||
ALTER TABLE `zt_story` ADD `BSA` char(30) NOT NULL AFTER `notifyEmail`;
|
||||
ALTER TABLE `zt_story` ADD `duration` char(30) NOT NULL AFTER `notifyEmail`;
|
||||
ALTER TABLE `zt_story` ADD `demand` mediumint(8) NOT NULL AFTER `notifyEmail`;
|
||||
ALTER TABLE `zt_product` ADD `PMT` text COLLATE 'utf8_general_ci' NOT NULL AFTER `reviewer`;
|
||||
ALTER TABLE `zt_story` ADD `submitedBy` varchar(30) NOT NULL AFTER `changedDate`;
|
||||
ALTER TABLE `zt_story` ADD `roadmap` VARCHAR(255) NOT NULL DEFAULT '' AFTER `plan`;
|
||||
ALTER TABLE `zt_charter` ADD `check` enum('0','1') NOT NULL DEFAULT '0';
|
||||
ALTER TABLE `zt_charter` modify column reviewedBy varchar(255);
|
||||
|
||||
CREATE TABLE `zt_roadmap` (
|
||||
`id` mediumint(8) NOT NULL AUTO_INCREMENT PRIMARY KEY,
|
||||
`product` mediumint(8) NOT NULL,
|
||||
`branch` mediumint(8) NOT NULL,
|
||||
`name` varchar(255) NOT NULL,
|
||||
`status` char(30) NOT NULL,
|
||||
`begin` date NOT NULL,
|
||||
`end` date NOT NULL,
|
||||
`desc` longtext NOT NULL,
|
||||
`createdBy` char(30) NOT NULL,
|
||||
`createdDate` date NOT NULL,
|
||||
`closedBy` char(30) NOT NULL,
|
||||
`closedDate` datetime NOT NULL,
|
||||
`closedReason` enum('done','canceled') DEFAULT NULL;
|
||||
`deleted` enum('0','1') NOT NULL DEFAULT '0'
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
CREATE TABLE `zt_roadmapstory` (
|
||||
`roadmap` mediumint(8) unsigned NOT NULL,
|
||||
`story` mediumint(8) unsigned NOT NULL,
|
||||
`order` MEDIUMINT UNSIGNED NOT NULL,
|
||||
UNIQUE KEY `roadmap_story` (`roadmap`,`story`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
ALTER TABLE `zt_story` MODIFY `status` enum('','changing','active','draft','closed','reviewing','launched','developing') NOT NULL DEFAULT '' AFTER `estimate`;
|
||||
|
||||
ALTER TABLE `zt_project`
|
||||
ADD `charter` mediumint(8) NOT NULL DEFAULT 0 AFTER `project`,
|
||||
ADD `category` char(30) COLLATE 'utf8_general_ci' NOT NULL AFTER `type`;
|
||||
|
||||
REPLACE INTO `zt_stage` (`name`, `percent`, `type`, `projectType`, `createdBy`, `createdDate`, `editedBy`, `editedDate`, `deleted`) VALUES
|
||||
('概念', '10', 'concept', 'ipd', 'admin', '2020-02-08 21:08:30', 'admin', '2020-02-12 13:50:27', '0'),
|
||||
('计划', '10', 'plan', 'ipd', 'admin', '2020-02-08 21:08:30', 'admin', '2020-02-12 13:50:27', '0'),
|
||||
('开发', '50', 'develop', 'ipd', 'admin', '2020-02-08 21:08:30', 'admin', '2020-02-12 13:50:27', '0'),
|
||||
('验证', '15', 'qualify', 'ipd', 'admin', '2020-02-08 21:08:30', 'admin', '2020-02-12 13:50:27', '0'),
|
||||
('发布', '10', 'launch', 'ipd', 'admin', '2020-02-08 21:08:30', 'admin', '2020-02-12 13:50:27', '0'),
|
||||
('全生命周期', '5', 'lifecycle', 'ipd', 'admin', '2020-02-08 21:08:45', 'admin', '2020-02-12 13:50:27', '0');
|
||||
|
||||
ALTER TABLE `zt_review` ADD `begin` date NULL AFTER `createdDate`;
|
||||
ALTER TABLE `zt_review` MODIFY `doc` varchar(255);
|
||||
ALTER TABLE `zt_review` MODIFY `docVersion` varchar(255);
|
||||
|
||||
ALTER TABLE `zt_object` ADD `end` date NULL AFTER `designEst`;
|
||||
|
||||
ALTER TABLE `zt_roadmap` ADD `closedReason` enum('done','canceled') DEFAULT NULL AFTER `closedDate`;
|
||||
|
||||
ALTER TABLE `zt_charter` ADD `closedBy` char(30) NULL;
|
||||
ALTER TABLE `zt_charter` ADD `closedDate` datetime NULL;
|
||||
ALTER TABLE `zt_charter` ADD `closedReason` varchar(255) NULL;
|
||||
ALTER TABLE `zt_charter` ADD `activatedBy` char(30) NULL;
|
||||
ALTER TABLE `zt_charter` ADD `activatedDate` datetime NULL;
|
||||
|
||||
UPDATE `zt_priv` SET `vision` = ',rnd,or,' WHERE `module` = 'requirement' AND `method` = 'import';
|
||||
UPDATE `zt_priv` SET `vision` = ',rnd,or,' WHERE `module` = 'requirement' AND `method` = 'exportTemplate';
|
||||
@@ -5321,9 +5321,9 @@ class executionModel extends model
|
||||
|
||||
$title = '';
|
||||
$disabled = '';
|
||||
$this->app->loadLang('stage');
|
||||
if($project and $project->model == 'ipd' and !$isChild)
|
||||
{
|
||||
$this->app->loadLang('stage');
|
||||
$title = $execution->ipdStage['canStart'] ? '' : sprintf($this->lang->execution->disabledTip->startTip, $this->lang->stage->ipdTypeList[$execution->ipdStage['preAttribute']], $this->lang->stage->ipdTypeList[$execution->attribute]);
|
||||
$disabled = $execution->ipdStage['canStart'] ? '' : 'disabled';
|
||||
}
|
||||
|
||||
@@ -92,10 +92,8 @@ js::set('isIntranet', helper::isIntranet());
|
||||
<?php else:?>
|
||||
<?php $version = $config->version;?>
|
||||
<?php $versionName = $lang->pmsName . $config->version;?>
|
||||
<?php if($config->systemMode != 'PLM'):?>
|
||||
<a href='javascript:void(0)' id='bizLink' class='btn btn-link' style='color: #B57D4F;'><span class='upgrade'><?php echo $lang->bizName;?></span> <i class='text-danger icon-pro-version'></i></a>
|
||||
<?php endif;?>
|
||||
<?php endif;?>
|
||||
<a href='<?php echo $lang->website;?>' class="btn btn-sm btn-link" target='_blank' title='<?php echo $version;?>'>
|
||||
<i class="icon icon-zentao" style="font-size: 24px;"></i>
|
||||
<span class='version'><?php echo $versionName;?></span>
|
||||
|
||||
@@ -96,14 +96,6 @@ class upgrade extends control
|
||||
$this->config->version = ($this->config->edition == 'biz' ? 'LiteVIP' : 'Lite') . $this->config->liteVersion;
|
||||
}
|
||||
|
||||
if($this->config->edition == 'ipd')
|
||||
{
|
||||
foreach($this->lang->upgrade->fromVersions as $key => $value)
|
||||
{
|
||||
if(strpos($key, 'ipd') === false) unset($this->lang->upgrade->fromVersions[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
if($_POST) return print(js::locate(helper::createLink('upgrade', 'confirm', "fromVersion={$this->post->fromVersion}")));
|
||||
|
||||
$this->view->title = $this->lang->upgrade->common . $this->lang->colon . $this->lang->upgrade->selectVersion;
|
||||
|
||||
@@ -43,7 +43,7 @@ class upgradeModel extends model
|
||||
{
|
||||
if(!is_numeric($version[0])) continue;
|
||||
if(version_compare(str_replace('_', '.', $version), str_replace('_', '.', $openVersion)) < 0) continue;
|
||||
$versions[$version] = array('pro' => array(), 'biz' => array(), 'max' => array());
|
||||
$versions[$version] = array('pro' => array(), 'biz' => array(), 'max' => array(), 'ipd' => array());
|
||||
}
|
||||
if($fromEdition == 'open') return $versions;
|
||||
|
||||
@@ -67,6 +67,11 @@ class upgradeModel extends model
|
||||
if(isset($versions[$open])) $versions[$open]['max'][] = $max;
|
||||
}
|
||||
|
||||
/* Update ipd sql only from ipd. */
|
||||
foreach($this->config->upgrade->ipdVersion as $ipd => $open)
|
||||
{
|
||||
if(isset($versions[$open])) $versions[$open]['ipd'][] = $ipd;
|
||||
}
|
||||
return $versions;
|
||||
}
|
||||
|
||||
@@ -126,6 +131,15 @@ class upgradeModel extends model
|
||||
$this->execSQL($this->getUpgradeFile(str_replace('_', '.', $maxVersion)));
|
||||
$this->executeMax($maxVersion);
|
||||
}
|
||||
|
||||
/* Execute ipd. */
|
||||
foreach($chargedVersions['ipd'] as $ipdVersion)
|
||||
{
|
||||
$ipdVersion = array_search($openVersion, $this->config->upgrade->ipdVersion);
|
||||
$this->saveLogs("Execute $ipdVersion");
|
||||
$this->execSQL($this->getUpgradeFile(str_replace('_', '.', $ipdVersion)));
|
||||
$this->executeIpd($ipdVersion);
|
||||
}
|
||||
}
|
||||
|
||||
/* Means open source/pro upgrade to biz or max. */
|
||||
@@ -656,6 +670,9 @@ class upgradeModel extends model
|
||||
$this->fixMissedFlowField();
|
||||
}
|
||||
break;
|
||||
case '18_5':
|
||||
$this->execSQL($this->getUpgradeFile('ipdinstall'));
|
||||
break;
|
||||
}
|
||||
|
||||
$this->deletePatch();
|
||||
@@ -814,6 +831,17 @@ class upgradeModel extends model
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Process data for ipd.
|
||||
*
|
||||
* @param int $ipdVersion
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function executeIpd($ipdVersion)
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Create the confirm contents.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user