* code for task #43347.

This commit is contained in:
王怡栋
2021-10-26 15:39:46 +08:00
parent 7fb8c5ca8b
commit 001ca0ef8f
5 changed files with 41 additions and 2 deletions
+10 -1
View File
@@ -36,7 +36,7 @@ class executionEntry extends Entry
if(!$fields) $this->send(200, $execution);
/* Set other fields. */
$fields = explode(',', $fields);
$fields = explode(',', strtolower($fields));
foreach($fields as $field)
{
switch($field)
@@ -50,6 +50,15 @@ class executionEntry extends Entry
$execution->modules = $data->data->tree;
}
break;
case 'moduleoptionmenu':
$execution->moduleOptionMenu = $this->loadModel('tree')->getTaskOptionMenu($executionID, 0, 0, 'allModule');
break;
case 'members':
$execution->members = $this->loadModel('user')->getTeamMemberPairs($executionID, 'execution', 'nodeleted');;
break;
case 'stories':
$execution->stories = $this->loadModel('story')->getExecutionStoryPairs($executionID, 0, 0, '', 'full', 'unclosed');
break;
}
}
+3
View File
@@ -20,6 +20,8 @@ class executionsEntry extends entry
*/
public function get($projectID = 0)
{
$returnFields = explode(',', $this->param('return', ''));
$control = $this->loadController('execution', 'all');
$control->all($this->param('status', 'all'), $this->param('project', $projectID), $this->param('order', 'id_desc'), 0, 0, $this->param('limit', 20), $this->param('page', 1));
$data = $this->getData();
@@ -30,6 +32,7 @@ class executionsEntry extends entry
$result = array();
foreach($data->data->executionStats as $execution)
{
if($returnFields) $execution = $this->filterFields($execution, $returnFields);
$result[] = $this->format($execution, 'openedDate:time,lastEditedDate:time,closedDate:time,canceledDate:time,begin:date,end:date,realBegan:date,realEnd:date,deleted:bool');
}
return $this->send(200, array('page' => $pager->pageID, 'total' => $pager->recTotal, 'limit' => $pager->recPerPage, 'executions' => $result));
+2
View File
@@ -21,6 +21,7 @@ class projectsEntry extends entry
public function get($programID = 0)
{
if(!$programID) $programID = $this->param('program', 0);
$returnFields = explode(',', $this->param('return', ''));
$control = $this->loadController('project', 'browse');
$control->browse($programID, $this->param('status', 'all'), 0, $this->param('order', 'order_asc'), 0, $this->param('limit', 20), $this->param('page', 1));
@@ -32,6 +33,7 @@ class projectsEntry extends entry
$result = array();
foreach($data->data->projectStats as $project)
{
if($returnFields) $project = $this->filterFields($project, $returnFields);
$result[] = $this->format($project, 'openedDate:time,lastEditedDate:time,closedDate:time,canceledDate:time');
}
return $this->send(200, array('page' => $pager->pageID, 'total' => $pager->recTotal, 'limit' => (int)$pager->recPerPage, 'projects' => $result));
+24
View File
@@ -486,6 +486,8 @@ class baseEntry
$type = $field[1];
$isArray = false;
if(!isset($object->$key)) continue;
$pos = strpos($type, ']');
if($pos !== FALSE)
{
@@ -519,6 +521,28 @@ class baseEntry
}
}
/**
* Filter fields.
*
* @param object $object
* @param array $filters
* @access public
* @return object
*/
public function filterFields($object, $allowable = '')
{
if(empty($allowable)) return $object;
$filtered = new stdclass();
foreach($allowable as $field)
{
if(!isset($object->$field)) continue;
$filtered->$field = $object->$field;
}
return $filtered;
}
/**
* 类型转换.
* Typecasting.
+2 -1
View File
@@ -443,7 +443,8 @@ class programModel extends model
$projectList = $this->dao->select('*')->from(TABLE_PROJECT)
->where('deleted')->eq('0')
->beginIF($this->config->systemMode == 'new')->andWhere('type')->eq('project')->fi()
->beginIF($browseType != 'all')->andWhere('status')->eq($browseType)->fi()
->beginIF($browseType != 'all' and $browseType != 'undone')->andWhere('status')->eq($browseType)->fi()
->beginIF($browseType != 'undone')->andWhere('status')->in('wait,doing')->fi()
->beginIF($path)->andWhere('path')->like($path . '%')->fi()
->beginIF(!$queryAll and !$this->app->user->admin and $this->config->systemMode == 'new')->andWhere('id')->in($this->app->user->view->projects)->fi()
->beginIF(!$queryAll and !$this->app->user->admin and $this->config->systemMode == 'classic')->andWhere('id')->in($this->app->user->view->sprints)->fi()