diff options
author | Hongyuan Ma | 2018-07-31 14:42:05 +0000 |
---|---|---|
committer | Hongyuan Ma | 2018-07-31 14:42:05 +0000 |
commit | 6c79d45bd00addd57397ba0d85cf57eb8cc52e8b (patch) | |
tree | d77b748204276291ebb1cc40c261c5a8a337eee5 | |
parent | 45dd2ffe15fa18205f8ef789bf378a4684141a60 (diff) |
Optimize details
-rw-r--r-- | front-end/src/component/result-filter/index.jsx | 3 | ||||
-rw-r--r-- | front-end/src/page/detailInfo/index.jsx | 2 | ||||
-rw-r--r-- | front-end/src/page/status/index.jsx | 45 | ||||
-rw-r--r-- | front-end/src/util/basic-table/index.jsx | 2 | ||||
-rw-r--r-- | front-end/src/util/constant.jsx | 1 | ||||
-rw-r--r-- | front-end/src/util/machine-record-table/index.jsx | 12 | ||||
-rw-r--r-- | front-end/src/util/record-table/index.jsx | 24 | ||||
-rw-r--r-- | web/apps/test_records/serializer.py | 45 | ||||
-rw-r--r-- | web/apps/test_records/views.py | 2 | ||||
-rw-r--r-- | web/apps/user_operation/filters.py | 4 | ||||
-rw-r--r-- | web/apps/users/serializer.py | 2 |
11 files changed, 92 insertions, 50 deletions
diff --git a/front-end/src/component/result-filter/index.jsx b/front-end/src/component/result-filter/index.jsx index b9ad705..2ae1141 100644 --- a/front-end/src/component/result-filter/index.jsx +++ b/front-end/src/component/result-filter/index.jsx @@ -153,6 +153,8 @@ class ResultFilter extends React.Component { isClear: true }); + console.log('the lastest selected') + console.dir(newSelected) } @@ -198,7 +200,6 @@ class ResultFilter extends React.Component { this.props.onIsLoadingChange(true); let branches = this.getSelectedBranches() - console.dir(branches) this.props.onApplyBtnClick(branches); // console.log('isLoading:' + this.props.isLoading) diff --git a/front-end/src/page/detailInfo/index.jsx b/front-end/src/page/detailInfo/index.jsx index af9008e..419c70f 100644 --- a/front-end/src/page/detailInfo/index.jsx +++ b/front-end/src/page/detailInfo/index.jsx @@ -48,6 +48,7 @@ class DetailInfo extends React.Component { let machine = this.state.recordInfo.test_machine || {}; let dataset = this.state.recordInfo.dataset_info || {}; let meta_info = this.state.recordInfo.meta_info || {}; + let pg_info = this.state.recordInfo.pg_info || {}; let linux_info = this.state.recordInfo.linux_info || {}; let hardware_info = this.state.recordInfo.hardware_info || {}; let ro = dataset.ro || {}; @@ -294,6 +295,7 @@ class DetailInfo extends React.Component { <InfoList name="Meta" info={meta_info}> </InfoList> + <InfoList name="PG Settings" info={pg_info}> </InfoList> <InfoList name="Operating System" info={linux_info}> </InfoList> <InfoList name="Hardward" info={hardware_info}> </InfoList> </div> diff --git a/front-end/src/page/status/index.jsx b/front-end/src/page/status/index.jsx index cab19e6..d1a2b33 100644 --- a/front-end/src/page/status/index.jsx +++ b/front-end/src/page/status/index.jsx @@ -47,12 +47,11 @@ class Status extends React.Component { console.log('handle apply!') let _this = this - let selected_branches = branches - if(selected_branches === undefined || selected_branches.length == 0) { - selected_branches = this.state.branch_list - for (let i = 0; i < selected_branches.length; i++) { - selected_branches[i].isSelected = true; - } + let selected_branches = [] + if(branches === undefined || branches.length == 0) { + selected_branches = this.adjustBranchList([]) + }else{ + selected_branches = branches } this.setState({ selected_branches: selected_branches, @@ -60,17 +59,37 @@ class Status extends React.Component { }); } + adjustBranchList(branches){ + let selected_branches = [] + if(branches === undefined || branches.length == 0) { + branches = this.state.branch_list + + for (let i = 0; i < branches.length; i++) { + let newItem = {} + newItem['name'] = branches[i].branch_name + newItem['value'] = branches[i].branch_name + newItem['isSelected'] = true; + selected_branches.push(newItem) + } + + } + + return selected_branches + } loadBranchList() { _record.getBranchList().then(res => { - let selected_branches = res.results - for (let i = 0; i < selected_branches.length; i++) { - selected_branches[i].isSelected = true; - } - + // let selected_branches = res.results + // for (let i = 0; i < selected_branches.length; i++) { + // selected_branches[i].isSelected = true; + // } + let _this = this this.setState({ branch_list: res.results, - selected_branches: selected_branches, + },()=>{ + this.setState({ + selected_branches: _this.adjustBranchList([]), + }); }); console.log('now console the branch_list') console.dir(res.results) @@ -137,7 +156,7 @@ class Status extends React.Component { let table_list = this.state.selected_branches.map((value, index) => { if (value.isSelected == true) { return ( - <RecordTable branch={value.branch_name}/> + <RecordTable branch={value.name}/> ); } }); diff --git a/front-end/src/util/basic-table/index.jsx b/front-end/src/util/basic-table/index.jsx index 22d5b41..a2eb1a6 100644 --- a/front-end/src/util/basic-table/index.jsx +++ b/front-end/src/util/basic-table/index.jsx @@ -80,7 +80,7 @@ class BasicTable extends React.Component { display: 'show' }; let listBody = _list.map((record, index) => { - let machine = record.machine_info[0]; + let machine = record.machine_info; let system = machine.os_name + ' ' + machine.os_version + ' ' + machine.comp_name + ' ' + machine.comp_version; let alias = machine.alias; diff --git a/front-end/src/util/constant.jsx b/front-end/src/util/constant.jsx index f0e6e6a..1752b76 100644 --- a/front-end/src/util/constant.jsx +++ b/front-end/src/util/constant.jsx @@ -6,5 +6,6 @@ const object = { UnauthorizedCode:401,// unlogin AuthorizedErrorCode:400,// username or pwd mistake + PG_GITHUB_MIRROR:'https://github.com/postgres/postgres/commit/' }; export default object;
\ No newline at end of file diff --git a/front-end/src/util/machine-record-table/index.jsx b/front-end/src/util/machine-record-table/index.jsx index 27c34c7..c8b999a 100644 --- a/front-end/src/util/machine-record-table/index.jsx +++ b/front-end/src/util/machine-record-table/index.jsx @@ -2,6 +2,7 @@ import React from 'react'; import {Link} from 'react-router-dom'; import {Icon, Table, Label, Message, Button} from 'semantic-ui-react' import Pagination from 'util/pagination/index.jsx' +import PGConstant from 'util/constant.jsx' import './index.css'; function Bubble(props) { @@ -45,7 +46,7 @@ class MachineRecordTable extends React.Component { display: 'show' }; let listBody = _list.map((record, index) => { - let machine = record.machine_info[0]; + let machine = record.machine_info; let system = machine.os_name + ' ' + machine.os_version + ' ' + machine.comp_name + ' ' + machine.comp_version; let alias = machine.alias; @@ -58,7 +59,11 @@ class MachineRecordTable extends React.Component { <Table.Row key={index}> {/*alias*/} - <Table.Cell><a href="#">{alias}</a></Table.Cell> + <Table.Cell> + <Link color='linkedin' to={'machineInfo/' + machine.machine_sn}> + {alias} + </Link> + </Table.Cell> {/*system*/} {/*<Table.Cell><a href="#">{system}</a></Table.Cell>*/} @@ -89,6 +94,8 @@ class MachineRecordTable extends React.Component { </Link> </Table.Cell> + {/*commit*/} + <Table.Cell><a target="_blank" href={ PGConstant.PG_GITHUB_MIRROR + record.commit}>{ record.commit.substring(0, 7)}</a></Table.Cell> {/*date*/} <Table.Cell>{record.add_time}</Table.Cell> @@ -108,6 +115,7 @@ class MachineRecordTable extends React.Component { {/*<Table.HeaderCell rowSpan='2'>Branch</Table.HeaderCell>*/} <Table.HeaderCell colSpan='3'>Trending</Table.HeaderCell> <Table.HeaderCell rowSpan='2'>Detail</Table.HeaderCell> + <Table.HeaderCell rowSpan='2'>Commit</Table.HeaderCell> <Table.HeaderCell rowSpan='2'>Date</Table.HeaderCell> </Table.Row> <Table.Row> diff --git a/front-end/src/util/record-table/index.jsx b/front-end/src/util/record-table/index.jsx index bffb955..dc731cc 100644 --- a/front-end/src/util/record-table/index.jsx +++ b/front-end/src/util/record-table/index.jsx @@ -5,6 +5,7 @@ import Pagination from 'util/pagination/index.jsx' import Record from 'service/record-service.jsx' import './index.css'; const _record = new Record(); +import PGConstant from 'util/constant.jsx' function Bubble(props) { if (props.num <= 0) { @@ -109,7 +110,7 @@ class RecordTable extends React.Component { display: 'show' }; let listBody = _list.map((record, index) => { - let machine = record.machine_info[0]; + let machine = record.machine_info; let system = machine.os_name + ' ' + machine.os_version + ' ' + machine.comp_name + ' ' + machine.comp_version; let alias = machine.alias; @@ -122,10 +123,14 @@ class RecordTable extends React.Component { <Table.Row key={index}> {/*alias*/} - <Table.Cell><a href="#">{alias}</a></Table.Cell> + <Table.Cell> + <Link color='linkedin' to={'machineInfo/' + machine.machine_sn}> + {alias} + </Link> + </Table.Cell> {/*system*/} - <Table.Cell><a href="#">{system}</a></Table.Cell> + <Table.Cell>{system}</Table.Cell> {/*branch*/} {/*<Table.Cell>{branch}</Table.Cell>*/} @@ -153,7 +158,8 @@ class RecordTable extends React.Component { </Link> </Table.Cell> - + {/*commit*/} + <Table.Cell><a target="_blank" href={ PGConstant.PG_GITHUB_MIRROR + record.commit}>{ record.commit.substring(0, 7)}</a></Table.Cell> {/*date*/} <Table.Cell>{record.add_time}</Table.Cell> </Table.Row> @@ -164,6 +170,15 @@ class RecordTable extends React.Component { <Table celled structured compact textAlign='center'> <Table.Header> {/*<Table.Row>*/} + {/*<Table.HeaderCell rowSpan='9'>Branch: {this.state.branch}</Table.HeaderCell>*/} + {/*</Table.Row>*/} + <Table.Row> + <Table.HeaderCell colSpan='11'>{this.state.branch}</Table.HeaderCell> + </Table.Row> + + </Table.Header> + <Table.Header> + {/*<Table.Row>*/} {/*<Table.HeaderCell rowSpan='9'>Branch: {this.state.branch}</Table.HeaderCell>*/} {/*</Table.Row>*/} <Table.Row> @@ -172,6 +187,7 @@ class RecordTable extends React.Component { {/*<Table.HeaderCell rowSpan='2'>Branch</Table.HeaderCell>*/} <Table.HeaderCell colSpan='3'>Trending</Table.HeaderCell> <Table.HeaderCell rowSpan='2'>Detail</Table.HeaderCell> + <Table.HeaderCell rowSpan='2'>Commit</Table.HeaderCell> <Table.HeaderCell rowSpan='2'>Date</Table.HeaderCell> </Table.Row> <Table.Row> diff --git a/web/apps/test_records/serializer.py b/web/apps/test_records/serializer.py index be3f295..574ab70 100644 --- a/web/apps/test_records/serializer.py +++ b/web/apps/test_records/serializer.py @@ -15,7 +15,7 @@ class TestBranchSerializer(serializers.ModelSerializer): class Meta: model = TestBranch - fields = ('branch_name','id') + fields = ('branch_name', 'id') class TestCategorySerializer(serializers.ModelSerializer): @@ -65,29 +65,32 @@ class PGInfoSerializer(serializers.ModelSerializer): class Meta: model = PGInfo - fields = "__all__" + fields = ('checkpoint_timeout', 'log_temp_files', 'work_mem', 'log_line_prefix', 'shared_buffers', + 'log_autovacuum_min_duration', 'checkpoint_completion_target', 'maintenance_work_mem', + 'log_checkpoints', 'max_wal_size', 'min_wal_size') def get_log_checkpoints(self, obj): new_dict = {v: k for k, v in DB_ENUM["general_switch"].items()} return new_dict[obj.log_checkpoints] def get_checkpoint_timeout(self, obj): - return obj['checkpoint_timeout'].__str__() + 'min' + return obj.checkpoint_timeout.__str__() + 'min' def get_work_mem(self, obj): - return obj['work_mem'].__str__() + 'MB' + return obj.work_mem.__str__() + 'MB' def get_shared_buffers(self, obj): - return obj['shared_buffers'].__str__() + 'GB' + return obj.shared_buffers.__str__() + 'GB' def get_maintenance_work_mem(self, obj): - return obj['maintenance_work_mem'].__str__() + 'MB' + return obj.maintenance_work_mem.__str__() + 'MB' def get_max_wal_size(self, obj): - return obj['max_wal_size'].__str__() + 'GB' + return obj.max_wal_size.__str__() + 'GB' def get_min_wal_size(self, obj): - return obj['min_wal_size'].__str__() + 'GB' + return obj.min_wal_size.__str__() + 'GB' + class HardwareInfoDetailSerializer(serializers.ModelSerializer): ''' @@ -148,6 +151,7 @@ class CreateTestResultSerializer(serializers.ModelSerializer): model = TestResult fields = "__all__" + class TestResultSerializer(serializers.ModelSerializer): ''' use TestResultSerializer @@ -196,6 +200,7 @@ class CreateTestDateSetSerializer(serializers.ModelSerializer): model = TestDataSet fields = "__all__" + class TestStatusRecordListSerializer(serializers.ModelSerializer): ''' use ModelSerializer @@ -255,11 +260,12 @@ class TestStatusRecordListSerializer(serializers.ModelSerializer): # rw_client_num = TestResult.objects.filter(Q(test_record_id=obj.id ) ,test_cate_id=2).order_by('clients').distinct('clients').count() # return max(ro_client_num,rw_client_num) + class TestRecordListSerializer(serializers.ModelSerializer): ''' use ModelSerializer ''' - pg_info = PGInfoSerializer() + # pg_info = PGInfoSerializer() linux_info = LinuxInfoSerializer() meta_info = MetaInfoSerializer() branch = serializers.SerializerMethodField() @@ -269,7 +275,7 @@ class TestRecordListSerializer(serializers.ModelSerializer): # client_max_num = serializers.SerializerMethodField() class Meta: model = TestRecord - fields = ('uuid', 'add_time', 'machine_info', 'pg_info', 'branch', 'trend', 'linux_info', 'meta_info') + fields = ('uuid', 'add_time', 'machine_info', 'branch', 'trend', 'linux_info', 'meta_info', 'commit') def get_branch(self, obj): branch = TestBranch.objects.filter(id=obj.branch.id).first() @@ -304,9 +310,9 @@ class TestRecordListSerializer(serializers.ModelSerializer): return trend def get_machine_info(self, obj): - machine_data = UserMachine.objects.filter(id=obj.test_machine_id) + machine_data = UserMachine.objects.filter(id=obj.test_machine_id).get() - machine_info_serializer = UserMachineSerializer(machine_data, many=True) + machine_info_serializer = UserMachineSerializer(machine_data) return machine_info_serializer.data # def get_client_max_num(self, obj): @@ -403,18 +409,6 @@ class TestRecordDetailSerializer(serializers.ModelSerializer): return dataset - # def get_ro_info(self, obj): - # all_data = TestResult.objects.filter(Q(test_record_id=obj.id ) ,test_cate_id=1) - # - # ro_info_serializer = TestResultSerializer(all_data, many=True, context={'request': self.context['request']}) - # return ro_info_serializer.data - # - # def get_rw_info(self, obj): - # all_data = TestResult.objects.filter(Q(test_record_id=obj.id) ,test_cate_id=2) - # - # rw_info_serializer = TestResultSerializer(all_data, many=True, context={'request': self.context['request']}) - # return rw_info_serializer.data - class MachineHistoryRecordSerializer(serializers.ModelSerializer): ''' @@ -423,6 +417,7 @@ class MachineHistoryRecordSerializer(serializers.ModelSerializer): machine_info = serializers.SerializerMethodField() reports = serializers.SerializerMethodField() branches = serializers.SerializerMethodField() + class Meta: model = UserMachine fields = ('machine_info', 'reports', 'branches') @@ -436,7 +431,7 @@ class MachineHistoryRecordSerializer(serializers.ModelSerializer): item = {} item['branch'] = branch_item[0] - records = TestRecord.objects.filter(test_machine_id=obj.id,branch_id=branch_item[0]) + records = TestRecord.objects.filter(test_machine_id=obj.id, branch_id=branch_item[0]) serializer = TestRecordListSerializer(records, many=True) item['records'] = serializer.data diff --git a/web/apps/test_records/views.py b/web/apps/test_records/views.py index 80b981f..0b6c776 100644 --- a/web/apps/test_records/views.py +++ b/web/apps/test_records/views.py @@ -101,7 +101,7 @@ class TestRecordDetailViewSet(mixins.RetrieveModelMixin, viewsets.GenericViewSet class MachineHistoryRecordViewSet( mixins.RetrieveModelMixin, viewsets.GenericViewSet): """ - detail test records + machine info page """ lookup_field = 'machine_sn' queryset = UserMachine.objects.all().order_by('add_time') diff --git a/web/apps/user_operation/filters.py b/web/apps/user_operation/filters.py index 743728b..7208055 100644 --- a/web/apps/user_operation/filters.py +++ b/web/apps/user_operation/filters.py @@ -10,8 +10,8 @@ class MachineRecordListFilter(django_filters.rest_framework.FilterSet): """ TestRecordListFilter """ - branch__id = django_filters.NumberFilter(lookup_expr='icontains') - test_machine__machine_sn = django_filters.NumberFilter(lookup_expr='icontains') + branch__id = django_filters.NumberFilter() + test_machine__machine_sn = django_filters.CharFilter() class Meta: model = TestRecord diff --git a/web/apps/users/serializer.py b/web/apps/users/serializer.py index 91346b3..553f456 100644 --- a/web/apps/users/serializer.py +++ b/web/apps/users/serializer.py @@ -24,7 +24,7 @@ class UserMachineSerializer(serializers.ModelSerializer): avatar = serializers.SerializerMethodField() class Meta: model = UserMachine - fields = ('alias', 'os_name', 'os_version', 'comp_name', 'comp_version', 'reports', 'owner' , 'avatar') + fields = ('alias', 'os_name', 'os_version', 'comp_name', 'comp_version', 'reports', 'owner' , 'avatar', 'machine_sn') def get_alias(self, obj): target_alias = Alias.objects.filter(id=obj.alias_id).first() |