diff --git a/module/product/model.php b/module/product/model.php
index b93c0cd01f..a31ae455e0 100755
--- a/module/product/model.php
+++ b/module/product/model.php
@@ -283,7 +283,7 @@ class productModel extends model
->beginIF($programID)->andWhere('t1.program')->eq($programID)->fi()
->beginIF($line > 0)->andWhere('t1.line')->eq($line)->fi()
->beginIF(!$this->app->user->admin)->andWhere('t1.id')->in($this->app->user->view->products)->fi()
- ->andWhere('t1.vision')->eq($this->config->vision)->fi()
+ ->andWhere("FIND_IN_SET('{$this->config->vision}', t1.vision)")
->beginIF($status == 'noclosed')->andWhere('t1.status')->ne('closed')->fi()
->beginIF(!in_array($status, array('all', 'noclosed', 'involved', 'review'), true))->andWhere('t1.status')->in($status)->fi()
->beginIF($status == 'involved')
@@ -341,7 +341,7 @@ class productModel extends model
->andWhere('t1.deleted')->eq(0)
->andWhere('t1.shadow')->eq(0)
->beginIF(!$this->app->user->admin)->andWhere('t1.id')->in($this->app->user->view->products)->fi()
- ->andWhere('t1.vision')->eq($this->config->vision)->fi()
+ ->andWhere("FIND_IN_SET('{$this->config->vision}', t1.vision)")
->orderBy('t1.order_asc')
->fetchAll('id');
@@ -372,9 +372,9 @@ class productModel extends model
->beginIF(strpos($mode, 'all') === false)->andWhere('t1.deleted')->eq(0)->fi()
->beginIF($programID)->andWhere('t1.program')->eq($programID)->fi()
->beginIF(strpos($mode, 'noclosed') !== false)->andWhere('t1.status')->ne('closed')->fi()
- ->beginIF(!$this->app->user->admin and $this->config->vision == 'rnd')->andWhere('t1.id')->in($views)->fi()
+ ->beginIF(!$this->app->user->admin and $this->config->vision != 'lite')->andWhere('t1.id')->in($views)->fi()
->beginIF($shadow !== 'all')->andWhere('t1.shadow')->eq((int)$shadow)->fi()
- ->andWhere('t1.vision')->eq($this->config->vision)
+ ->andWhere("FIND_IN_SET('{$this->config->vision}', t1.vision)")
->orderBy("$orderBy, t2.order_asc, t1.line_desc, t1.order_asc")
->fetchPairs('id', 'name');
}
@@ -415,7 +415,7 @@ class productModel extends model
->leftJoin(TABLE_PRODUCT)->alias('t3')->on('t1.product=t3.id')
->where('t3.deleted')->eq(0)
->beginIF(!$this->app->user->admin)->andWhere('t3.id')->in($this->app->user->view->products)->fi()
- ->andWhere('t3.vision')->eq($this->config->vision)->fi()
+ ->andWhere("FIND_IN_SET('{$this->config->vision}', t3.vision)")
->beginIF($model != 'all')->andWhere('t2.model')->eq($model)
->fetchPairs('id', 'name');
}
@@ -451,8 +451,8 @@ class productModel extends model
->where('1=1')
->beginIF($noDeleted)->andWhere('t2.deleted')->eq(0)->fi()
->beginIF(!empty($projectID))->andWhere('t1.project')->in($projectID)->fi()
- ->beginIF(!$this->app->user->admin and $this->config->vision == 'rnd')->andWhere('t2.id')->in($views)->fi()
- ->andWhere('t2.vision')->eq($this->config->vision)
+ ->beginIF(!$this->app->user->admin and $this->config->vision != 'lite')->andWhere('t2.id')->in($views)->fi()
+ ->andWhere("FIND_IN_SET('{$this->config->vision}', t2.vision)")
->beginIF(strpos($status, 'noclosed') !== false)->andWhere('t2.status')->ne('closed')->fi()
->orderBy($orderBy . 't2.order asc')
->fetchAll();
@@ -625,7 +625,7 @@ class productModel extends model
$products = $this->dao->select("t1.id, t1.name, t1.program, t2.name AS programName")->from(TABLE_PRODUCT)->alias('t1')
->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.program = t2.id')
->where('t1.deleted')->eq('0')
- ->andWhere('t1.vision')->eq($this->config->vision)
+ ->andWhere("FIND_IN_SET('{$this->config->vision}', t1.vision)")
->andWhere('t1.shadow')->eq((int)0)
->andWhere('t1.status')->ne('closed')
->beginIF(!$this->app->user->admin)->andWhere('t1.id')->in($views)->fi()
@@ -2499,14 +2499,12 @@ class productModel extends model
}
elseif($module == 'feedback')
{
- if($this->config->vision == 'rnd')
- {
- return helper::createLink('feedback', 'admin', "browseType=byProduct&productID=%s");
- }
- elseif($this->config->vision == 'lite')
+ if($this->config->vision == 'lite')
{
return helper::createLink('feedback', 'browse', "browseType=byProduct&productID=%s");
}
+
+ return helper::createLink('feedback', 'admin', "browseType=byProduct&productID=%s");
}
elseif($module == 'ticket')
{
diff --git a/module/story/lang/de.php b/module/story/lang/de.php
index 7a74962f16..70caaf40ce 100644
--- a/module/story/lang/de.php
+++ b/module/story/lang/de.php
@@ -369,6 +369,9 @@ $lang->story->action->unlinkrelatedstory = array('main' => '$date, Verknüpfu
$lang->story->action->unlinkchildstory = array('main' => '$date, Verknüpfung aufgelöst durch $actor Story $extra.');
$lang->story->action->recalledchange = array('main' => '$date, Undo changes by \$actor.');
$lang->story->action->synctwins = array('main' => "\$date, the system judges that this story is adjusted synchronously due to the \$operate of twin story \$extra.", 'operate' => 'operateList');
+$lang->story->action->linked2roadmap = array('main' => '$date, linked by $actor to Roadmap $extra');
+$lang->story->action->unlinkedfromroadmap = array('main' => '$date, unlinked by $actor from Roadmap $extra.');
+$lang->story->action->changedbycharter = array('main' => '$date, launched by $actor for charter $extra, Synchronously adjust the story status to launched.');
/* Statistical statement. */
$lang->story->report = new stdclass();
diff --git a/module/story/lang/en.php b/module/story/lang/en.php
index 1500682f9d..2e089b124c 100644
--- a/module/story/lang/en.php
+++ b/module/story/lang/en.php
@@ -369,6 +369,9 @@ $lang->story->action->unlinkrelatedstory = array('main' => '$date, unlinked b
$lang->story->action->unlinkchildstory = array('main' => '$date, unlinked by $actor Decomposed Story $extra.');
$lang->story->action->recalledchange = array('main' => '$date, Undo changes by \$actor.');
$lang->story->action->synctwins = array('main' => "\$date, the system judges that this story is adjusted synchronously due to the \$operate of twin story \$extra.", 'operate' => 'operateList');
+$lang->story->action->linked2roadmap = array('main' => '$date, linked by $actor to Roadmap $extra');
+$lang->story->action->unlinkedfromroadmap = array('main' => '$date, unlinked by $actor from Roadmap $extra.');
+$lang->story->action->changedbycharter = array('main' => '$date, launched by $actor for charter $extra, Synchronously adjust the story status to launched.');
/* Statistical statement. */
$lang->story->report = new stdclass();
diff --git a/module/story/lang/fr.php b/module/story/lang/fr.php
index b0a5906132..13a25a5565 100644
--- a/module/story/lang/fr.php
+++ b/module/story/lang/fr.php
@@ -369,6 +369,9 @@ $lang->story->action->unlinkrelatedstory = array('main' => '$date, dissociée
$lang->story->action->unlinkchildstory = array('main' => '$date, dissociée par $actor de la sous-Story $extra.');
$lang->story->action->recalledchange = array('main' => '$date, Undo changes by \$actor.');
$lang->story->action->synctwins = array('main' => "\$date, the system judges that this story is adjusted synchronously due to the \$operate of twin story \$extra.", 'operate' => 'operateList');
+$lang->story->action->linked2roadmap = array('main' => '$date, linked by $actor to Roadmap $extra');
+$lang->story->action->unlinkedfromroadmap = array('main' => '$date, unlinked by $actor from Roadmap $extra.');
+$lang->story->action->changedbycharter = array('main' => '$date, launched by $actor for charter $extra, Synchronously adjust the story status to launched.');
/* Statistical statement. */
$lang->story->report = new stdclass();
diff --git a/module/story/lang/zh-cn.php b/module/story/lang/zh-cn.php
index 1e6a610eef..14d8eb139d 100644
--- a/module/story/lang/zh-cn.php
+++ b/module/story/lang/zh-cn.php
@@ -369,6 +369,9 @@ $lang->story->action->unlinkrelatedstory = array('main' => "\$date, 由 story->action->unlinkchildstory = array('main' => "\$date, 由 \$actor 移除细分{$lang->SRCommon} \$extra。");
$lang->story->action->recalledchange = array('main' => "\$date, 由 \$actor 撤销变更。");
$lang->story->action->synctwins = array('main' => "\$date, 系统判断由于孪生需求 \$extra \$operate,本需求同步调整。", 'operate' => 'operateList');
+$lang->story->action->linked2roadmap = array('main' => '$date, 由 $actor 关联到路标 $extra。');
+$lang->story->action->unlinkedfromroadmap = array('main' => '$date, 由 $actor 从路标 $extra 移除。');
+$lang->story->action->changedbycharter = array('main' => '$date, 由 $actor 通过立项申请 $extra ,需求状态同步调整为已立项。');
/* 统计报表。*/
$lang->story->report = new stdclass();
diff --git a/module/story/model.php b/module/story/model.php
index 1c57920187..d0f3677dbb 100644
--- a/module/story/model.php
+++ b/module/story/model.php
@@ -24,7 +24,7 @@ class storyModel extends model
{
$story = $this->dao->select('*')->from(TABLE_STORY)
->where('id')->eq($storyID)
- ->andWhere('vision')->eq($this->config->vision)
+ ->andWhere("FIND_IN_SET('{$this->config->vision}', vision)")
->fetch();
if(!$story) return false;
@@ -930,7 +930,7 @@ class storyModel extends model
}
}
- if($this->config->vision != 'ipd')
+ if($this->config->vision != 'or')
{
/* Unchanged product when editing requirements on site. */
$storyProjectID = $this->dao->select('t2.hasProduct')->from(TABLE_PROJECTPRODUCT)->alias('t1')
@@ -3040,7 +3040,7 @@ class storyModel extends model
->beginIF(!empty($moduleIdList))->andWhere('module')->in($moduleIdList)->fi()
->beginIF(!empty($excludeStories))->andWhere('id')->notIN($excludeStories)->fi()
->beginIF($status and $status != 'all')->andWhere('status')->in($status)->fi()
- ->andWhere('vision')->eq($this->config->vision)
+ ->andWhere("FIND_IN_SET('{$this->config->vision}', vision)")
->andWhere('type')->eq($type)
->andWhere('deleted')->eq(0)
->orderBy($orderBy)
@@ -3253,7 +3253,7 @@ class storyModel extends model
$stories = $sql->where('t1.product')->in($productID)
->andWhere('t1.deleted')->eq(0)
- ->andWhere('t1.vision')->eq($this->config->vision)
+ ->andWhere("FIND_IN_SET('{$this->config->vision}', t1.vision)")
->andWhere('t1.type')->eq($type)
->beginIF($branch != 'all')->andWhere("t1.branch")->eq($branch)->fi()
->beginIF($modules)->andWhere("t1.module")->in($modules)->fi()
@@ -3291,7 +3291,7 @@ class storyModel extends model
->beginIF($branch)->andWhere("branch")->eq($branch)->fi()
->beginIF($modules)->andWhere("module")->in($modules)->fi()
->andWhere('deleted')->eq(0)
- ->andWhere('vision')->eq($this->config->vision)
+ ->andWhere("FIND_IN_SET('{$this->config->vision}', vision)")
->andWhere('stage')->in('developed,released')
->andWhere('status')->ne('closed')
->orderBy($orderBy)
@@ -3469,7 +3469,7 @@ class storyModel extends model
->where($sql)
->beginIF($productID != 'all' and $productID != '')->andWhere('t1.`product`')->eq((int)$productID)->fi()
->andWhere('t1.deleted')->eq(0)
- ->andWhere('t1.vision')->eq($this->config->vision)
+ ->andWhere("FIND_IN_SET('{$this->config->vision}', t1.vision)")
->andWhere('t1.type')->eq($type)
->orderBy($orderBy)
->page($pager, 't1.id')
@@ -3845,7 +3845,7 @@ class storyModel extends model
$stories = $sql->where('t1.deleted')->eq(0)
->andWhere('t2.deleted')->eq('0')
->andWhere('t1.type')->eq($storyType)
- ->andWhere('t1.vision')->eq($this->config->vision)
+ ->andWhere("FIND_IN_SET('{$this->config->vision}', t1.vision)")
->beginIF($type != 'closedBy' and $this->app->moduleName == 'block')->andWhere('t1.status')->ne('closed')->fi()
->beginIF($type != 'all')
->beginIF($type == 'assignedTo')->andWhere('t1.assignedTo')->eq($account)->fi()
@@ -3885,7 +3885,7 @@ class storyModel extends model
->where('deleted')->eq(0)
->andWhere('status')->ne('closed')
->andWhere('type')->eq($type)
- ->andWhere('vision')->eq($this->config->vision)
+ ->andWhere("FIND_IN_SET('{$this->config->vision}', vision)")
->andWhere('assignedTo')->eq($account)
->andWhere('product')->ne(0)
->beginIF(!empty($skipProductIDList))->andWhere('product')->notin($skipProductIDList)->fi()
@@ -5038,7 +5038,7 @@ class storyModel extends model
$account = $this->app->user->account;
$storyLink = helper::createLink('story', 'view', "storyID=$story->id&version=0¶m=&storyType=$story->type");
$canView = common::hasPriv($story->type, 'view', null, "storyType=$story->type");
- if($this->config->vision == 'ipd') $this->app->loadLang('demand');
+ if($this->config->vision == 'or') $this->app->loadLang('demand');
if($tab == 'project')
{