diff --git a/module/execution/control.php b/module/execution/control.php index 8da0e8c60a..e4a890573c 100644 --- a/module/execution/control.php +++ b/module/execution/control.php @@ -2638,7 +2638,7 @@ class execution extends control $this->loadModel('product'); /* Get projects, executions and products. */ - $object = $this->project->getByID($objectID, $this->app->tab == 'project' ? 'project' : 'sprint,stage'); + $object = $this->project->getByID($objectID, $this->app->tab == 'project' ? 'project' : 'sprint,stage,kanban'); $products = $this->product->getProducts($objectID); $browseLink = $this->createLink($this->app->tab == 'project' ? 'projectstory' : 'execution', 'story', "objectID=$objectID"); diff --git a/module/execution/js/kanban.js b/module/execution/js/kanban.js index cae23472c8..5e6800e695 100644 --- a/module/execution/js/kanban.js +++ b/module/execution/js/kanban.js @@ -96,7 +96,7 @@ function createColumnCreateMenu(options) { if(priv.canCreateStory) items.push({label: storyLang.create, url: $.createLink('story', 'create', 'productID=' + productID)}); if(priv.canBatchCreateStory) items.push({label: executionLang.batchCreateStroy, url: $.createLink('story', 'batchcreate', 'productID=' + productID + '&branch=0&moduleID=0&storyID=0&executionID=' + executionID)}); - if(priv.canLinkStory) items.push({label: executionLang.linkStory, url: $.createLink('execution', 'linkStory', 'executionID=' + executionID)}); + if(priv.canLinkStory) items.push({label: executionLang.linkStory, url: $.createLink('execution', 'linkStory', 'executionID=' + executionID + 'objectType=kanban'), className: 'iframe', attrs: {'data-toggle': 'modal', 'data-width': '80%'}}); if(priv.canLinkStoryByPlane) items.push({label: executionLang.linkStoryByPlan, url: '#linkStoryByPlan', 'attrs' : {'data-toggle': 'modal'}}); } else if(col.type == 'unconfirmed') diff --git a/module/execution/lang/en.php b/module/execution/lang/en.php index 40578c1152..5abad60bc4 100644 --- a/module/execution/lang/en.php +++ b/module/execution/lang/en.php @@ -10,105 +10,106 @@ * @link http://www.zentao.net */ /* Fields. */ -$lang->execution->allExecutions = 'All ' . $lang->execution->common . 's'; -$lang->execution->allExecutionAB = 'Execution List'; -$lang->execution->id = $lang->executionCommon . ' ID'; -$lang->execution->type = $lang->executionCommon . 'Type'; -$lang->execution->name = $lang->executionCommon . 'Name'; -$lang->execution->code = $lang->executionCommon . 'Code'; -$lang->execution->projectName = 'Project'; -$lang->execution->execName = 'Execution Name'; -$lang->execution->execCode = 'Execution Code'; -$lang->execution->execType = 'Execution Type'; -$lang->execution->stage = 'Stage'; -$lang->execution->pri = 'Priority'; -$lang->execution->openedBy = 'OpenedBy'; -$lang->execution->openedDate = 'OpenedDate'; -$lang->execution->closedBy = 'ClosedBy'; -$lang->execution->closedDate = 'ClosedDate'; -$lang->execution->canceledBy = 'CanceledBy'; -$lang->execution->canceledDate = 'CanceledDate'; -$lang->execution->begin = 'Planned Begin'; -$lang->execution->end = 'Planned End'; -$lang->execution->dateRange = 'Duration'; -$lang->execution->realBeganAB = 'Actual Begin'; -$lang->execution->realEndAB = 'Actual End'; -$lang->execution->realBegan = 'Actual Begin'; -$lang->execution->realEnd = 'Actual End'; -$lang->execution->to = 'To'; -$lang->execution->days = ' Days'; -$lang->execution->day = ' Days'; -$lang->execution->workHour = ' Hours'; -$lang->execution->workHourUnit = 'H'; -$lang->execution->totalHours = ' Hours'; -$lang->execution->totalDays = ' Days'; -$lang->execution->status = $lang->executionCommon . 'Status'; -$lang->execution->execStatus = 'Status'; -$lang->execution->subStatus = 'Sub Status'; -$lang->execution->desc = $lang->executionCommon . 'Description'; -$lang->execution->execDesc = 'Description'; -$lang->execution->owner = 'Owner'; -$lang->execution->PO = "{$lang->executionCommon} Owner"; -$lang->execution->PM = "{$lang->executionCommon} Manager"; -$lang->execution->execPM = "Execution Manager"; -$lang->execution->QD = 'Test Manager'; -$lang->execution->RD = 'Release Manager'; -$lang->execution->release = 'Release'; -$lang->execution->acl = 'Access Control'; -$lang->execution->teamname = 'Team Name'; -$lang->execution->updateOrder = 'Rank'; -$lang->execution->order = "Rank {$lang->executionCommon}"; -$lang->execution->orderAB = "Rank"; -$lang->execution->products = "Link {$lang->productCommon}"; -$lang->execution->whitelist = 'Whitelist'; -$lang->execution->addWhitelist = 'Add Whitelist'; -$lang->execution->unbindWhitelist = 'Remove Whitelist'; -$lang->execution->totalEstimate = 'Estimates'; -$lang->execution->totalConsumed = 'Cost'; -$lang->execution->totalLeft = 'Left'; -$lang->execution->progress = ' Progress'; -$lang->execution->hours = 'Estimates: %s, Cost: %s, Left: %s.'; -$lang->execution->viewBug = 'Bugs'; -$lang->execution->noProduct = "No {$lang->productCommon} yet."; -$lang->execution->createStory = "Create Story"; -$lang->execution->storyTitle = "Story Name"; -$lang->execution->all = "All {$lang->executionCommon}s"; -$lang->execution->undone = 'Unfinished '; -$lang->execution->unclosed = 'Unclosed'; -$lang->execution->typeDesc = "OPS {$lang->executionCommon} has no {$lang->SRCommon}, Bug, Build, or Test features."; -$lang->execution->mine = 'Mine: '; -$lang->execution->involved = 'Mine'; -$lang->execution->other = 'Others'; -$lang->execution->deleted = 'Deleted'; -$lang->execution->delayed = 'Delayed'; -$lang->execution->product = $lang->execution->products; -$lang->execution->readjustTime = "Adjust {$lang->executionCommon} Begin and End"; -$lang->execution->readjustTask = 'Adjust Task Begin and End'; -$lang->execution->effort = 'Effort'; -$lang->execution->storyEstimate = 'Story Estimate'; -$lang->execution->newEstimate = 'New Estimate'; -$lang->execution->reestimate = 'Reestimate'; -$lang->execution->selectRound = 'Select Round'; -$lang->execution->average = 'Average'; -$lang->execution->relatedMember = 'Team'; -$lang->execution->watermark = 'Exported by ZenTao'; -$lang->execution->burnXUnit = '(Date)'; -$lang->execution->burnYUnit = '(Hours)'; -$lang->execution->waitTasks = 'Waiting Tasks'; -$lang->execution->viewByUser = 'By User'; -$lang->execution->oneProduct = "Only one stage can be linked {$lang->productCommon}"; -$lang->execution->noLinkProduct = "Stage not linked {$lang->productCommon}"; -$lang->execution->recent = 'Recent visits: '; -$lang->execution->copyNoExecution = 'There are no ' . $lang->executionCommon . 'available to copy.'; -$lang->execution->noTeam = 'No team members at the moment'; -$lang->execution->or = ' or '; -$lang->execution->selectProject = 'Please select project'; -$lang->execution->unfoldClosed = 'Unfold Closed'; -$lang->execution->editName = 'Edit Name'; -$lang->execution->setWIP = 'WIP Settings'; -$lang->execution->sortColumn = 'Kanban Card Sorting'; -$lang->execution->batchCreateStroy = "Batch create {$lang->SRCommon}"; -$lang->execution->batchCreateTask = 'Batch create task'; +$lang->execution->allExecutions = 'All ' . $lang->execution->common . 's'; +$lang->execution->allExecutionAB = 'Execution List'; +$lang->execution->id = $lang->executionCommon . ' ID'; +$lang->execution->type = $lang->executionCommon . 'Type'; +$lang->execution->name = $lang->executionCommon . 'Name'; +$lang->execution->code = $lang->executionCommon . 'Code'; +$lang->execution->projectName = 'Project'; +$lang->execution->execName = 'Execution Name'; +$lang->execution->execCode = 'Execution Code'; +$lang->execution->execType = 'Execution Type'; +$lang->execution->stage = 'Stage'; +$lang->execution->pri = 'Priority'; +$lang->execution->openedBy = 'OpenedBy'; +$lang->execution->openedDate = 'OpenedDate'; +$lang->execution->closedBy = 'ClosedBy'; +$lang->execution->closedDate = 'ClosedDate'; +$lang->execution->canceledBy = 'CanceledBy'; +$lang->execution->canceledDate = 'CanceledDate'; +$lang->execution->begin = 'Planned Begin'; +$lang->execution->end = 'Planned End'; +$lang->execution->dateRange = 'Duration'; +$lang->execution->realBeganAB = 'Actual Begin'; +$lang->execution->realEndAB = 'Actual End'; +$lang->execution->realBegan = 'Actual Begin'; +$lang->execution->realEnd = 'Actual End'; +$lang->execution->to = 'To'; +$lang->execution->days = ' Days'; +$lang->execution->day = ' Days'; +$lang->execution->workHour = ' Hours'; +$lang->execution->workHourUnit = 'H'; +$lang->execution->totalHours = ' Hours'; +$lang->execution->totalDays = ' Days'; +$lang->execution->status = $lang->executionCommon . 'Status'; +$lang->execution->execStatus = 'Status'; +$lang->execution->subStatus = 'Sub Status'; +$lang->execution->desc = $lang->executionCommon . 'Description'; +$lang->execution->execDesc = 'Description'; +$lang->execution->owner = 'Owner'; +$lang->execution->PO = "{$lang->executionCommon} Owner"; +$lang->execution->PM = "{$lang->executionCommon} Manager"; +$lang->execution->execPM = "Execution Manager"; +$lang->execution->QD = 'Test Manager'; +$lang->execution->RD = 'Release Manager'; +$lang->execution->release = 'Release'; +$lang->execution->acl = 'Access Control'; +$lang->execution->teamname = 'Team Name'; +$lang->execution->updateOrder = 'Rank'; +$lang->execution->order = "Rank {$lang->executionCommon}"; +$lang->execution->orderAB = "Rank"; +$lang->execution->products = "Link {$lang->productCommon}"; +$lang->execution->whitelist = 'Whitelist'; +$lang->execution->addWhitelist = 'Add Whitelist'; +$lang->execution->unbindWhitelist = 'Remove Whitelist'; +$lang->execution->totalEstimate = 'Estimates'; +$lang->execution->totalConsumed = 'Cost'; +$lang->execution->totalLeft = 'Left'; +$lang->execution->progress = ' Progress'; +$lang->execution->hours = 'Estimates: %s, Cost: %s, Left: %s.'; +$lang->execution->viewBug = 'Bugs'; +$lang->execution->noProduct = "No {$lang->productCommon} yet."; +$lang->execution->createStory = "Create Story"; +$lang->execution->storyTitle = "Story Name"; +$lang->execution->all = "All {$lang->executionCommon}s"; +$lang->execution->undone = 'Unfinished '; +$lang->execution->unclosed = 'Unclosed'; +$lang->execution->typeDesc = "OPS {$lang->executionCommon} has no {$lang->SRCommon}, Bug, Build, or Test features."; +$lang->execution->mine = 'Mine: '; +$lang->execution->involved = 'Mine'; +$lang->execution->other = 'Others'; +$lang->execution->deleted = 'Deleted'; +$lang->execution->delayed = 'Delayed'; +$lang->execution->product = $lang->execution->products; +$lang->execution->readjustTime = "Adjust {$lang->executionCommon} Begin and End"; +$lang->execution->readjustTask = 'Adjust Task Begin and End'; +$lang->execution->effort = 'Effort'; +$lang->execution->storyEstimate = 'Story Estimate'; +$lang->execution->newEstimate = 'New Estimate'; +$lang->execution->reestimate = 'Reestimate'; +$lang->execution->selectRound = 'Select Round'; +$lang->execution->average = 'Average'; +$lang->execution->relatedMember = 'Team'; +$lang->execution->watermark = 'Exported by ZenTao'; +$lang->execution->burnXUnit = '(Date)'; +$lang->execution->burnYUnit = '(Hours)'; +$lang->execution->waitTasks = 'Waiting Tasks'; +$lang->execution->viewByUser = 'By User'; +$lang->execution->oneProduct = "Only one stage can be linked {$lang->productCommon}"; +$lang->execution->noLinkProduct = "Stage not linked {$lang->productCommon}"; +$lang->execution->recent = 'Recent visits: '; +$lang->execution->copyNoExecution = 'There are no ' . $lang->executionCommon . 'available to copy.'; +$lang->execution->noTeam = 'No team members at the moment'; +$lang->execution->or = ' or '; +$lang->execution->selectProject = 'Please select project'; +$lang->execution->unfoldClosed = 'Unfold Closed'; +$lang->execution->editName = 'Edit Name'; +$lang->execution->setWIP = 'WIP Settings'; +$lang->execution->sortColumn = 'Kanban Card Sorting'; +$lang->execution->batchCreateStroy = "Batch create {$lang->SRCommon}"; +$lang->execution->batchCreateTask = 'Batch create task'; +$lang->execution->kanbanNoLinkProduct = "Kanban not linked {$lang->productCommon}"; /* Fields of zt_team. */ $lang->execution->root = 'Root'; diff --git a/module/execution/lang/zh-cn.php b/module/execution/lang/zh-cn.php index f33c35aeac..f4bd6fc8a3 100644 --- a/module/execution/lang/zh-cn.php +++ b/module/execution/lang/zh-cn.php @@ -10,105 +10,106 @@ * @link http://www.zentao.net */ /* 字段列表。*/ -$lang->execution->allExecutions = '所有' . $lang->execution->common; -$lang->execution->allExecutionAB = "{$lang->execution->common}列表"; -$lang->execution->id = $lang->executionCommon . '编号'; -$lang->execution->type = $lang->executionCommon . '类型'; -$lang->execution->name = $lang->executionCommon . '名称'; -$lang->execution->code = $lang->executionCommon . '代号'; -$lang->execution->projectName = '所属项目'; -$lang->execution->execName = "{$lang->execution->common}名称"; -$lang->execution->execCode = "{$lang->execution->common}代号"; -$lang->execution->execType = "{$lang->execution->common}类型"; -$lang->execution->stage = '阶段'; -$lang->execution->pri = '优先级'; -$lang->execution->openedBy = '由谁创建'; -$lang->execution->openedDate = '创建日期'; -$lang->execution->closedBy = '由谁关闭'; -$lang->execution->closedDate = '关闭日期'; -$lang->execution->canceledBy = '由谁取消'; -$lang->execution->canceledDate = '取消日期'; -$lang->execution->begin = '计划开始'; -$lang->execution->end = '计划完成'; -$lang->execution->dateRange = '起始日期'; -$lang->execution->realBeganAB = '实际开始'; -$lang->execution->realEndAB = '实际完成'; -$lang->execution->realBegan = '实际开始日期'; -$lang->execution->realEnd = '实际完成日期'; -$lang->execution->to = '至'; -$lang->execution->days = '可用工作日'; -$lang->execution->day = '天'; -$lang->execution->workHour = '工时'; -$lang->execution->workHourUnit = 'h'; -$lang->execution->totalHours = '可用工时'; -$lang->execution->totalDays = '可用工日'; -$lang->execution->status = $lang->executionCommon . '状态'; -$lang->execution->execStatus = "{$lang->execution->common}状态"; -$lang->execution->subStatus = '子状态'; -$lang->execution->desc = $lang->executionCommon . '描述'; -$lang->execution->execDesc = "{$lang->execution->common}描述"; -$lang->execution->owner = '负责人'; -$lang->execution->PO = $lang->productCommon . '负责人'; -$lang->execution->PM = $lang->executionCommon . '负责人'; -$lang->execution->execPM = "{$lang->execution->common}负责人"; -$lang->execution->QD = '测试负责人'; -$lang->execution->RD = '发布负责人'; -$lang->execution->release = '发布'; -$lang->execution->acl = '访问控制'; -$lang->execution->teamname = '团队名称'; -$lang->execution->updateOrder = '排序'; -$lang->execution->order = $lang->executionCommon . '排序'; -$lang->execution->orderAB = '排序'; -$lang->execution->products = '相关' . $lang->productCommon; -$lang->execution->whitelist = '白名单'; -$lang->execution->addWhitelist = '添加白名单'; -$lang->execution->unbindWhitelist = '删除白名单'; -$lang->execution->totalEstimate = '预计'; -$lang->execution->totalConsumed = '消耗'; -$lang->execution->totalLeft = '剩余'; -$lang->execution->progress = '进度'; -$lang->execution->hours = '预计 %s 消耗 %s 剩余 %s'; -$lang->execution->viewBug = '查看bug'; -$lang->execution->noProduct = "无{$lang->executionCommon}"; -$lang->execution->createStory = "提{$lang->SRCommon}"; -$lang->execution->storyTitle = "{$lang->SRCommon}名称"; -$lang->execution->all = '所有'; -$lang->execution->undone = '未完成'; -$lang->execution->unclosed = '未关闭'; -$lang->execution->typeDesc = "运维{$lang->executionCommon}没有{$lang->SRCommon}、bug、版本、测试功能。"; -$lang->execution->mine = '我负责:'; -$lang->execution->involved = '我参与'; -$lang->execution->other = '其他'; -$lang->execution->deleted = '已删除'; -$lang->execution->delayed = '已延期'; -$lang->execution->product = $lang->execution->products; -$lang->execution->readjustTime = "调整{$lang->executionCommon}起止时间"; -$lang->execution->readjustTask = '顺延任务的起止时间'; -$lang->execution->effort = '日志'; -$lang->execution->storyEstimate = '需求估算'; -$lang->execution->newEstimate = '新一轮估算'; -$lang->execution->reestimate = '重新估算'; -$lang->execution->selectRound = '选择轮次'; -$lang->execution->average = '平均值'; -$lang->execution->relatedMember = '相关成员'; -$lang->execution->watermark = '由禅道导出'; -$lang->execution->burnXUnit = '(日期)'; -$lang->execution->burnYUnit = '(工时)'; -$lang->execution->waitTasks = '待处理'; -$lang->execution->viewByUser = '按用户查看'; -$lang->execution->oneProduct = "阶段只能关联一个{$lang->productCommon}"; -$lang->execution->noLinkProduct = "阶段没有关联{$lang->productCommon}"; -$lang->execution->recent = '近期访问:'; -$lang->execution->copyNoExecution = '没有可用的' . $lang->executionCommon . '来复制'; -$lang->execution->noTeam = '暂时没有团队成员'; -$lang->execution->or = '或'; -$lang->execution->selectProject = '请选择项目'; -$lang->execution->unfoldClosed = '展开已结束'; -$lang->execution->editName = '编辑名称'; -$lang->execution->setWIP = '在制品数量设置(WIP)'; -$lang->execution->sortColumn = '看板列卡片排序'; -$lang->execution->batchCreateStroy = "批量新建{$lang->SRCommon}"; -$lang->execution->batchCreateTask = '批量建任务'; +$lang->execution->allExecutions = '所有' . $lang->execution->common; +$lang->execution->allExecutionAB = "{$lang->execution->common}列表"; +$lang->execution->id = $lang->executionCommon . '编号'; +$lang->execution->type = $lang->executionCommon . '类型'; +$lang->execution->name = $lang->executionCommon . '名称'; +$lang->execution->code = $lang->executionCommon . '代号'; +$lang->execution->projectName = '所属项目'; +$lang->execution->execName = "{$lang->execution->common}名称"; +$lang->execution->execCode = "{$lang->execution->common}代号"; +$lang->execution->execType = "{$lang->execution->common}类型"; +$lang->execution->stage = '阶段'; +$lang->execution->pri = '优先级'; +$lang->execution->openedBy = '由谁创建'; +$lang->execution->openedDate = '创建日期'; +$lang->execution->closedBy = '由谁关闭'; +$lang->execution->closedDate = '关闭日期'; +$lang->execution->canceledBy = '由谁取消'; +$lang->execution->canceledDate = '取消日期'; +$lang->execution->begin = '计划开始'; +$lang->execution->end = '计划完成'; +$lang->execution->dateRange = '起始日期'; +$lang->execution->realBeganAB = '实际开始'; +$lang->execution->realEndAB = '实际完成'; +$lang->execution->realBegan = '实际开始日期'; +$lang->execution->realEnd = '实际完成日期'; +$lang->execution->to = '至'; +$lang->execution->days = '可用工作日'; +$lang->execution->day = '天'; +$lang->execution->workHour = '工时'; +$lang->execution->workHourUnit = 'h'; +$lang->execution->totalHours = '可用工时'; +$lang->execution->totalDays = '可用工日'; +$lang->execution->status = $lang->executionCommon . '状态'; +$lang->execution->execStatus = "{$lang->execution->common}状态"; +$lang->execution->subStatus = '子状态'; +$lang->execution->desc = $lang->executionCommon . '描述'; +$lang->execution->execDesc = "{$lang->execution->common}描述"; +$lang->execution->owner = '负责人'; +$lang->execution->PO = $lang->productCommon . '负责人'; +$lang->execution->PM = $lang->executionCommon . '负责人'; +$lang->execution->execPM = "{$lang->execution->common}负责人"; +$lang->execution->QD = '测试负责人'; +$lang->execution->RD = '发布负责人'; +$lang->execution->release = '发布'; +$lang->execution->acl = '访问控制'; +$lang->execution->teamname = '团队名称'; +$lang->execution->updateOrder = '排序'; +$lang->execution->order = $lang->executionCommon . '排序'; +$lang->execution->orderAB = '排序'; +$lang->execution->products = '相关' . $lang->productCommon; +$lang->execution->whitelist = '白名单'; +$lang->execution->addWhitelist = '添加白名单'; +$lang->execution->unbindWhitelist = '删除白名单'; +$lang->execution->totalEstimate = '预计'; +$lang->execution->totalConsumed = '消耗'; +$lang->execution->totalLeft = '剩余'; +$lang->execution->progress = '进度'; +$lang->execution->hours = '预计 %s 消耗 %s 剩余 %s'; +$lang->execution->viewBug = '查看bug'; +$lang->execution->noProduct = "无{$lang->executionCommon}"; +$lang->execution->createStory = "提{$lang->SRCommon}"; +$lang->execution->storyTitle = "{$lang->SRCommon}名称"; +$lang->execution->all = '所有'; +$lang->execution->undone = '未完成'; +$lang->execution->unclosed = '未关闭'; +$lang->execution->typeDesc = "运维{$lang->executionCommon}没有{$lang->SRCommon}、bug、版本、测试功能。"; +$lang->execution->mine = '我负责:'; +$lang->execution->involved = '我参与'; +$lang->execution->other = '其他'; +$lang->execution->deleted = '已删除'; +$lang->execution->delayed = '已延期'; +$lang->execution->product = $lang->execution->products; +$lang->execution->readjustTime = "调整{$lang->executionCommon}起止时间"; +$lang->execution->readjustTask = '顺延任务的起止时间'; +$lang->execution->effort = '日志'; +$lang->execution->storyEstimate = '需求估算'; +$lang->execution->newEstimate = '新一轮估算'; +$lang->execution->reestimate = '重新估算'; +$lang->execution->selectRound = '选择轮次'; +$lang->execution->average = '平均值'; +$lang->execution->relatedMember = '相关成员'; +$lang->execution->watermark = '由禅道导出'; +$lang->execution->burnXUnit = '(日期)'; +$lang->execution->burnYUnit = '(工时)'; +$lang->execution->waitTasks = '待处理'; +$lang->execution->viewByUser = '按用户查看'; +$lang->execution->oneProduct = "阶段只能关联一个{$lang->productCommon}"; +$lang->execution->noLinkProduct = "阶段没有关联{$lang->productCommon}"; +$lang->execution->recent = '近期访问:'; +$lang->execution->copyNoExecution = '没有可用的' . $lang->executionCommon . '来复制'; +$lang->execution->noTeam = '暂时没有团队成员'; +$lang->execution->or = '或'; +$lang->execution->selectProject = '请选择项目'; +$lang->execution->unfoldClosed = '展开已结束'; +$lang->execution->editName = '编辑名称'; +$lang->execution->setWIP = '在制品数量设置(WIP)'; +$lang->execution->sortColumn = '看板列卡片排序'; +$lang->execution->batchCreateStroy = "批量新建{$lang->SRCommon}"; +$lang->execution->batchCreateTask = '批量建任务'; +$lang->execution->kanbanNoLinkProduct = "看板没有关联{$lang->productCommon}"; /* Fields of zt_team. */ $lang->execution->root = '源ID'; diff --git a/module/execution/model.php b/module/execution/model.php index fd0ac79003..1c73027ff7 100644 --- a/module/execution/model.php +++ b/module/execution/model.php @@ -312,6 +312,12 @@ class executionModel extends model return false; } + if($type == 'kanban' and empty($this->post->products[0])) + { + dao::$errors['message'][] = $this->lang->execution->kanbanNoLinkProduct; + return false; + } + $this->config->execution->create->requiredFields .= ',project'; }