isClear: true
});
+ console.log('the lastest selected')
+ console.dir(newSelected)
}
this.props.onIsLoadingChange(true);
let branches = this.getSelectedBranches()
- console.dir(branches)
this.props.onApplyBtnClick(branches);
// console.log('isLoading:' + this.props.isLoading)
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 || {};
<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>
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,
});
}
+ 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)
let table_list = this.state.selected_branches.map((value, index) => {
if (value.isSelected == true) {
return (
- <RecordTable branch={value.branch_name}/>
+ <RecordTable branch={value.name}/>
);
}
});
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;
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
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) {
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;
<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>*/}
</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.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>
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) {
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;
<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>*/}
</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>
return (
<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.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>
class Meta:
model = TestBranch
- fields = ('branch_name','id')
+ fields = ('branch_name', 'id')
class TestCategorySerializer(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):
'''
model = TestResult
fields = "__all__"
+
class TestResultSerializer(serializers.ModelSerializer):
'''
use TestResultSerializer
model = TestDataSet
fields = "__all__"
+
class TestStatusRecordListSerializer(serializers.ModelSerializer):
'''
use 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()
# 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()
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):
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):
'''
machine_info = serializers.SerializerMethodField()
reports = serializers.SerializerMethodField()
branches = serializers.SerializerMethodField()
+
class Meta:
model = UserMachine
fields = ('machine_info', 'reports', 'branches')
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
class MachineHistoryRecordViewSet( mixins.RetrieveModelMixin, viewsets.GenericViewSet):
"""
- detail test records
+ machine info page
"""
lookup_field = 'machine_sn'
queryset = UserMachine.objects.all().order_by('add_time')
"""
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
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()