From 4aad17c101b892ea8f4f748510844dd79a3e5ecd Mon Sep 17 00:00:00 2001 From: tianshujie98 Date: Thu, 15 Apr 2021 16:02:02 +0800 Subject: [PATCH] * Finish task #37551. --- module/block/control.php | 2 +- module/bug/control.php | 14 +++++------ module/execution/control.php | 6 ++--- module/execution/model.php | 43 +++------------------------------- module/project/control.php | 4 ++-- module/project/model.php | 37 ----------------------------- module/stakeholder/control.php | 16 ++++++------- module/stakeholder/model.php | 2 +- module/task/control.php | 14 +++++------ module/task/model.php | 2 +- module/testtask/control.php | 2 +- module/user/model.php | 37 +++++++++++++++++++++++++++++ 12 files changed, 71 insertions(+), 108 deletions(-) diff --git a/module/block/control.php b/module/block/control.php index bbf18325b2..5baa17e057 100644 --- a/module/block/control.php +++ b/module/block/control.php @@ -1232,7 +1232,7 @@ class block extends control { $this->app->loadLang('durationestimation'); $projectID = $this->session->project; - $members = $this->loadModel('project')->getTeamMemberPairs($projectID); + $members = $this->loadModel('user')->getTeamMemberPairs($projectID, 'project'); $budget = $this->loadModel('workestimation')->getBudget($projectID); $workhour = $this->project->getWorkhour($projectID); if(empty($budget)) $budget = new stdclass(); diff --git a/module/bug/control.php b/module/bug/control.php index 8e4c53f149..6e8adccf45 100644 --- a/module/bug/control.php +++ b/module/bug/control.php @@ -497,7 +497,7 @@ class bug extends control /* Set team members of the latest execution as assignedTo list. */ $latestExecution = $this->product->getLatestProject($productID); $executionMembers = array(); - if(!empty($latestExecution)) $executionMembers = $this->loadModel('execution')->getTeamMemberPairs($latestExecution->id, 'nodeleted', $moduleOwner); + if(!empty($latestExecution)) $executionMembers = $this->loadModel('user')->getTeamMemberPairs($latestExecution->id, 'execution', 'nodeleted', $moduleOwner); if(empty($executionMembers)) $executionMembers = $this->view->users; if($assignedTo and !isset($executionMembers[$assignedTo])) { @@ -1038,15 +1038,15 @@ class bug extends control if($this->app->openApp == 'project') { - $users = $this->project->getTeamMemberPairs($bug->project, 'nodeleted', $bug->assignedTo); + $users = $this->user->getTeamMemberPairs($bug->project, 'project', 'nodeleted', $bug->assignedTo); } elseif($this->app->openApp == 'execution') { - $users = $this->execution->getTeamMemberPairs($bug->execution, 'nodeleted', $bug->assignedTo); + $users = $this->user->getTeamMemberPairs($bug->execution, 'execution', 'nodeleted', $bug->assignedTo); } else { - $users = $this->user->getPairs('nodeleted|nofeedback', $bug->assignedTo); + $users = $this->user->getPairs('nodeleted|nofeedback', $bug->assignedTo); } $this->view->title = $this->products[$bug->product] . $this->lang->colon . $this->lang->bug->assignedTo; @@ -1591,7 +1591,7 @@ class bug extends control */ public function ajaxLoadAssignedTo($executionID, $selectedUser = '') { - $executionMembers = $this->loadModel('execution')->getTeamMemberPairs($executionID, '', $selectedUser); + $executionMembers = $this->user->getTeamMemberPairs($executionID, 'execution', '', $selectedUser); die(html::select('assignedTo', $executionMembers, $selectedUser, 'class="form-control"')); } @@ -1609,11 +1609,11 @@ class bug extends control $latestExecution = $this->product->getLatestProject($productID); if(!empty($latestExecution)) { - $executionMembers = $this->loadModel('execution')->getTeamMemberPairs($latestExecution->id, 'nodeleted', $selectedUser); + $executionMembers = $this->user->getTeamMemberPairs($latestExecution->id, 'execution', 'nodeleted', $selectedUser); } else { - $executionMembers = $this->loadModel('user')->getPairs('devfirst|noclosed|nodeleted'); + $executionMembers = $this->user->getPairs('devfirst|noclosed|nodeleted'); } die(html::select('assignedTo', $executionMembers, $selectedUser, 'class="form-control"')); diff --git a/module/execution/control.php b/module/execution/control.php index 3a08565bd6..18035f81f4 100644 --- a/module/execution/control.php +++ b/module/execution/control.php @@ -542,7 +542,7 @@ class execution extends control $position[] = $this->lang->execution->importBug; /* Get users, products and executions.*/ - $users = $this->execution->getTeamMemberPairs($executionID, 'nodeleted'); + $users = $this->loadModel('user')->getTeamMemberPairs($executionID, 'execution', 'nodeleted'); $products = $this->dao->select('t1.product, t2.name')->from(TABLE_PROJECTPRODUCT)->alias('t1') ->leftJoin(TABLE_PRODUCT)->alias('t2') ->on('t1.product = t2.id') @@ -2502,7 +2502,7 @@ class execution extends control $this->view->position[] = html::a($this->createLink('execution', 'browse', "executionID=$executionID"), $execution->name); $this->view->position[] = $this->lang->execution->dynamic; - $this->view->userIdPairs = $this->execution->getTeamMemberPairs($executionID, 'nodeleted|useid'); + $this->view->userIdPairs = $this->loadModel('user')->getTeamMemberPairs($executionID, 'execution', 'nodeleted|useid'); $this->view->accountPairs = $this->loadModel('user')->getPairs('noletter|nodeleted'); /* Assign. */ @@ -2540,7 +2540,7 @@ class execution extends control */ public function ajaxGetMembers($executionID, $assignedTo = '') { - $users = $this->execution->getTeamMemberPairs($executionID); + $users = $this->loadModel('user')->getTeamMemberPairs($executionID, 'execution'); if($this->app->getViewType() === 'json') { die(json_encode($users)); diff --git a/module/execution/model.php b/module/execution/model.php index e4ec11c128..e2294b3146 100644 --- a/module/execution/model.php +++ b/module/execution/model.php @@ -429,7 +429,7 @@ class executionModel extends model } /* Get team and language item. */ - $team = $this->getTeamMemberPairs($executionID); + $team = $this->loadModel('user')->getTeamMemberPairs($executionID, 'execution'); $this->lang->execution->team = $this->lang->execution->teamname; /* Get the data from the post. */ @@ -562,7 +562,7 @@ class executionModel extends model foreach($executions as $executionID => $execution) { $oldExecution = $oldExecutions[$executionID]; - $team = $this->getTeamMemberPairs($executionID); + $team = $this->loadModel('user')->getTeamMemberPairs($executionID, 'execution'); $this->dao->update(TABLE_EXECUTION)->data($execution) ->autoCheck($skipFields = 'begin,end') @@ -1739,7 +1739,7 @@ class executionModel extends model unset($stories[0]); /* Add members to execution team. */ - $teamMembers = $this->getTeamMemberPairs($executionID); + $teamMembers = $this->loadModel('user')->getTeamMemberPairs($executionID, 'execution'); foreach($assignedToes as $account => $preExecutionID) { if(!isset($teamMembers[$account])) @@ -2174,43 +2174,6 @@ class executionModel extends model ->fetchAll('account'); } - /** - * Get team members in pair. - * - * @param int $executionID - * @param string $params - * @param string $usersToAppended - * @access public - * @return array - */ - public function getTeamMemberPairs($executionID, $params = '', $usersToAppended = '') - { - if(defined('TUTORIAL')) return $this->loadModel('tutorial')->getTeamMembersPairs(); - $this->app->loadConfig('user'); - - $keyField = strpos($params, 'useid') !== false ? 'id' : 'account'; - $users = $this->dao->select("t2.id, t2.account, t2.realname")->from(TABLE_TEAM)->alias('t1') - ->leftJoin(TABLE_USER)->alias('t2')->on('t1.account = t2.account') - ->where('t1.root')->eq((int)$executionID) - ->andWhere('t1.type')->eq('execution') - ->beginIF($params == 'nodeleted' or empty($this->config->user->showDeleted)) - ->andWhere('t2.deleted')->eq(0) - ->fi() - ->fetchAll($keyField); - - if($usersToAppended) $users += $this->dao->select("id, account, realname")->from(TABLE_USER)->where('account')->in($usersToAppended)->fetchAll($keyField); - - if(!$users) return array('' => ''); - - foreach($users as $account => $user) - { - $firstLetter = ucfirst(substr($user->account, 0, 1)) . ':'; - if(!empty($this->config->isINT)) $firstLetter = ''; - $users[$account] = $firstLetter . ($user->realname ? $user->realname : $user->account); - } - return array('' => '') + $users; - } - /** * Get the skip members of the team. * diff --git a/module/project/control.php b/module/project/control.php index 9936d7e077..cc3603a4ae 100644 --- a/module/project/control.php +++ b/module/project/control.php @@ -643,8 +643,8 @@ class project extends control $this->view->position[] = html::a($this->createLink('project', 'browse', "projectID=$projectID"), $project->name); $this->view->position[] = $this->lang->project->dynamic; - $this->view->userIdPairs = $this->project->getTeamMemberPairs($projectID); - $this->view->accountPairs = $this->loadModel('user')->getPairs('noletter|nodeleted'); + $this->view->userIdPairs = $this->loadModel('user')->getTeamMemberPairs($project, 'project'); + $this->view->accountPairs = $this->user->getPairs('noletter|nodeleted'); /* Assign. */ $this->view->projectID = $projectID; diff --git a/module/project/model.php b/module/project/model.php index 67b8cef0cc..1e459807cc 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -401,43 +401,6 @@ class projectModel extends model return $statData; } - /** - * Get team members in project. - * - * @param int $projectID - * @param string $params - * @param string $usersToAppended - * @access public - * @return array - */ - public function getTeamMemberPairs($projectID, $params = '', $usersToAppended = '') - { - if(defined('TUTORIAL')) return $this->loadModel('tutorial')->getTeamMembersPairs(); - $this->app->loadConfig('user'); - - $keyField = strpos($params, 'useid') !== false ? 'id' : 'account'; - $users = $this->dao->select("t2.id, t2.account, t2.realname")->from(TABLE_TEAM)->alias('t1') - ->leftJoin(TABLE_USER)->alias('t2')->on('t1.account = t2.account') - ->where('t1.root')->eq((int)$projectID) - ->andWhere('t1.type')->eq('project') - ->beginIF($params == 'nodeleted' or empty($this->config->user->showDeleted)) - ->andWhere('t2.deleted')->eq(0) - ->fi() - ->fetchAll($keyField); - - if($usersToAppended) $users += $this->dao->select("id, account, realname")->from(TABLE_USER)->where('account')->in($usersToAppended)->fetchAll($keyField); - - if(!$users) return array('' => ''); - - foreach($users as $account => $user) - { - $firstLetter = ucfirst(substr($user->account, 0, 1)) . ':'; - if(!empty($this->config->isINT)) $firstLetter = ''; - $users[$account] = $firstLetter . ($user->realname ? $user->realname : $user->account); - } - return array('' => '') + $users; - } - /** * Get project pairs by programID. * diff --git a/module/stakeholder/control.php b/module/stakeholder/control.php index 5be9e47de7..4e37cf0149 100644 --- a/module/stakeholder/control.php +++ b/module/stakeholder/control.php @@ -77,7 +77,7 @@ class stakeholder extends control else { $this->loadModel('project')->setMenu($objectID); - $this->view->members = $this->loadModel('project')->getTeamMemberPairs($objectID); + $this->view->members = $this->loadModel('user')->getTeamMemberPairs($objectID, 'project'); } $this->view->title = $this->lang->stakeholder->create; @@ -168,11 +168,11 @@ class stakeholder extends control } $users = array('' => ''); - if($stakeholder->type == 'team') $users = $this->loadModel('execution')->getTeamMemberPairs($this->session->project); + if($stakeholder->type == 'team') $users = $this->loadModel('user')->getTeamMemberPairs($this->session->project, 'project'); elseif($stakeholder->type == 'company') { - $members = $this->loadModel('execution')->getTeamMemberPairs($this->session->project); - $users = $this->loadModel('user')->getPairs('noclosed'); + $members = $this->loadModel('user')->getTeamMemberPairs($this->session->project, 'project'); + $users = $this->user->getPairs('noclosed'); $users = array('' => '') + array_diff($users, $members); } @@ -202,7 +202,7 @@ class stakeholder extends control } else { - $members = $this->loadModel('project')->getTeamMemberPairs($projectID); + $members = $this->loadModel('user')->getTeamMemberPairs($projectID, 'project'); } die(html::select('user', $members, $user, "class='form-control chosen'")); } @@ -224,7 +224,7 @@ class stakeholder extends control } else { - $members = $this->loadModel('project')->getTeamMemberPairs($projectID); + $members = $this->loadModel('user')->getTeamMemberPairs($projectID, 'project'); } $users = $this->loadModel('user')->getPairs('noclosed'); @@ -328,7 +328,7 @@ class stakeholder extends control $this->view->position[] = $this->lang->stakeholder->view; $this->view->user = $user; - $this->view->users = $this->loadModel('execution')->getTeamMemberPairs($this->session->project,'nodeleted'); + $this->view->users = $this->loadModel('user')->getTeamMemberPairs($this->session->project, 'project', 'nodeleted'); $this->view->expects = $this->stakeholder->getExpectByUser($userID); $this->display(); @@ -391,7 +391,7 @@ class stakeholder extends control $this->view->title = $this->lang->stakeholder->common . $this->lang->colon . $this->lang->stakeholder->communicate; $this->view->position[] = $this->lang->stakeholder->view; $this->view->user = $this->stakeholder->getByID($userID); - $this->view->users = $this->loadModel('execution')->getTeamMemberPairs($this->session->project,'nodeleted'); + $this->view->users = $this->loadModel('user')->getTeamMemberPairs($this->session->project, 'project', 'nodeleted'); $this->display(); } diff --git a/module/stakeholder/model.php b/module/stakeholder/model.php index 42574f7b40..2bedf2b010 100644 --- a/module/stakeholder/model.php +++ b/module/stakeholder/model.php @@ -113,7 +113,7 @@ class stakeholderModel extends model $this->loadModel('action'); $data = (array)fixer::input('post')->get(); - $members = $this->loadModel('execution')->getTeamMemberPairs($this->session->project); + $members = $this->loadModel('user')->getTeamMemberPairs($this->session->project, 'project'); $accounts = array_unique($data['accounts']); $oldJoin = $this->dao->select('`user`, createdDate')->from(TABLE_STAKEHOLDER)->where('objectID')->eq((int)$this->session->project)->andWhere('objectType')->eq('project')->fetchPairs(); $this->dao->delete()->from(TABLE_STAKEHOLDER)->where('objectID')->eq((int)$this->session->project)->andWhere('objectType')->eq('project')->exec(); diff --git a/module/task/control.php b/module/task/control.php index 923fe34848..ddd5cbbcc1 100644 --- a/module/task/control.php +++ b/module/task/control.php @@ -168,7 +168,7 @@ class task extends control } $users = $this->loadModel('user')->getPairs('noclosed|nodeleted'); - $members = $this->execution->getTeamMemberPairs($executionID, 'nodeleted'); + $members = $this->loadModel('user')->getTeamMemberPairs($executionID, 'execution', 'nodeleted'); $showAllModule = isset($this->config->execution->task->allModule) ? $this->config->execution->task->allModule : ''; $moduleOptionMenu = $this->tree->getTaskOptionMenu($executionID, 0, 0, $showAllModule ? 'allModule' : ''); @@ -296,7 +296,7 @@ class task extends control $stories = $this->story->getExecutionStoryPairs($executionID, 0, 0, 0, 'short'); - $members = $this->execution->getTeamMemberPairs($executionID, 'nodeleted'); + $members = $this->loadModel('user')->getTeamMemberPairs($executionID, 'execution', 'nodeleted'); $showAllModule = isset($this->config->execution->task->allModule) ? $this->config->execution->task->allModule : ''; $modules = $this->loadModel('tree')->getTaskOptionMenu($executionID, 0, 0, $showAllModule ? 'allModule' : ''); @@ -334,7 +334,7 @@ class task extends control { $this->view->task = $this->loadModel('task')->getByID($taskID); $this->view->execution = $this->execution->getById($this->view->task->execution); - $this->view->members = $this->execution->getTeamMemberPairs($this->view->execution->id ,'nodeleted'); + $this->view->members = $this->loadModel('user')->getTeamMemberPairs($this->view->execution->id, 'execution','nodeleted'); $this->view->actions = $this->loadModel('action')->getList('task', $taskID); /* Set menu. */ @@ -554,7 +554,7 @@ class task extends control $task = $this->task->getByID($taskID); - $members = $this->execution->getTeamMemberPairs($executionID, 'nodeleted'); + $members = $this->loadModel('user')->getTeamMemberPairs($executionID, 'execution', 'nodeleted'); /* Compute next assignedTo. */ if(!empty($task->team)) @@ -767,7 +767,7 @@ class task extends control $this->view->position[] = $this->lang->task->start; $this->view->users = $this->loadModel('user')->getPairs('noletter'); - $this->view->members = $this->execution->getTeamMemberPairs($task->execution, 'nodeleted'); + $this->view->members = $this->loadModel('user')->getTeamMemberPairs($task->execution, 'execution', 'nodeleted'); $this->view->assignedTo = $task->assignedTo == '' ? $this->app->user->account : $task->assignedTo; $this->display(); } @@ -926,7 +926,7 @@ class task extends control } $task = $this->view->task; - $members = $this->execution->getTeamMemberPairs($task->execution, 'nodeleted'); + $members = $this->loadModel('user')->getTeamMemberPairs($task->execution, 'execution', 'nodeleted'); $task->nextBy = $task->openedBy; $this->view->users = $members; @@ -1027,7 +1027,7 @@ class task extends control $this->view->position[] = $this->lang->task->restart; $this->view->users = $this->loadModel('user')->getPairs('noletter'); - $this->view->members = $this->execution->getTeamMemberPairs($task->execution, 'nodeleted'); + $this->view->members = $this->loadModel('user')->getTeamMemberPairs($task->execution, 'execution', 'nodeleted'); $this->view->assignedTo = $task->assignedTo == '' ? $this->app->user->account : $task->assignedTo; $this->display(); } diff --git a/module/task/model.php b/module/task/model.php index 24199b3356..6a1fc4e470 100644 --- a/module/task/model.php +++ b/module/task/model.php @@ -3244,7 +3244,7 @@ class taskModel extends model */ public function getMemberPairs($task) { - $users = $this->loadModel('execution')->getTeamMemberPairs($task->execution, 'nodeleted'); + $users = $this->loadModel('user')->getTeamMemberPairs($task->execution, 'execution', 'nodeleted'); $members = array(''); foreach($task->team as $member) { diff --git a/module/testtask/control.php b/module/testtask/control.php index b7077c65c6..2c6e287dc6 100644 --- a/module/testtask/control.php +++ b/module/testtask/control.php @@ -463,7 +463,7 @@ class testtask extends control $execution = $this->execution->getById($task->execution); if($execution->acl == 'private') { - $assignedToList = $this->execution->getTeamMemberPairs($execution->id, 'nodeleted'); + $assignedToList = $this->loadModel('user')->getTeamMemberPairs($execution->id, 'execution', 'nodeleted'); } else { diff --git a/module/user/model.php b/module/user/model.php index e00f28b774..ee703dba6e 100644 --- a/module/user/model.php +++ b/module/user/model.php @@ -2372,6 +2372,43 @@ class userModel extends model return $users; } + /** + * Get team members in object. + * + * @param int $objectID + * @param string $type project|execution + * @param string $params + * @param string $usersToAppended + * @access public + * @return array + */ + public function getTeamMemberPairs($objectID, $type = 'project', $params = '', $usersToAppended = '') + { + if(defined('TUTORIAL')) return $this->loadModel('tutorial')->getTeamMembersPairs(); + + $keyField = strpos($params, 'useid') !== false ? 'id' : 'account'; + $users = $this->dao->select("t2.id, t2.account, t2.realname")->from(TABLE_TEAM)->alias('t1') + ->leftJoin(TABLE_USER)->alias('t2')->on('t1.account = t2.account') + ->where('t1.root')->eq((int)$objectID) + ->andWhere('t1.type')->eq($type) + ->beginIF($params == 'nodeleted' or empty($this->config->user->showDeleted)) + ->andWhere('t2.deleted')->eq(0) + ->fi() + ->fetchAll($keyField); + + if($usersToAppended) $users += $this->dao->select("id, account, realname")->from(TABLE_USER)->where('account')->in($usersToAppended)->fetchAll($keyField); + + if(!$users) return array('' => ''); + + foreach($users as $account => $user) + { + $firstLetter = ucfirst(substr($user->account, 0, 1)) . ':'; + if(!empty($this->config->isINT)) $firstLetter = ''; + $users[$account] = $firstLetter . ($user->realname ? $user->realname : $user->account); + } + return array('' => '') + $users; + } + /** * Judge an action is clickable or not. *