* Adjust params sort for program getList.
This commit is contained in:
@@ -61,7 +61,7 @@ class program extends control
|
||||
else
|
||||
{
|
||||
/* Get top programs and projects. */
|
||||
$topObjects = $this->program->getList($status == 'unclosed' ? 'doing,suspended,wait' : $status, $orderBy, $pager, 'top');
|
||||
$topObjects = $this->program->getList($status == 'unclosed' ? 'doing,suspended,wait' : $status, $orderBy, 'top', array(), $pager);
|
||||
if(!$topObjects) $topObjects = array(0);
|
||||
$programs = $this->program->getList($status, $orderBy, null, 'child', array_keys($topObjects));
|
||||
|
||||
@@ -618,7 +618,7 @@ class program extends control
|
||||
|
||||
/* Get and process program list. */
|
||||
$users = $this->loadModel('user')->getPairs('noletter');
|
||||
$programs = $this->program->getList($status, $orderBy, null);
|
||||
$programs = $this->program->getList($status, $orderBy);
|
||||
$products = $this->program->getProductByProgram(array_keys($programs));
|
||||
foreach($programs as $programID => $program)
|
||||
{
|
||||
|
||||
@@ -162,13 +162,13 @@ class programModel extends model
|
||||
*
|
||||
* @param string $status
|
||||
* @param string $orderBy
|
||||
* @param object $pager
|
||||
* @param string $type top|child
|
||||
* @param array $topIdList
|
||||
* @param object $pager
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getList($status = 'all', $orderBy = 'id_asc', $pager = null, $type = '', $topIdList = array())
|
||||
public function getList(string $status = 'all', string $orderBy = 'id_asc', string $type = '', array $topIdList = array(), object $pager = null): array
|
||||
{
|
||||
$userViewIdList = trim($this->app->user->view->programs, ',') . ',' . trim($this->app->user->view->projects, ',');
|
||||
$userViewIdList = array_filter(explode(',', $userViewIdList));
|
||||
@@ -185,7 +185,7 @@ class programModel extends model
|
||||
|
||||
foreach($pathList as $path)
|
||||
{
|
||||
if($type == 'child' and !empty($topIdList))
|
||||
if($type == 'child' && !empty($topIdList))
|
||||
{
|
||||
$topID = $this->getTopByPath($path);
|
||||
if(!in_array($topID, $topIdList)) continue;
|
||||
@@ -199,11 +199,11 @@ class programModel extends model
|
||||
->where('type')->in('program,project')
|
||||
->andWhere('deleted')->eq(0)
|
||||
->andWhere('vision')->eq($this->config->vision)
|
||||
->beginIF($status != 'all' and $status != 'unclosed')->andWhere('status')->in($status)->fi()
|
||||
->beginIF($status != 'all' && $status != 'unclosed')->andWhere('status')->in($status)->fi()
|
||||
->beginIF($status == 'unclosed')->andWhere('status')->ne('closed')->fi()
|
||||
->beginIF($this->app->rawMethod == 'browse' and $type === 'top')->andWhere('parent')->eq(0)->fi()
|
||||
->beginIF($this->app->rawMethod == 'browse' and ($type === 'child' or !$this->app->user->admin))->andWhere('id')->in($objectIdList)->fi()
|
||||
->beginIF(!$this->app->user->admin and $this->app->rawMethod != 'browse')->andWhere('id')->in($userViewIdList)->fi()
|
||||
->beginIF($this->app->rawMethod == 'browse' && $type === 'top')->andWhere('parent')->eq(0)->fi()
|
||||
->beginIF($this->app->rawMethod == 'browse' && ($type === 'child' or !$this->app->user->admin))->andWhere('id')->in($objectIdList)->fi()
|
||||
->beginIF(!$this->app->user->admin && $this->app->rawMethod != 'browse')->andWhere('id')->in($userViewIdList)->fi()
|
||||
->orderBy($orderBy)
|
||||
->page($pager)
|
||||
->fetchAll('id');
|
||||
|
||||
@@ -19,35 +19,28 @@ $program->gen(20);
|
||||
/**
|
||||
|
||||
title=测试 programModel::getList();
|
||||
timeout=0
|
||||
cid=1
|
||||
pid=1
|
||||
|
||||
查看所有项目和项目集的个数 >> 20
|
||||
查看分页后项目集和项目的个数 >> 10
|
||||
查看所有'closed'的项目和项目集的个数 >> 5
|
||||
查看所有'suspended'的项目和项目集的个数 >> 5
|
||||
按照项目和项目集名称倒序获取第一个ID >> 9
|
||||
按照ID正序获取项目和项目集列表第一个ID >> 1
|
||||
获取顶级项目集个数 >> 20
|
||||
获取分页后顶级项目集个数 >> 10
|
||||
获取所有项目集个数 >> 20
|
||||
|
||||
*/
|
||||
|
||||
global $tester;
|
||||
global $tester, $app;
|
||||
$programTester = new programTest();
|
||||
$tester->app->loadClass('pager', $static = true);
|
||||
|
||||
$app->moduleName = 'program';
|
||||
$app->methodName = 'browse';
|
||||
$app->loadClass('pager', true);
|
||||
$pager = new pager(0, 10, 1);
|
||||
|
||||
$allPorgrams = $programTester->getListTest('all');
|
||||
$pagerPrograms = $programTester->getListTest('all', 'id_asc', $pager);
|
||||
$pagerPrograms = $programTester->getListTest('all', 'id_asc', '', array(), $pager);
|
||||
$closedPrograms = $programTester->getListTest('closed');
|
||||
$suspendedPrograms = $programTester->getListTest('closed');
|
||||
$namedescPrograms = $programTester->getListTest('all', 'name_desc');
|
||||
$idascPrograms = $programTester->getListTest('all', 'id_asc');
|
||||
$topPrograms = $programTester->getListTest('all', 'id_asc', null, 'top');
|
||||
$topPagePrograms = $programTester->getListTest('all', 'id_asc', $pager, 'top');
|
||||
$childPrograms = $programTester->getListTest('all', 'id_asc', null, 'child', $topPrograms);
|
||||
$topPrograms = $programTester->getListTest('all', 'id_asc', 'top');
|
||||
$topPagePrograms = $programTester->getListTest('all', 'id_asc', 'top', array(), $pager);
|
||||
$childPrograms = $programTester->getListTest('all', 'id_asc', 'child', $topPrograms);
|
||||
|
||||
r(count($allPorgrams)) && p() && e('20'); // 查看所有项目和项目集的个数
|
||||
r(count($pagerPrograms)) && p() && e('10'); // 查看分页后项目集和项目的个数
|
||||
|
||||
@@ -168,16 +168,16 @@ class programTest
|
||||
*
|
||||
* @param mixed $status
|
||||
* @param string $orderBy
|
||||
* @param object $pager
|
||||
* @param string $type top|child
|
||||
* @param mixed $idList
|
||||
* @param object $pager
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
public function getListTest($status = 'all', $orderBy = 'id_asc', $pager = NULL, $type = '', $idList = '')
|
||||
public function getListTest($status = 'all', $orderBy = 'id_asc', $type = '', $idList = array(), $pager = NULL)
|
||||
{
|
||||
$this->program->cookie->showClosed = 'ture';
|
||||
$programs = $this->program->getList($status, $orderBy, $pager, $type, $idList);
|
||||
$programs = $this->program->getList($status, $orderBy, $type, $idList, $pager);
|
||||
|
||||
if(dao::isError()) return array('message' => dao::getError());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user