--- /dev/null
+import React from 'react';
+
+import NavTop from 'component/nav-top/index.jsx';
+// import './index.css';
+import {Image, Card, Button, List, Icon} from 'semantic-ui-react'
+class FarmerCard extends React.Component {
+ constructor(props){
+ super(props);
+ }
+ render(){
+ let machine = this.props.machine
+ let system = machine.os_name + ' ' + machine.os_version;
+ let camp = machine.comp_name + ' ' + machine.comp_version;
+ return (
+
+ <div className="farmer-card">
+ <Card>
+ <Card.Content>
+ <Image floated='right' size='mini'
+ src='http://www.semantic-ui.cn/images/avatar2/small/lena.png'/>
+ <Card.Header>Farmer: {machine.alias}</Card.Header>
+ <Card.Meta>report num: {machine.reports}</Card.Meta>
+ <Card.Description>
+ <List>
+ <List.Item icon='computer' content={system} />
+ <List.Item icon='microchip' content={camp} />
+ <List.Item
+ icon='mail'
+ content={<a href={machine.owner}>{machine.owner}</a>}
+ />
+ </List>
+ </Card.Description>
+ </Card.Content>
+ <Card.Content extra>
+ <div className='ui buttons'>
+ <Button basic color='blue'>
+ Other records
+ </Button>
+ </div>
+ </Card.Content>
+ </Card>
+ </div>
+ );
+ }
+}export default FarmerCard;
+
import './index.css';
import {Table, Divider, Segment, Image, Label, Card, Button, List, Icon} from 'semantic-ui-react'
import PGUtil from 'util/util.jsx'
+import FarmerCard from 'component/farmer-card/index.jsx'
import Record from 'service/record-service.jsx'
const _util = new PGUtil();
const _record = new Record();
listParam.recordNo = this.state.recordNo;
_record.getRecordInfo(listParam).then(res => {
- this.setState(res);
- }, errMsg => {
this.setState({
- list: []
+ recordInfo:res
});
+ console.log(this.state.recordInfo)
+ }, errMsg => {
+ // this.setState({
+ // recordInfo: {}
+ // });
_util.errorTips(errMsg);
});
}
render() {
+ let machine = this.state.recordInfo.test_machine || {};
+ console.log(machine)
+ // let system = machine.os_name + ' ' + machine.os_version + ' ' + machine.comp_name + ' ' + machine.comp_version;
return (
<div className="container-fluid detail-container">
+ <div className="record-title">
+ <h2 >NO: {this.state.recordNo}</h2>
+ </div>
+
<div className="col-md-3">
- <h2>{this.state.recordNo}</h2>
+
<Segment vertical>Farmer Info</Segment>
- <Card>
- <Card.Content>
- <Image floated='right' size='mini'
- src='http://www.semantic-ui.cn/images/avatar2/small/lena.png'/>
- <Card.Header>Farmer: Cabbage</Card.Header>
- <Card.Meta>report num: 4</Card.Meta>
- <Card.Description>
- <List>
- <List.Item icon='computer' content='ubuntu 16' />
- <List.Item icon='microchip' content='x86 64' />
- <List.Item
- icon='mail'
- content={<a href='mailto:jack@semantic-ui.com'>mahongyuan1997@semantic-ui.com</a>}
- />
- </List>
- {/*<div>*/}
- {/*<ul className="list-group" >*/}
- {/*<li className="list-group-item">system os:ubuntu 16</li>*/}
- {/*<li className="list-group-item">camp: x86 64</li>*/}
- {/*</ul>*/}
- {/*</div>*/}
- </Card.Description>
- </Card.Content>
- <Card.Content extra>
- <div className='ui two buttons'>
- <Button basic color='green'>
- Other records
- </Button>
- </div>
- </Card.Content>
- </Card>
+ <FarmerCard machine={machine}></FarmerCard>
</div>
<div className="col-md-9">
from rest_framework import serializers
-from users.models import UserMachine
+
+from test_records.models import TestRecord
+from users.models import UserMachine, Alias, UserProfile
from django.db.models import Q
+class AliasSerializer(serializers.ModelSerializer):
+ '''
+ use TestResultSerializer
+ '''
+
+ class Meta:
+ model = Alias
+ fields = ('name', )
class UserMachineSerializer(serializers.ModelSerializer):
'''
use UserMachineSerializer
'''
+ alias = serializers.SerializerMethodField()
+ reports = serializers.SerializerMethodField()
+ owner = serializers.SerializerMethodField()
class Meta:
model = UserMachine
# fields = "__all__"
- fields = ('alias', 'os_name', 'os_version', 'comp_name', 'comp_version')
+ fields = ('alias', 'os_name', 'os_version', 'comp_name', 'comp_version', 'reports', 'owner')
+
+ def get_alias(self, obj):
+ target_alias = Alias.objects.filter(id=obj.alias_id).first()
+
+ serializer = AliasSerializer(target_alias)
+ return serializer.data['name']
+
+ def get_reports(self, obj):
+ reports_num = TestRecord.objects.filter(test_machine_id=obj.id).count()
+ return reports_num
+
+ def get_owner(self, obj):
+ target_owner = UserProfile.objects.filter(id=obj.machine_owner_id).values('email').first()
+
+ return target_owner['email']
\ No newline at end of file