diff --git a/module/execution/model.php b/module/execution/model.php
index f7547627c6..8c8fae3e6b 100644
--- a/module/execution/model.php
+++ b/module/execution/model.php
@@ -2043,7 +2043,7 @@ class executionModel extends model
$data->order = ++$lastOrder;
$this->dao->insert(TABLE_PROJECTSTORY)->data($data)->exec();
$this->story->setStage($storyID);
- $action = $executionID == $this->session->PRJ ? 'linked2prj' : 'linked2execution';
+ $action = $executionID == $this->session->PRJ ? 'linked2project' : 'linked2execution';
$this->action->create('story', $storyID, $action, '', $executionID);
}
}
@@ -2119,7 +2119,8 @@ class executionModel extends model
}
$this->loadModel('story')->setStage($storyID);
- $this->loadModel('action')->create('story', $storyID, 'unlinkedfromexecution', '', $executionID);
+ $objectType = $executionID == $this->session->PRJ ? unlinkedfromproject : unlinkedfromexecution;
+ $this->loadModel('action')->create('story', $storyID, $objectType, '', $executionID);
$tasks = $this->dao->select('id')->from(TABLE_TASK)->where('story')->eq($storyID)->andWhere('execution')->eq($executionID)->andWhere('status')->in('wait,doing')->fetchPairs('id');
foreach($tasks as $taskID)
diff --git a/module/group/lang/resource.php b/module/group/lang/resource.php
index ecb72c2ef2..2acc1d244f 100644
--- a/module/group/lang/resource.php
+++ b/module/group/lang/resource.php
@@ -269,17 +269,19 @@ if($config->systemMode == 'new')
/* Project Story. */
$lang->resource->projectstory = new stdclass();
- $lang->resource->projectstory->story = 'story';
- $lang->resource->projectstory->track = 'track';
- $lang->resource->projectstory->view = 'view';
- $lang->resource->projectstory->linkStory = 'linkStory';
- $lang->resource->projectstory->unlinkStory = 'unlinkStory';
+ $lang->resource->projectstory->story = 'story';
+ $lang->resource->projectstory->track = 'track';
+ $lang->resource->projectstory->view = 'view';
+ $lang->resource->projectstory->linkStory = 'linkStory';
+ $lang->resource->projectstory->unlinkStory = 'unlinkStory';
+ $lang->resource->projectstory->importplanstories = 'importplanstories';
$lang->projectstory->methodOrder[5] = 'story';
$lang->projectstory->methodOrder[10] = 'track';
$lang->projectstory->methodOrder[15] = 'view';
$lang->projectstory->methodOrder[20] = 'linkStory';
$lang->projectstory->methodOrder[25] = 'unlinkStory';
+ $lang->projectstory->methodOrder[23] = 'importplanstories';
/* Release. */
$lang->resource->projectbuild = new stdclass();
@@ -1217,15 +1219,15 @@ $lang->tree->methodOrder[30] = 'delete';
/* Report. */
$lang->resource->report = new stdclass();
-$lang->resource->report->index = 'index';
-$lang->resource->report->projectDeviation = 'projectDeviation';
-$lang->resource->report->productSummary = 'productSummary';
-$lang->resource->report->bugCreate = 'bugCreate';
-$lang->resource->report->bugAssign = 'bugAssign';
-$lang->resource->report->workload = 'workload';
+$lang->resource->report->index = 'index';
+$lang->resource->report->executionDeviation = 'executionDeviation';
+$lang->resource->report->productSummary = 'productSummary';
+$lang->resource->report->bugCreate = 'bugCreate';
+$lang->resource->report->bugAssign = 'bugAssign';
+$lang->resource->report->workload = 'workload';
$lang->report->methodOrder[0] = 'index';
-$lang->report->methodOrder[5] = 'projectDeviation';
+$lang->report->methodOrder[5] = 'executionDeviation';
$lang->report->methodOrder[10] = 'productSummary';
$lang->report->methodOrder[15] = 'bugCreate';
$lang->report->methodOrder[20] = 'workload';
diff --git a/module/projectstory/lang/de.php b/module/projectstory/lang/de.php
index fb4cb26b0b..e7b910f23a 100644
--- a/module/projectstory/lang/de.php
+++ b/module/projectstory/lang/de.php
@@ -1,11 +1,12 @@
projectstory->common = "Project {$lang->SRCommon}";
-$lang->projectstory->index = "{$lang->SRCommon} Home";
-$lang->projectstory->view = "{$lang->SRCommon} Detail";
-$lang->projectstory->story = "{$lang->SRCommon} List";
-$lang->projectstory->track = 'Tracking Matrix';
-$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
-$lang->projectstory->unlinkStory = 'Unlinked' . $lang->SRCommon;
+$lang->projectstory->common = "Project {$lang->SRCommon}";
+$lang->projectstory->index = "{$lang->SRCommon} Home";
+$lang->projectstory->view = "{$lang->SRCommon} Detail";
+$lang->projectstory->story = "{$lang->SRCommon} List";
+$lang->projectstory->track = 'Tracking Matrix';
+$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
+$lang->projectstory->unlinkStory = 'Unlinked' . $lang->SRCommon;
+$lang->projectstory->importplanstories = 'Linked by plan' . $lang->SRCommon;
global $app;
$app->loadLang('product');
diff --git a/module/projectstory/lang/en.php b/module/projectstory/lang/en.php
index fb4cb26b0b..e7b910f23a 100644
--- a/module/projectstory/lang/en.php
+++ b/module/projectstory/lang/en.php
@@ -1,11 +1,12 @@
projectstory->common = "Project {$lang->SRCommon}";
-$lang->projectstory->index = "{$lang->SRCommon} Home";
-$lang->projectstory->view = "{$lang->SRCommon} Detail";
-$lang->projectstory->story = "{$lang->SRCommon} List";
-$lang->projectstory->track = 'Tracking Matrix';
-$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
-$lang->projectstory->unlinkStory = 'Unlinked' . $lang->SRCommon;
+$lang->projectstory->common = "Project {$lang->SRCommon}";
+$lang->projectstory->index = "{$lang->SRCommon} Home";
+$lang->projectstory->view = "{$lang->SRCommon} Detail";
+$lang->projectstory->story = "{$lang->SRCommon} List";
+$lang->projectstory->track = 'Tracking Matrix';
+$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
+$lang->projectstory->unlinkStory = 'Unlinked' . $lang->SRCommon;
+$lang->projectstory->importplanstories = 'Linked by plan' . $lang->SRCommon;
global $app;
$app->loadLang('product');
diff --git a/module/projectstory/lang/fr.php b/module/projectstory/lang/fr.php
index fb4cb26b0b..e7b910f23a 100644
--- a/module/projectstory/lang/fr.php
+++ b/module/projectstory/lang/fr.php
@@ -1,11 +1,12 @@
projectstory->common = "Project {$lang->SRCommon}";
-$lang->projectstory->index = "{$lang->SRCommon} Home";
-$lang->projectstory->view = "{$lang->SRCommon} Detail";
-$lang->projectstory->story = "{$lang->SRCommon} List";
-$lang->projectstory->track = 'Tracking Matrix';
-$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
-$lang->projectstory->unlinkStory = 'Unlinked' . $lang->SRCommon;
+$lang->projectstory->common = "Project {$lang->SRCommon}";
+$lang->projectstory->index = "{$lang->SRCommon} Home";
+$lang->projectstory->view = "{$lang->SRCommon} Detail";
+$lang->projectstory->story = "{$lang->SRCommon} List";
+$lang->projectstory->track = 'Tracking Matrix';
+$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
+$lang->projectstory->unlinkStory = 'Unlinked' . $lang->SRCommon;
+$lang->projectstory->importplanstories = 'Linked by plan' . $lang->SRCommon;
global $app;
$app->loadLang('product');
diff --git a/module/projectstory/lang/vi.php b/module/projectstory/lang/vi.php
index fb4cb26b0b..e7b910f23a 100644
--- a/module/projectstory/lang/vi.php
+++ b/module/projectstory/lang/vi.php
@@ -1,11 +1,12 @@
projectstory->common = "Project {$lang->SRCommon}";
-$lang->projectstory->index = "{$lang->SRCommon} Home";
-$lang->projectstory->view = "{$lang->SRCommon} Detail";
-$lang->projectstory->story = "{$lang->SRCommon} List";
-$lang->projectstory->track = 'Tracking Matrix';
-$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
-$lang->projectstory->unlinkStory = 'Unlinked' . $lang->SRCommon;
+$lang->projectstory->common = "Project {$lang->SRCommon}";
+$lang->projectstory->index = "{$lang->SRCommon} Home";
+$lang->projectstory->view = "{$lang->SRCommon} Detail";
+$lang->projectstory->story = "{$lang->SRCommon} List";
+$lang->projectstory->track = 'Tracking Matrix';
+$lang->projectstory->linkStory = 'Linked' . $lang->SRCommon;
+$lang->projectstory->unlinkStory = 'Unlinked' . $lang->SRCommon;
+$lang->projectstory->importplanstories = 'Linked by plan' . $lang->SRCommon;
global $app;
$app->loadLang('product');
diff --git a/module/projectstory/lang/zh-cn.php b/module/projectstory/lang/zh-cn.php
index 2d39182b70..a6baedf642 100644
--- a/module/projectstory/lang/zh-cn.php
+++ b/module/projectstory/lang/zh-cn.php
@@ -1,11 +1,12 @@
projectstory->common = "项目{$lang->SRCommon}";
-$lang->projectstory->index = "{$lang->SRCommon}主页";
-$lang->projectstory->view = "{$lang->SRCommon}详情";
-$lang->projectstory->story = "{$lang->SRCommon}列表";
-$lang->projectstory->track = '矩阵';
-$lang->projectstory->linkStory = '关联' . $lang->SRCommon;
-$lang->projectstory->unlinkStory = '移除' . $lang->SRCommon;
+$lang->projectstory->common = "项目{$lang->SRCommon}";
+$lang->projectstory->index = "{$lang->SRCommon}主页";
+$lang->projectstory->view = "{$lang->SRCommon}详情";
+$lang->projectstory->story = "{$lang->SRCommon}列表";
+$lang->projectstory->track = '矩阵';
+$lang->projectstory->linkStory = '关联' . $lang->SRCommon;
+$lang->projectstory->unlinkStory = '移除' . $lang->SRCommon;
+$lang->projectstory->importplanstories = '按计划关联' . $lang->SRCommon;
global $app;
$app->loadLang('product');
diff --git a/module/story/control.php b/module/story/control.php
index 8ae0d131f2..6dbedb4d3c 100644
--- a/module/story/control.php
+++ b/module/story/control.php
@@ -140,7 +140,7 @@ class story extends control
if($executionID != 0)
{
if($executionID != $this->session->PRJ) $this->loadModel('action')->create('story', $storyID, 'linked2project', '', $executionID);
- $this->loadModel('action')->create('story', $storyID, 'linked2prj', '', $this->session->PRJ);
+ $this->loadModel('action')->create('story', $storyID, 'linked2project', '', $this->session->PRJ);
}
if($todoID > 0)
diff --git a/module/story/lang/de.php b/module/story/lang/de.php
index 000dcbd93f..c8ac65045d 100644
--- a/module/story/lang/de.php
+++ b/module/story/lang/de.php
@@ -273,22 +273,22 @@ $lang->story->form->resource = 'Wer plant die Resourcen? Wie lange wird das daue
$lang->story->form->file = 'Wenn Dateien zu dieser Story gehören, laden Sie diese bIttr hoch.';
$lang->story->action = new stdclass();
-$lang->story->action->reviewed = array('main' => '$date, geprüft von $actor. Das Ergebnis ist $extra.', 'extra' => 'reviewResultList');
-$lang->story->action->closed = array('main' => '$date, geschlossen von $actor. Der Grund ist $extra $appendLink.', 'extra' => 'reasonList');
-$lang->story->action->linked2plan = array('main' => '$date, verknüpft von $actor mit Plan $extra');
-$lang->story->action->unlinkedfromplan = array('main' => '$date, Verknüpfung aufgelöst durch $actor von Plan $extra.');
-$lang->story->action->linked2project = array('main' => '$date, verknüpft von $actor mit ' . $lang->executionCommon . ' $extra.');
-$lang->story->action->unlinkedfromproject = array('main' => '$date, Verknüpfung aufgelöst durch $actor mit ' . $lang->executionCommon . ' $extra.');
-$lang->story->action->linked2prj = array('main' => '$date, verknüpft von $actor mit project $extra.');
-$lang->story->action->unlinkedfromprj = array('main' => '$date, Verknüpfung aufgelöst durch $actor mit project $extra.');
-$lang->story->action->linked2build = array('main' => '$date, verknüpft von $actor mit Build $extra');
-$lang->story->action->unlinkedfrombuild = array('main' => '$date, Verknüpfung aufgelöst durch $actor von Build $extra.');
-$lang->story->action->linked2release = array('main' => '$date, verknüpft von $actor mit Release $extra');
-$lang->story->action->unlinkedfromrelease = array('main' => '$date, Verknüpfung aufgelöst durch $actor von Release $extra.');
-$lang->story->action->linkrelatedstory = array('main' => '$date, verknüpft von $actor mit Story $extra.');
-$lang->story->action->subdividestory = array('main' => '$date, aufgeteilt von $actor mit Story $extra.');
-$lang->story->action->unlinkrelatedstory = array('main' => '$date, Verknüpfung aufgelöst durch $actor von Story $extra.');
-$lang->story->action->unlinkchildstory = array('main' => '$date, Verknüpfung aufgelöst durch $actor Story $extra.');
+$lang->story->action->reviewed = array('main' => '$date, geprüft von $actor. Das Ergebnis ist $extra.', 'extra' => 'reviewResultList');
+$lang->story->action->closed = array('main' => '$date, geschlossen von $actor. Der Grund ist $extra $appendLink.', 'extra' => 'reasonList');
+$lang->story->action->linked2plan = array('main' => '$date, verknüpft von $actor mit Plan $extra');
+$lang->story->action->unlinkedfromplan = array('main' => '$date, Verknüpfung aufgelöst durch $actor von Plan $extra.');
+$lang->story->action->linked2execution = array('main' => '$date, verknüpft von $actor mit ' . $lang->executionCommon . ' $extra.');
+$lang->story->action->unlinkedfromexecution = array('main' => '$date, Verknüpfung aufgelöst durch $actor mit ' . $lang->executionCommon . ' $extra.');
+$lang->story->action->linked2project = array('main' => '$date, verknüpft von $actor mit project $extra.');
+$lang->story->action->unlinkedfromproject = array('main' => '$date, Verknüpfung aufgelöst durch $actor mit project $extra.');
+$lang->story->action->linked2build = array('main' => '$date, verknüpft von $actor mit Build $extra');
+$lang->story->action->unlinkedfrombuild = array('main' => '$date, Verknüpfung aufgelöst durch $actor von Build $extra.');
+$lang->story->action->linked2release = array('main' => '$date, verknüpft von $actor mit Release $extra');
+$lang->story->action->unlinkedfromrelease = array('main' => '$date, Verknüpfung aufgelöst durch $actor von Release $extra.');
+$lang->story->action->linkrelatedstory = array('main' => '$date, verknüpft von $actor mit Story $extra.');
+$lang->story->action->subdividestory = array('main' => '$date, aufgeteilt von $actor mit Story $extra.');
+$lang->story->action->unlinkrelatedstory = array('main' => '$date, Verknüpfung aufgelöst durch $actor von Story $extra.');
+$lang->story->action->unlinkchildstory = array('main' => '$date, Verknüpfung aufgelöst durch $actor Story $extra.');
/* 统计报表。*/
$lang->story->report = new stdclass();
diff --git a/module/story/lang/en.php b/module/story/lang/en.php
index 585010c0a3..50c63dc37f 100644
--- a/module/story/lang/en.php
+++ b/module/story/lang/en.php
@@ -273,22 +273,22 @@ $lang->story->form->resource = 'Who will allocate resources? How long does it ta
$lang->story->form->file = 'If any file that is linked to a story, please click Here to upload it.';
$lang->story->action = new stdclass();
-$lang->story->action->reviewed = array('main' => '$date, recorded by $actor. The result is $extra.', 'extra' => 'reviewResultList');
-$lang->story->action->closed = array('main' => '$date, closed by $actor. The reasion is $extra $appendLink.', 'extra' => 'reasonList');
-$lang->story->action->linked2plan = array('main' => '$date, linked by $actor to Plan $extra');
-$lang->story->action->unlinkedfromplan = array('main' => '$date, unlinked by $actor from Plan $extra.');
-$lang->story->action->linked2project = array('main' => '$date, linked by $actor to ' . $lang->executionCommon . ' $extra.');
-$lang->story->action->unlinkedfromproject = array('main' => '$date, unlinked by $actor from ' . $lang->executionCommon . ' $extra.');
-$lang->story->action->linked2prj = array('main' => '$date, linked by $actor to project $extra.');
-$lang->story->action->unlinkedfromprj = array('main' => '$date, unlinked by $actor from project $extra.');
-$lang->story->action->linked2build = array('main' => '$date, linked by $actor to Build $extra');
-$lang->story->action->unlinkedfrombuild = array('main' => '$date, unlinked by $actor from Build $extra.');
-$lang->story->action->linked2release = array('main' => '$date, linked by $actor to Release $extra');
-$lang->story->action->unlinkedfromrelease = array('main' => '$date, unlinked by $actor from Release $extra.');
-$lang->story->action->linkrelatedstory = array('main' => '$date, linked by $actor to Story $extra.');
-$lang->story->action->subdividestory = array('main' => '$date, decomposed by $actor to Story $extra.');
-$lang->story->action->unlinkrelatedstory = array('main' => '$date, unlinked by $actor from Story $extra.');
-$lang->story->action->unlinkchildstory = array('main' => '$date, unlinked by $actor Decomposed Story $extra.');
+$lang->story->action->reviewed = array('main' => '$date, recorded by $actor. The result is $extra.', 'extra' => 'reviewResultList');
+$lang->story->action->closed = array('main' => '$date, closed by $actor. The reasion is $extra $appendLink.', 'extra' => 'reasonList');
+$lang->story->action->linked2plan = array('main' => '$date, linked by $actor to Plan $extra');
+$lang->story->action->unlinkedfromplan = array('main' => '$date, unlinked by $actor from Plan $extra.');
+$lang->story->action->linked2execution = array('main' => '$date, linked by $actor to ' . $lang->executionCommon . ' $extra.');
+$lang->story->action->unlinkedfromexecution = array('main' => '$date, unlinked by $actor from ' . $lang->executionCommon . ' $extra.');
+$lang->story->action->linked2project = array('main' => '$date, linked by $actor to project $extra.');
+$lang->story->action->unlinkedfromproject = array('main' => '$date, unlinked by $actor from project $extra.');
+$lang->story->action->linked2build = array('main' => '$date, linked by $actor to Build $extra');
+$lang->story->action->unlinkedfrombuild = array('main' => '$date, unlinked by $actor from Build $extra.');
+$lang->story->action->linked2release = array('main' => '$date, linked by $actor to Release $extra');
+$lang->story->action->unlinkedfromrelease = array('main' => '$date, unlinked by $actor from Release $extra.');
+$lang->story->action->linkrelatedstory = array('main' => '$date, linked by $actor to Story $extra.');
+$lang->story->action->subdividestory = array('main' => '$date, decomposed by $actor to Story $extra.');
+$lang->story->action->unlinkrelatedstory = array('main' => '$date, unlinked by $actor from Story $extra.');
+$lang->story->action->unlinkchildstory = array('main' => '$date, unlinked by $actor Decomposed Story $extra.');
/* Statistical statement. */
$lang->story->report = new stdclass();
diff --git a/module/story/lang/fr.php b/module/story/lang/fr.php
index 3e4b01fc22..2826ee5aa1 100644
--- a/module/story/lang/fr.php
+++ b/module/story/lang/fr.php
@@ -273,22 +273,22 @@ $lang->story->form->resource = 'Qui va allouer des resources ? Combien de temps
$lang->story->form->file = 'Si certains fichiers sont associés à la story, cliquez ici pour les uploader.';
$lang->story->action = new stdclass();
-$lang->story->action->reviewed = array('main' => '$date, validée par $actor. Le résultat est $extra.', 'extra' => 'reviewResultList');
-$lang->story->action->closed = array('main' => '$date, Fermée par $actor. La raison est $extra $appendLink.', 'extra' => 'reasonList');
-$lang->story->action->linked2plan = array('main' => '$date, planifiée par $actor au Plan $extra');
-$lang->story->action->unlinkedfromplan = array('main' => '$date, déplanifiée par $actor du Plan $extra.');
-$lang->story->action->linked2project = array('main' => '$date, associée au ' . $lang->executionCommon . ' $extra par $actor.');
-$lang->story->action->unlinkedfromproject = array('main' => '$date, dissociée du ' . $lang->executionCommon . ' $extra par $actor.');
-$lang->story->action->linked2prj = array('main' => '$date, associée au project $extra par $actor.');
-$lang->story->action->unlinkedfromprj = array('main' => '$date, dissociée d uproject $extra par $actor.');
-$lang->story->action->linked2build = array('main' => '$date, intégrée par $actor au Build $extra');
-$lang->story->action->unlinkedfrombuild = array('main' => '$date, retirée par $actor du Build $extra.');
-$lang->story->action->linked2release = array('main' => '$date, ajoutée par $actor à la Release $extra');
-$lang->story->action->unlinkedfromrelease = array('main' => '$date, retirée par $actor de la Release $extra.');
-$lang->story->action->linkrelatedstory = array('main' => '$date, associée par $actor à la Story $extra.');
-$lang->story->action->subdividestory = array('main' => '$date, décomposée par $actor en Story $extra.');
-$lang->story->action->unlinkrelatedstory = array('main' => '$date, dissociée par $actor de la Story $extra.');
-$lang->story->action->unlinkchildstory = array('main' => '$date, dissociée par $actor de la sous-Story $extra.');
+$lang->story->action->reviewed = array('main' => '$date, validée par $actor. Le résultat est $extra.', 'extra' => 'reviewResultList');
+$lang->story->action->closed = array('main' => '$date, Fermée par $actor. La raison est $extra $appendLink.', 'extra' => 'reasonList');
+$lang->story->action->linked2plan = array('main' => '$date, planifiée par $actor au Plan $extra');
+$lang->story->action->unlinkedfromplan = array('main' => '$date, déplanifiée par $actor du Plan $extra.');
+$lang->story->action->linked2execution = array('main' => '$date, associée au ' . $lang->executionCommon . ' $extra par $actor.');
+$lang->story->action->unlinkedfromexecution = array('main' => '$date, dissociée du ' . $lang->executionCommon . ' $extra par $actor.');
+$lang->story->action->linked2project = array('main' => '$date, associée au project $extra par $actor.');
+$lang->story->action->unlinkedfromproject = array('main' => '$date, dissociée d uproject $extra par $actor.');
+$lang->story->action->linked2build = array('main' => '$date, intégrée par $actor au Build $extra');
+$lang->story->action->unlinkedfrombuild = array('main' => '$date, retirée par $actor du Build $extra.');
+$lang->story->action->linked2release = array('main' => '$date, ajoutée par $actor à la Release $extra');
+$lang->story->action->unlinkedfromrelease = array('main' => '$date, retirée par $actor de la Release $extra.');
+$lang->story->action->linkrelatedstory = array('main' => '$date, associée par $actor à la Story $extra.');
+$lang->story->action->subdividestory = array('main' => '$date, décomposée par $actor en Story $extra.');
+$lang->story->action->unlinkrelatedstory = array('main' => '$date, dissociée par $actor de la Story $extra.');
+$lang->story->action->unlinkchildstory = array('main' => '$date, dissociée par $actor de la sous-Story $extra.');
/* 统计报表。*/
$lang->story->report = new stdclass();
diff --git a/module/story/lang/vi.php b/module/story/lang/vi.php
index eb386e3e1e..3a2fe7901c 100644
--- a/module/story/lang/vi.php
+++ b/module/story/lang/vi.php
@@ -273,22 +273,22 @@ $lang->story->form->resource = 'Ai sẽ phân bổ nguồn lực? Bao lâu để
$lang->story->form->file = 'Nếu bất kỳ tập tin mà liên kết tới một câu chuyện, Vui lòng click tại đây để tải nó lên.';
$lang->story->action = new stdclass();
-$lang->story->action->reviewed = array('main' => '$date, ghi nhận bởi $actor. Kết quả là $extra.', 'extra' => 'reviewResultList');
-$lang->story->action->closed = array('main' => '$date, được đóng bởi $actor.Lý do là $extra $appendLink.', 'extra' => 'reasonList');
-$lang->story->action->linked2plan = array('main' => '$date, liên kết bởi $actor tới kế hoạch $extra');
-$lang->story->action->unlinkedfromplan = array('main' => '$date, bị hủy bởi $actor từ kế hoạch $extra.');
-$lang->story->action->linked2project = array('main' => '$date, liên kết bởi $actor tới ' . $lang->executionCommon . ' $extra.');
-$lang->story->action->unlinkedfromproject = array('main' => '$date, bị hủy bởi $actor từ ' . $lang->executionCommon . ' $extra.');
-$lang->story->action->linked2prj = array('main' => '$date, liên kết bởi $actor tớ project $extra.');
-$lang->story->action->unlinkedfromprj = array('main' => '$date, bị hủy bởi $actor từ project $extra.');
-$lang->story->action->linked2build = array('main' => '$date, liên kết bởi $actor tới Bản dựng $extra');
-$lang->story->action->unlinkedfrombuild = array('main' => '$date, bị hủy bởi $actor từ bản dựng $extra.');
-$lang->story->action->linked2release = array('main' => '$date, liên kết bởi $actor tới Phát hành $extra');
-$lang->story->action->unlinkedfromrelease = array('main' => '$date, bị hủy bởi $actor từ Phát hành $extra.');
-$lang->story->action->linkrelatedstory = array('main' => '$date, liên kết bởi $actor tới Câu chuyện $extra.');
-$lang->story->action->subdividestory = array('main' => '$date, được phân rã bởi $actor tới Câu chuyện $extra.');
-$lang->story->action->unlinkrelatedstory = array('main' => '$date, bị hủy bởi $actor từ Câu chuyện $extra.');
-$lang->story->action->unlinkchildstory = array('main' => '$date, bị hủy bởi $actor Câu chuyện được phân rã $extra.');
+$lang->story->action->reviewed = array('main' => '$date, ghi nhận bởi $actor. Kết quả là $extra.', 'extra' => 'reviewResultList');
+$lang->story->action->closed = array('main' => '$date, được đóng bởi $actor.Lý do là $extra $appendLink.', 'extra' => 'reasonList');
+$lang->story->action->linked2plan = array('main' => '$date, liên kết bởi $actor tới kế hoạch $extra');
+$lang->story->action->unlinkedfromplan = array('main' => '$date, bị hủy bởi $actor từ kế hoạch $extra.');
+$lang->story->action->linked2execution = array('main' => '$date, liên kết bởi $actor tới ' . $lang->executionCommon . ' $extra.');
+$lang->story->action->unlinkedfromexecution = array('main' => '$date, bị hủy bởi $actor từ ' . $lang->executionCommon . ' $extra.');
+$lang->story->action->linked2project = array('main' => '$date, liên kết bởi $actor tớ project $extra.');
+$lang->story->action->unlinkedfromproject = array('main' => '$date, bị hủy bởi $actor từ project $extra.');
+$lang->story->action->linked2build = array('main' => '$date, liên kết bởi $actor tới Bản dựng $extra');
+$lang->story->action->unlinkedfrombuild = array('main' => '$date, bị hủy bởi $actor từ bản dựng $extra.');
+$lang->story->action->linked2release = array('main' => '$date, liên kết bởi $actor tới Phát hành $extra');
+$lang->story->action->unlinkedfromrelease = array('main' => '$date, bị hủy bởi $actor từ Phát hành $extra.');
+$lang->story->action->linkrelatedstory = array('main' => '$date, liên kết bởi $actor tới Câu chuyện $extra.');
+$lang->story->action->subdividestory = array('main' => '$date, được phân rã bởi $actor tới Câu chuyện $extra.');
+$lang->story->action->unlinkrelatedstory = array('main' => '$date, bị hủy bởi $actor từ Câu chuyện $extra.');
+$lang->story->action->unlinkchildstory = array('main' => '$date, bị hủy bởi $actor Câu chuyện được phân rã $extra.');
/* Statistical statement. */
$lang->story->report = new stdclass();
diff --git a/module/story/lang/zh-cn.php b/module/story/lang/zh-cn.php
index 8912b44317..547ba377bf 100644
--- a/module/story/lang/zh-cn.php
+++ b/module/story/lang/zh-cn.php
@@ -273,22 +273,22 @@ $lang->story->form->resource = '资源分配,有谁完成?需要多少时
$lang->story->form->file = "附件,如果该{$lang->SRCommon}有相关文件,请点此上传。";
$lang->story->action = new stdclass();
-$lang->story->action->reviewed = array('main' => '$date, 由 $actor 记录评审结果,结果为 $extra。', 'extra' => 'reviewResultList');
-$lang->story->action->closed = array('main' => '$date, 由 $actor 关闭,原因为 $extra $appendLink。', 'extra' => 'reasonList');
-$lang->story->action->linked2plan = array('main' => '$date, 由 $actor 关联到计划 $extra。');
-$lang->story->action->unlinkedfromplan = array('main' => '$date, 由 $actor 从计划 $extra 移除。');
-$lang->story->action->linked2project = array('main' => '$date, 由 $actor 关联到' . $lang->executionCommon . ' $extra。');
-$lang->story->action->unlinkedfromproject = array('main' => '$date, 由 $actor 从' . $lang->executionCommon . ' $extra 移除。');
-$lang->story->action->linked2prj = array('main' => '$date, 由 $actor 关联到项目 $extra。');
-$lang->story->action->unlinkedfromprj = array('main' => '$date, 由 $actor 从项目 $extra 移除。');
-$lang->story->action->linked2build = array('main' => '$date, 由 $actor 关联到版本 $extra。');
-$lang->story->action->unlinkedfrombuild = array('main' => '$date, 由 $actor 从版本 $extra 移除。');
-$lang->story->action->linked2release = array('main' => '$date, 由 $actor 关联到发布 $extra。');
-$lang->story->action->unlinkedfromrelease = array('main' => '$date, 由 $actor 从发布 $extra 移除。');
-$lang->story->action->linkrelatedstory = array('main' => "\$date, 由 \$actor 关联相关{$lang->SRCommon} \$extra。");
-$lang->story->action->subdividestory = array('main' => "\$date, 由 \$actor 细分为{$lang->SRCommon} \$extra。");
-$lang->story->action->unlinkrelatedstory = array('main' => "\$date, 由 \$actor 移除相关{$lang->SRCommon} \$extra。");
-$lang->story->action->unlinkchildstory = array('main' => "\$date, 由 \$actor 移除细分{$lang->SRCommon} \$extra。");
+$lang->story->action->reviewed = array('main' => '$date, 由 $actor 记录评审结果,结果为 $extra。', 'extra' => 'reviewResultList');
+$lang->story->action->closed = array('main' => '$date, 由 $actor 关闭,原因为 $extra $appendLink。', 'extra' => 'reasonList');
+$lang->story->action->linked2plan = array('main' => '$date, 由 $actor 关联到计划 $extra。');
+$lang->story->action->unlinkedfromplan = array('main' => '$date, 由 $actor 从计划 $extra 移除。');
+$lang->story->action->linked2execution = array('main' => '$date, 由 $actor 关联到' . $lang->executionCommon . ' $extra。');
+$lang->story->action->unlinkedfromexecution = array('main' => '$date, 由 $actor 从' . $lang->executionCommon . ' $extra 移除。');
+$lang->story->action->linked2project = array('main' => '$date, 由 $actor 关联到项目 $extra。');
+$lang->story->action->unlinkedfromproject = array('main' => '$date, 由 $actor 从项目 $extra 移除。');
+$lang->story->action->linked2build = array('main' => '$date, 由 $actor 关联到版本 $extra。');
+$lang->story->action->unlinkedfrombuild = array('main' => '$date, 由 $actor 从版本 $extra 移除。');
+$lang->story->action->linked2release = array('main' => '$date, 由 $actor 关联到发布 $extra。');
+$lang->story->action->unlinkedfromrelease = array('main' => '$date, 由 $actor 从发布 $extra 移除。');
+$lang->story->action->linkrelatedstory = array('main' => "\$date, 由 \$actor 关联相关{$lang->SRCommon} \$extra。");
+$lang->story->action->subdividestory = array('main' => "\$date, 由 \$actor 细分为{$lang->SRCommon} \$extra。");
+$lang->story->action->unlinkrelatedstory = array('main' => "\$date, 由 \$actor 移除相关{$lang->SRCommon} \$extra。");
+$lang->story->action->unlinkchildstory = array('main' => "\$date, 由 \$actor 移除细分{$lang->SRCommon} \$extra。");
/* 统计报表。*/
$lang->story->report = new stdclass();
diff --git a/module/story/model.php b/module/story/model.php
index 5097a7d8d8..e3992b66b5 100644
--- a/module/story/model.php
+++ b/module/story/model.php
@@ -3188,8 +3188,8 @@ class storyModel extends model
if($branch) $branch = "0,$branch";
}
$plans = $this->dao->select('id,title')->from(TABLE_PRODUCTPLAN)
- ->where('product')->in($productID)
- ->andWhere('deleted')->eq(0)
+ ->Where('deleted')->eq(0)
+ ->beginIF($productID)->andWhere('product')->in($productID)->fi()
->fetchPairs('id', 'title');
/* For requirement children. */