* Merge module product into merge184.
This commit is contained in:
@@ -585,6 +585,8 @@ class product extends control
|
||||
$products = $this->product->getList($programID, $browseType);
|
||||
}
|
||||
|
||||
$this->product->refreshStats(); // Refresh stats fields of products.
|
||||
|
||||
$this->app->loadClass('pager', true);
|
||||
$pager = new pager($recTotal, $recPerPage, $pageID);
|
||||
$productStatList = $this->product->getStats(array_keys($products), $orderBy, $pager, 'story', $programID);
|
||||
|
||||
@@ -21,11 +21,7 @@ class productModel extends model
|
||||
*/
|
||||
public function checkPriv(int $productID): bool
|
||||
{
|
||||
if(empty($productID)) return false;
|
||||
|
||||
/* Is admin? */
|
||||
if($this->app->user->admin) return true;
|
||||
return (strpos(",{$this->app->user->view->products},", ",{$productID},") !== false);
|
||||
return !empty($productID) && ($this->app->user->admin || (strpos(",{$this->app->user->view->products},", ",{$productID},") !== false));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -732,6 +728,9 @@ class productModel extends model
|
||||
if(empty($product) && isset($products[$productID])) $product = array($productID => $products[$productID]);
|
||||
$searchConfig['params']['product']['values'] = $product + array('all' => $this->lang->product->allProduct);
|
||||
|
||||
/* Get product stage data. */
|
||||
$this->config->product->search['params']['stage']['values'] = array('' => '') + $this->lang->story->stageList;
|
||||
|
||||
/* Get module data. */
|
||||
$projectID = ($this->app->tab == 'project' && empty($projectID)) ? $this->session->project : $projectID;
|
||||
$searchConfig['params']['module']['values'] = $this->productTao->getModulesForSearchForm($productID, $products, $branch, $projectID);
|
||||
@@ -1592,12 +1591,16 @@ class productModel extends model
|
||||
* @param int $limit
|
||||
* @param int $line
|
||||
* @param string|int $shadow all | 0 | 1
|
||||
* @param string $fields * or fieldList, such as id,name,program
|
||||
* @access protected
|
||||
* @return array
|
||||
*/
|
||||
protected function getList(int $programID = 0, string $status = 'all', int $limit = 0, int $line = 0, string|int $shadow = 0): array
|
||||
protected function getList(int $programID = 0, string $status = 'all', int $limit = 0, int $line = 0, string|int $shadow = 0, string $fields = '*'): array
|
||||
{
|
||||
return $this->dao->select('DISTINCT t1.*,t2.order')->from(TABLE_PRODUCT)->alias('t1')
|
||||
$fields = explode(',', $fields);
|
||||
$fields = trim(implode(',t1.', $fields), ',');
|
||||
|
||||
return $this->dao->select("DISTINCT t1.$fields,t2.order")->from(TABLE_PRODUCT)->alias('t1')
|
||||
->leftJoin(TABLE_PROGRAM)->alias('t2')->on('t1.program = t2.id')
|
||||
->leftJoin(TABLE_PROJECTPRODUCT)->alias('t3')->on('t3.product = t1.id')
|
||||
->leftJoin(TABLE_TEAM)->alias('t4')->on("t4.root = t3.project and t4.type='project'")
|
||||
@@ -1605,9 +1608,9 @@ class productModel extends model
|
||||
->beginIF($shadow !== 'all')->andWhere('t1.shadow')->eq((int)$shadow)->fi()
|
||||
->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()
|
||||
->beginIF(strpos($status, 'feedback') === false && !$this->app->user->admin)->andWhere('t1.id')->in($this->app->user->view->products)->fi()
|
||||
->andWhere("FIND_IN_SET('{$this->config->vision}', t1.vision)")
|
||||
->beginIF($status == 'noclosed')->andWhere('t1.status')->ne('closed')->fi()
|
||||
->beginIF(strpos($status, 'noclosed') !== false)->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')
|
||||
->andWhere('t1.PO', true)->eq($this->app->user->account)
|
||||
|
||||
@@ -86,7 +86,7 @@ class productTao extends productModel
|
||||
->beginIF($browseType == 'undone')->andWhere('t2.status')->in('wait,doing')->fi()
|
||||
->beginIF(strpos(",all,undone,", ",$browseType,") === false)->andWhere('t2.status')->eq($browseType)->fi()
|
||||
->beginIF(!$this->app->user->admin)->andWhere('t2.id')->in($this->app->user->view->projects)->fi()
|
||||
->beginIF($branch !== '' and $branch !== 'all')->andWhere('t1.branch')->in($branch)->fi()
|
||||
->beginIF($branch !== 'all')->andWhere('t1.branch')->in($branch)->fi()
|
||||
->andWhere('t2.deleted')->eq('0')
|
||||
->orderBy($orderBy)
|
||||
->page($pager, 't2.id')
|
||||
@@ -125,7 +125,7 @@ class productTao extends productModel
|
||||
->markRight(1)
|
||||
->orWhere("CONCAT(',', t2.whitelist, ',')")->like("%,{$this->app->user->account},%")
|
||||
->markRight(1)
|
||||
->beginIF($branch !== '' and $branch !== 'all')->andWhere('t1.branch')->in($branch)->fi()
|
||||
->beginIF($branch !== 'all')->andWhere('t1.branch')->in($branch)->fi()
|
||||
->andWhere('t2.deleted')->eq('0')
|
||||
->orderBy($orderBy)
|
||||
->page($pager, 't2.id')
|
||||
|
||||
Reference in New Issue
Block a user