* code for bug #20823.

This commit is contained in:
王怡栋
2022-04-13 10:01:36 +08:00
parent 403ad59a5f
commit a9809c35aa
3 changed files with 23 additions and 11 deletions
+11 -6
View File
@@ -1731,12 +1731,17 @@ class block extends control
$table = $this->config->objectTables[$objectType];
$orderBy = $objectType == 'todo' ? "`date` desc" : 'id_desc';
$limitCount = isset($params->{$objectCount}) ? $params->{$objectCount} : 0;
$objects = $this->dao->select('*')->from($table)
->where('deleted')->eq(0)
->andWhere('assignedTo')->eq($this->app->user->account)->fi()
->beginIF($objectType == 'story')->andWhere('type')->eq('story')->fi()
->beginIF($objectType == 'todo')->andWhere('cycle')->eq(0)->andWhere('status')->eq('wait')->andWhere('vision')->eq($this->config->vision)->fi()
->beginIF($objectType != 'todo')->andWhere('status')->ne('closed')->fi()
$objects = $this->dao->select('t1.*')->from($table)->alias('t1')
->beginIF($objectType == 'story')->leftJoin(TABLE_PRODUCT)->alias('t2')->on('t1.product=t2.id')->fi()
->beginIF($objectType == 'bug')->leftJoin(TABLE_PRODUCT)->alias('t2')->on('t1.product=t2.id')->fi()
->beginIF($objectType == 'task')->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.execution=t2.id')->fi()
->where('t1.deleted')->eq(0)
->andWhere('t1.assignedTo')->eq($this->app->user->account)->fi()
->beginIF($objectType == 'story')->andWhere('t1.type')->eq('story')->andWhere('t2.deleted')->eq('0')->fi()
->beginIF($objectType == 'bug')->andWhere('t2.deleted')->eq('0')->fi()
->beginIF($objectType == 'story')->andWhere('t2.deleted')->eq('0')->fi()
->beginIF($objectType == 'todo')->andWhere('t1.cycle')->eq(0)->andWhere('t1.status')->eq('wait')->andWhere('t1.vision')->eq($this->config->vision)->fi()
->beginIF($objectType != 'todo')->andWhere('t1.status')->ne('closed')->fi()
->orderBy($orderBy)
->beginIF($limitCount)->limit($limitCount)->fi()
->fetchAll();
+7 -1
View File
@@ -186,7 +186,13 @@ class blockModel extends model
->where('assignedTo')->eq($this->app->user->account)
->andWhere('deleted')->eq(0)
->fetch('count');
$data['stories'] = (int)$this->dao->select('count(*) AS count')->from(TABLE_STORY)->where('assignedTo')->eq($this->app->user->account)->andWhere('deleted')->eq(0)->andWhere('type')->eq('story')->fetch('count');
$data['stories'] = (int)$this->dao->select('count(*) AS count')->from(TABLE_STORY)->alias('t1')
->leftJoin(TABLE_PRODUCT)->alias('t2')->on('t1.product=t2.id')
->where('t1.assignedTo')->eq($this->app->user->account)
->andWhere('t1.deleted')->eq(0)
->andWhere('t2.deleted')->eq(0)
->andWhere('t1.type')->eq('story')
->fetch('count');
$data['executions'] = (int)$this->dao->select('count(*) AS count')->from(TABLE_EXECUTION)
->where('status')->notIN('done,closed')
->beginIF(!$this->app->user->admin)->andWhere('id')->in($this->app->user->view->sprints)->fi()
+5 -4
View File
@@ -3007,15 +3007,16 @@ class storyModel extends model
if($type == 'reviewBy') $sql = $sql->leftJoin(TABLE_STORYREVIEW)->alias('t3')->on('t1.id = t3.story and t1.version = t3.version');
$stories = $sql->where('t1.deleted')->eq(0)
->andWhere('t2.deleted')->eq('0')
->andWhere('t1.type')->eq($storyType)
->andWhere('t1.vision')->eq($this->config->vision)
->beginIF($type != 'closedBy' and $this->app->moduleName == 'block')->andWhere('t1.status')->ne('closed')->fi()
->beginIF($type != 'all')
->beginIF($type == 'assignedTo')->andWhere('assignedTo')->eq($account)->fi()
->beginIF($type == 'assignedTo')->andWhere('t1.assignedTo')->eq($account)->fi()
->beginIF($type == 'reviewBy')->andWhere('t3.reviewer')->eq($account)->andWhere('t3.result')->eq('')->andWhere('t1.status')->in('draft,changed')->fi()
->beginIF($type == 'openedBy')->andWhere('openedBy')->eq($account)->fi()
->beginIF($type == 'reviewedBy')->andWhere("CONCAT(',', reviewedBy, ',')")->like("%,$account,%")->fi()
->beginIF($type == 'closedBy')->andWhere('closedBy')->eq($account)->fi()
->beginIF($type == 'openedBy')->andWhere('t1.openedBy')->eq($account)->fi()
->beginIF($type == 'reviewedBy')->andWhere("CONCAT(',', t1.reviewedBy, ',')")->like("%,$account,%")->fi()
->beginIF($type == 'closedBy')->andWhere('t1.closedBy')->eq($account)->fi()
->fi()
->beginIF($includeLibStories == false and $this->config->edition == 'max')->andWhere('t1.lib')->eq('0')->fi()
->orderBy($orderBy)