* Fix bug

This commit is contained in:
滔哥
2017-11-10 10:08:54 +08:00
parent c03e82edb2
commit 69f0bbd70f
7 changed files with 71 additions and 75 deletions
+8 -8
View File
@@ -18,8 +18,6 @@ $config->score->rule->testcase = new stdClass();
$config->score->rule->testtask = new stdClass();
$config->score->rule->productplan = new stdClass();
$config->score->ruleExtended = new stdClass();
/* Score rule. */
$config->score->rule->user->login = array('times' => 3, 'hour' => 24, 'score' => 1);
$config->score->rule->user->editProfile = array('times' => 1, 'hour' => 0, 'score' => 10);
@@ -75,9 +73,11 @@ $config->score->rule->productplan->create = array('times' => 0, 'hour' => 0, 'sc
$config->score->rule->search->saveQuery = array('times' => 1, 'hour' => 0, 'score' => 1);
$config->score->rule->search->saveQueryAdvanced = array('times' => 1, 'hour' => 0, 'score' => 1);
$config->score->ruleExtended->storyclose = array('createID' => 2);
$config->score->ruleExtended->userchangePassword = array('strength' => array(1 => 2, 2 => 5));
$config->score->ruleExtended->bugconfirmBug = array('severity' => array(1 => 3, 2 => 2, 3 => 1));
$config->score->ruleExtended->bugresolve = array('severity' => array(1 => 3, 2 => 2, 3 => 1));
$config->score->ruleExtended->taskfinish = array('pri' => array(1 => 2, 2 => 1, 3 => 0));
$config->score->ruleExtended->projectclose = array('manager' => array('close' => 20, 'in' => 10), 'member' => array('close' => 5, 'in' => 5));
$config->score->ruleExtended = array();
$config->score->ruleExtended['story']['close'] = array('createID' => 2);
$config->score->ruleExtended['user']['changePassword'] = array('strength' => array(1 => 2, 2 => 5));
$config->score->ruleExtended['bug']['confirmBug'] = array('severity' => array(1 => 3, 2 => 2, 3 => 1));
$config->score->ruleExtended['bug']['resolve'] = array('severity' => array(1 => 3, 2 => 2, 3 => 1));
$config->score->ruleExtended['task']['finish'] = array('pri' => array(1 => 2, 2 => 1, 3 => 0));
$config->score->ruleExtended['project']['close'] = array('manager' => array('close' => 20, 'onTime' => 10),
'member' => array('close' => 5, 'onTime' => 5));
+6 -7
View File
@@ -80,10 +80,9 @@ $lang->score->methods['block']['set'] = 'Custom block';
$lang->score->methods['search']['saveQuery'] = 'Save search query';
$lang->score->methods['search']['saveQueryAdvanced'] = 'Advanced search';
$lang->score->extended = new stdClass();
$lang->score->extended->userchangePassword = 'Password strength, medium:add extra score : ##strength,1##; Strong:add extra score : ##strength,2##.';
$lang->score->extended->projectclose = 'Project closed, PM add extra score : ##manager,close##,Team member add extra score : ##member,close##. Completed on schedule or in advance,PM add extra score : ##manager,in##,Team member Add extra score : ##member,in##.';
$lang->score->extended->bugresolve = 'Bug resolved, Add extra severity score :s1 + ##severity,3##, s2 + ##severity,2##, s3 + ##severity,1##。';
$lang->score->extended->bugconfirmBug = 'Bug confirmed, Add extra severity score :s1 + ##severity,3##, s2 + ##severity,2##, s3 + ##severity,1##。';
$lang->score->extended->taskfinish = 'Task finished, Add extra score round(consumed /10 * estimate / consumed) + severity score(p1 ##pri,1##, p2, ##pri,2##)。';
$lang->score->extended->storyclose = 'Add extra score for story creator : ##createID##.';
$lang->score->extended['user']['changePassword'] = 'Password strength, medium:add extra score : ##strength,1##; Strong:add extra score : ##strength,2##.';
$lang->score->extended['project']['close'] = 'Project closed, PM add extra score : ##manager,close##,Team member add extra score : ##member,close##. Completed on schedule or in advance,PM add extra score : ##manager,in##,Team member Add extra score : ##member,in##.';
$lang->score->extended['bug']['resolve'] = 'Bug resolved, Add extra severity score :s1 + ##severity,3##, s2 + ##severity,2##, s3 + ##severity,1##。';
$lang->score->extended['bug']['confirmBug'] = 'Bug confirmed, Add extra severity score :s1 + ##severity,3##, s2 + ##severity,2##, s3 + ##severity,1##。';
$lang->score->extended['task']['finish'] = 'Task finished, Add extra score round(consumed /10 * estimate / consumed) + severity score(p1 ##pri,1##, p2, ##pri,2##)。';
$lang->score->extended['story']['close'] = 'Add extra score for story creator : ##createID##.';
+6 -7
View File
@@ -80,10 +80,9 @@ $lang->score->methods['block']['set'] = '区块自定义设置';
$lang->score->methods['search']['saveQuery'] = '保存搜索条件';
$lang->score->methods['search']['saveQueryAdvanced'] = '使用高级搜索';
$lang->score->extended = new stdClass();
$lang->score->extended->userchangePassword = '密码强度为中,额外获得##strength,1##个积分;为强,额外获得##strength,2##个积分。';
$lang->score->extended->projectclose = '项目经理增加##manager,close##个积分,项目成员增加##member,close##个积分。按期或者提前完成,项目经理额外增加##manager,in##个积分,项目成员额外增加##member,in##个积分。';
$lang->score->extended->bugresolve = 'Bug解决后,额外增加严重程度积分:s1 + ##severity,3##, s2 + ##severity,2##, s3 + ##severity,1##。';
$lang->score->extended->bugconfirmBug = 'Bug确认后,额外增加严重程度积分:s1 + ##severity,3##, s2 + ##severity,2##, s3 + ##severity,1##。';
$lang->score->extended->taskfinish = '额外增加工时积分 round(工时 / 10 * 预计 / 消耗) + 优先级积分(p1 ##pri,1##, p2 ##pri,2##)。';
$lang->score->extended->storyclose = '需求的创建者额外增加##createID##分';
$lang->score->extended['user']['changePassword'] = '密码强度为中,额外获得##strength,1##个积分;为强,额外获得##strength,2##个积分。';
$lang->score->extended['project']['close'] = '项目经理增加##manager,close##个积分,项目成员增加##member,close##个积分。按期或者提前完成,项目经理额外增加##manager,in##个积分,项目成员额外增加##member,in##个积分。';
$lang->score->extended['bug']['resolve'] = 'Bug解决后,额外增加严重程度积分:s1 + ##severity,3##, s2 + ##severity,2##, s3 + ##severity,1##。';
$lang->score->extended['bug']['confirmBug'] = 'Bug确认后,额外增加严重程度积分:s1 + ##severity,3##, s2 + ##severity,2##, s3 + ##severity,1##。';
$lang->score->extended['task']['finish'] = '额外增加工时积分 round(工时 / 10 * 预计 / 消耗) + 优先级积分(p1 ##pri,1##, p2 ##pri,2##)。';
$lang->score->extended['story']['close'] = '需求的创建者额外增加##createID##分';
+6 -7
View File
@@ -80,10 +80,9 @@ $lang->score->methods['block']['set'] = '區塊自定義設置';
$lang->score->methods['search']['saveQuery'] = '保存搜索條件';
$lang->score->methods['search']['saveQueryAdvanced'] = '使用高級搜索';
$lang->score->extended = new stdClass();
$lang->score->extended->userchangePassword = '密碼強度中的,額外獲得##strength,1##個積分,強的,額外獲得##strength,2##個積分。';
$lang->score->extended->projectclose = '項目經理增加##manager,close##個積分,項目成員增加##member,close##個積分。按期或者提前完成,項目經理額外增加##manager,in##個積分,項目成員額外增加##member,in##個積分。';
$lang->score->extended->bugresolve = 'Bug解決後,額外增加嚴重程度積分:s1 + ##severity,3##, s2 + ##severity,2##, s3 + ##severity,1##。';
$lang->score->extended->bugconfirmBug = 'Bug確認後,額外增加嚴重程度積分:s1 + ##severity,3##, s2 + ##severity,2##, s3 + ##severity,1##。';
$lang->score->extended->taskfinish = '額外增加工時積分 round(工時 /10 * 預計 / 消耗) + 優先順序積分(p1 ##pri,1##, p2, ##pri,2##)。';
$lang->score->extended->storyclose = '需求的創建者額外增加##createID##分';
$lang->score->extended['user']['changePassword'] = '密碼強度中的,額外獲得##strength,1##個積分,強的,額外獲得##strength,2##個積分。';
$lang->score->extended['project']['close'] = '項目經理增加##manager,close##個積分,項目成員增加##member,close##個積分。按期或者提前完成,項目經理額外增加##manager,in##個積分,項目成員額外增加##member,in##個積分。';
$lang->score->extended['bug']['resolve'] = 'Bug解決後,額外增加嚴重程度積分:s1 + ##severity,3##, s2 + ##severity,2##, s3 + ##severity,1##。';
$lang->score->extended['bug']['confirmBug'] = 'Bug確認後,額外增加嚴重程度積分:s1 + ##severity,3##, s2 + ##severity,2##, s3 + ##severity,1##。';
$lang->score->extended['task']['finish'] = '額外增加工時積分 round(工時 /10 * 預計 / 消耗) + 優先順序積分(p1 ##pri,1##, p2, ##pri,2##)。';
$lang->score->extended['story']['close'] = '需求的創建者額外增加##createID##分';
+38 -39
View File
@@ -43,6 +43,9 @@ class scoreModel extends model
$desc = $this->lang->score->modules[$module];
$user = empty($account) ? $this->app->user->account : $account;
$time = empty($time) ? helper::now() : $time;
$extended = "ruleExtended[$module][$method]";
if(is_numeric($param)) $desc .= 'ID:' . $param;
switch($module)
{
@@ -51,34 +54,28 @@ class scoreModel extends model
if($method == 'changePassword')
{
if(!empty($this->config->score->ruleExtended->changePassword['strength'][$param])) $rule['score'] = $rule['score'] + $this->config->score->ruleExtended->changePassword['strength'][$param];
if(!empty($this->config->score->{$extended}['strength'][$param]))
{
$rule['score'] = $rule['score'] + $this->config->score->{$extended}['strength'][$param];
}
$desc = $this->lang->score->methods[$module][$method];
}
break;
case 'doc':
if($method == 'create') $desc .= 'ID:' . $param;
break;
case 'todo':
if($method == 'create') $desc .= 'ID:' . $param;
break;
case 'story':
$desc .= 'ID:' . $param;
if($method == 'close')
{
$openedBy = $this->dao->findById($param)->from(TABLE_STORY)->fetch('openedBy');
if(!empty($openedBy))
{
$newRule = $rule;
$newRule['score'] = $this->config->score->ruleExtended->storyClose['createID'];
$newRule['score'] = $this->config->score->{$extended}['createID'];
$this->saveScore($openedBy, $newRule, $module, $method, $desc, $time);
unset($newRule);
}
}
break;
case 'task':
$desc .= 'ID:' . $param;
if($method == 'finish')
{
$desc = $this->lang->score->methods[$module][$method] . 'ID:' . $param;
@@ -88,13 +85,19 @@ class scoreModel extends model
if(!empty($parentTask)) return true;
$task = $this->loadModel('task')->getById($param);
if(!empty($this->config->score->ruleExtended->taskFinish['pri'][$task->pri])) $rule['score'] = $rule['score'] + $this->config->score->ruleExtended->taskFinish['pri'][$task->pri];
if(!empty($task->estimate)) $rule['score'] = $rule['score'] + round(($task->consumed / 10 * $task->estimate / $task->consumed));
if(!empty($this->config->score->{$extended}['pri'][$task->pri]))
{
$rule['score'] = $rule['score'] + $this->config->score->{$extended}['pri'][$task->pri];
}
if(!empty($task->estimate))
{
$rule['score'] = $rule['score'] + round(($task->consumed / 10 * $task->estimate / $task->consumed));
}
}
break;
case 'bug':
if(is_numeric($param)) $desc .= 'ID:' . $param;
if($method == 'createFormCase')
{
$desc = $this->lang->score->modules['testcase'] . 'ID:' . $param;
@@ -106,24 +109,23 @@ class scoreModel extends model
if($method == 'confirmBug')
{
$user = $param->openedBy;
$desc .= 'ID:' . $param->id;
if(!empty($this->config->score->ruleExtended->bugConfirmBug['severity'][$param->severity])) $rule['score'] = $rule['score'] + $this->config->score->ruleExtended->bugConfirmBug['severity'][$param->severity];
$user = $param->openedBy;
$desc .= 'ID:' . $param->id;
if(!empty($this->config->score->{$extended}['severity'][$param->severity]))
{
$rule['score'] = $rule['score'] + $this->config->score->{$extended}['severity'][$param->severity];
}
}
if($method == 'resolve' && !empty($this->config->score->ruleExtended->bugResolve['severity'][$param->severity]))
if($method == 'resolve' && !empty($this->config->score->{$extended}['severity'][$param->severity]))
{
$rule['score'] = $rule['score'] + $this->config->score->ruleExtended->bugResolve['severity'][$param->severity];
$rule['score'] = $rule['score'] + $this->config->score->{$extended}['severity'][$param->severity];
}
break;
case 'testTask':
if($method == 'runCase') $desc = $this->lang->score->methods[$module][$method] . 'ID:' . $param;
break;
case 'build':
if($method == 'create') $desc .= 'ID:' . $param;
break;
case 'project':
if($method == 'create') $desc .= 'ID:' . $param;
if($method == 'close')
{
$desc = $this->lang->score->methods[$module][$method] . ',' . $desc . 'ID:' . $param->id;
@@ -132,8 +134,11 @@ class scoreModel extends model
/* Project PM. */
if(!empty($param->PM))
{
$rule['score'] = $this->config->score->ruleExtended->projectClose['manager']['close'];
if($param->end > date('Y-m-d', $timestamp)) $rule['score'] += $this->config->score->ruleExtended->projectClose['manager']['in'];
$rule['score'] = $this->config->score->{$extended}['manager']['close'];
if($param->end > date('Y-m-d', $timestamp))
{
$rule['score'] += $this->config->score->{$extended}['manager']['onTime'];
}
$this->saveScore($param->PM, $rule, $module, $method, $desc, $time);
}
@@ -141,8 +146,12 @@ class scoreModel extends model
$teams = $this->dao->select('account')->from(TABLE_TEAM)->where('project')->eq($param->id)->fetchPairs();
if(!empty($teams))
{
$rule['score'] = $this->config->score->ruleExtended->projectClose['member']['close'];
if($param->end > date('Y-m-d', $timestamp)) $rule['score'] += $this->config->score->ruleExtended->projectClose['member']['in'];
$rule['score'] = $this->config->score->{$extended}['member']['close'];
if($param->end > date('Y-m-d', $timestamp))
{
$rule['score'] += $this->config->score->{$extended}['member']['onTime'];
}
foreach($teams as $user)
{
if($user != $param->PM) $this->saveScore($user, $rule, $module, $method, $desc, $time);
@@ -153,17 +162,7 @@ class scoreModel extends model
return true;
}
break;
case 'productplan':
if($method == 'create') $desc .= 'ID:' . $param;
break;
case 'release':
if($method == 'create') $desc .= 'ID:' . $param;
break;
case 'testcase':
if($method == 'create') $desc .= 'ID:' . $param;
break;
case 'search':
if($method == 'saveQuery') $desc .= 'ID:' . $param;
if($method == 'saveQueryAdvanced') $desc = $this->lang->score->methods[$module][$method];
break;
case 'ajax':
+6 -6
View File
@@ -28,19 +28,19 @@
</tr>
</thead>
<tbody>
<?php foreach($this->config->score->rule as $module => $moduleRule):?>
<?php foreach($config->score->rule as $module => $moduleRule):?>
<?php foreach($moduleRule as $method => $rule):?>
<tr>
<td class="text-center"><?php echo $lang->score->modules[$module];?></td>
<td class="text-center"><?php echo $lang->score->methods[$module][$method];?></td>
<td class="text-center"><?php echo empty($rule['times']) ? $lang->score->noLimit : $rule['times'];?></td>
<td class="text-center"><?php echo empty($rule['hour']) ? $lang->score->noLimit : $rule['hour'];?></td>
<td class="text-center"><?php echo empty($rule['hour']) ? $lang->score->noLimit : $rule['hour'];?></td>
<td class="text-center"><?php echo $rule['score'];?></td>
<td>
<?php
if(isset($lang->score->extended->{$module . $method}))
if(isset($lang->score->extended[$module][$method]))
{
$desc = $lang->score->extended->{$module . $method};
$desc = $lang->score->extended[$module][$method];
$descRule = explode('##', $desc);
if(!empty($descRule))
{
@@ -51,11 +51,11 @@
$match = explode(',', $value);
if(count($match) == 2)
{
$score = $this->config->score->ruleExtended->{$module . $method}[$match[0]][$match[1]];
$score = $config->score->ruleExtended[$module][$method][$match[0]][$match[1]];
}
else
{
$score = $this->config->score->ruleExtended->{$module . $method}[$match[0]];
$score = $config->score->ruleExtended[$module][$method][$match[0]];
}
$desc = str_replace('##' . $value . '##', $score, $desc);
}
+1 -1
View File
@@ -25,6 +25,7 @@ if($team[0] != $this->app->user->account):
<p><?php echo $lang->task->deniedNotice;?></p>
</div>
</div>
<?php endif;?>
<?php else:?>
<div id='titlebar'>
<div class='heading'>
@@ -58,5 +59,4 @@ if($team[0] != $this->app->user->account):
</form>
<div class='main'><?php include '../../common/view/action.html.php';?></div>
<?php endif;?>
<?php endif;?>
<?php include '../../common/view/footer.html.php';?>