diff --git a/module/search/model.php b/module/search/model.php index bfcfa7e2e6..b28bebfae5 100644 --- a/module/search/model.php +++ b/module/search/model.php @@ -57,6 +57,8 @@ class searchModel extends model $groupAndOr = strtoupper($this->post->groupAndOr); if($groupAndOr != 'AND' && $groupAndOr != 'OR') $groupAndOr = 'AND'; + a($searchFields); + a($fieldParams);exit; $queryForm = $this->initSession($module, $searchFields, $fieldParams); $scoreNum = 0; diff --git a/module/search/test/model/setdefaultparams.php b/module/search/test/model/setdefaultparams.php new file mode 100755 index 0000000000..82f9f7256f --- /dev/null +++ b/module/search/test/model/setdefaultparams.php @@ -0,0 +1,54 @@ +#!/usr/bin/env php +gen(5); +zdTable('product')->gen(10); +zdTable('project')->config('execution')->gen(10); + +/** + +title=测试 searchModel->setDefaultParams(); +timeout=0 +cid=1 + +- 测试用户admin的值第user条的admin属性 @A:admin +- 测试产品1的值第product条的1属性 @正常产品1 +- 测试迭代101的值第execution条的101属性 @/迭代5 + +*/ + +$search = new searchTest(); + +$fields = array('user' => 'user', 'product' => 'product', 'execution' => 'execution'); +$userParam = array(); +$userParam['operator'] = '='; +$userParam['control'] = 'select'; +$userParam['values'] = 'users'; + +$userParam = array(); +$userParam['operator'] = '='; +$userParam['control'] = 'select'; +$userParam['values'] = 'users'; + +$productParam = array(); +$productParam['operator'] = '='; +$productParam['control'] = 'select'; +$productParam['values'] = 'products'; + +$executionParam = array(); +$executionParam['operator'] = '='; +$executionParam['control'] = 'select'; +$executionParam['values'] = 'executions'; + +$params = array(); +$params['user'] = $userParam; +$params['product'] = $productParam; +$params['execution'] = $executionParam; + +r($search->setDefaultParamsTest($fields, $params)) && p('user:admin') && e('A:admin'); //测试用户admin的值 +r($search->setDefaultParamsTest($fields, $params)) && p('product:1') && e('正常产品1'); //测试产品1的值 +r($search->setDefaultParamsTest($fields, $params)) && p('execution:101') && e('/迭代5'); //测试迭代101的值 \ No newline at end of file diff --git a/module/search/test/model/yaml/setdefaultparams/execution.yaml b/module/search/test/model/yaml/setdefaultparams/execution.yaml new file mode 100644 index 0000000000..7f0d4b4b64 --- /dev/null +++ b/module/search/test/model/yaml/setdefaultparams/execution.yaml @@ -0,0 +1,63 @@ +title: execution. +desc: execution data. +author: Wang Yidong +version: "1.0" +fields: + - field: id + range: 11,60,61,100,101-700 + - field: name + note: "名称" + fields: + - field: name1 + range: 敏捷项目,瀑布项目{2},看板项目,迭代{5},阶段{18},看板{5} + - field: name2 + range: 1-10000 + - field: project + range: 0{4},11{5},60{12},61{6},100{5} + - field: model + range: scrum,waterfall{2},kanban,[]{28} + - field: attribute + range: "[]{4},[]{5},request,design,dev,qa,release,review,request,design,dev,qa,release,review,request,design,dev,qa,release,review,[]{5}" + - field: type + range: project{4},sprint{5},stage{18},kanban{5} + - field: budget + range: 800000-1:100 + - field: status + range: doing{4},wait{2},doing{2},suspended{2},closed{2} + - field: auth + range: "extend" + - field: desc + range: 1-10000 + prefix: "迭代描述" + - field: begin + range: "(-2M)-(+M):1D" + type: timestamp + format: "YY/MM/DD" + postfix: "\t" + - field: end + range: "(+1w)-(+2M):1D" + type: timestamp + format: "YY/MM/DD" + postfix: "\t" + - field: grade + range: 1{4},1{5},1{6},2{6},1{6},1{5} + - field: parent + range: 0{4},11{5},60{6},106-111,61{6},100{5} + - field: path + fields: + - field: path1 + prefix: "," + range: 11,60,61,100,11{5},60{12},61{6},100{5} + - field: path2 + prefix: "," + range: "[]{4},101-105,106-111,106-111,118-700" + postfix: "," + - field: path3 + range: "[]{4},[]{5},[]{6},112-117,[]{50}" + postfix: "," + - field: acl + range: open{4},private{4} + - field: multiple + range: 1{4},1{3},0{2},1{18},1{5} + - field: deleted + range: 0{30},1 diff --git a/module/search/test/search.class.php b/module/search/test/search.class.php index 0762e9c489..0807fa39c2 100644 --- a/module/search/test/search.class.php +++ b/module/search/test/search.class.php @@ -61,6 +61,19 @@ class searchTest return $_SESSION[$querySessionName]; } + public function setDefaultParamsTest(array $fields, array $params): array + { + global $tester; + $tester->session->set('project', 0); + + $params = $this->objectModel->setDefaultParams($fields, $params); + + $paramValues = array(); + foreach($params as $field => $param) $paramValues[$field] = $param['values']; + + return $paramValues; + } + /** * 测试初始化 session。 * Test init session function.