def get_machine_info(self, obj):
machine_data = UserMachine.objects.filter(id=obj.test_machine_id)
- machine_info_serializer = UserMachineSerializer(machine_data, many=True,
- context={'request': self.context['request']})
+ machine_info_serializer = UserMachineSerializer(machine_data, many=True)
return machine_info_serializer.data
# def get_client_max_num(self, obj):
#
# rw_info_serializer = TestResultSerializer(all_data, many=True, context={'request': self.context['request']})
# return rw_info_serializer.data
+
+class MachineHistoryRecordSerializer(serializers.ModelSerializer):
+ '''
+ use MachineHistoryRecordSerializer
+ '''
+ machine_info = serializers.SerializerMethodField()
+ reports = serializers.SerializerMethodField()
+
+ class Meta:
+ model = UserMachine
+ fields = ('machine_info', 'reports')
+
+ def get_reports(self, obj):
+ target_records = TestRecord.objects.filter(test_machine_id=obj.id)
+ serializer = TestRecordListSerializer(target_records,many=True)
+
+ return serializer.data
+
+ def get_machine_info(self, obj):
+ target_machine = UserMachine.objects.filter(id=obj.id).first()
+ serializer = UserMachineSerializer(target_machine)
+
+ return serializer.data
\ No newline at end of file
import shortuuid
from django.contrib.auth.hashers import make_password
-from django.shortcuts import render
from rest_framework.pagination import PageNumberPagination
from exception import TestDataUploadError
from filters import TestRecordListFilter
from models import UserMachine, TestCategory
from pgperffarm.settings import DB_ENUM
+from .serializer import MachineHistoryRecordSerializer
from .serializer import TestRecordListSerializer, TestRecordDetailSerializer, LinuxInfoSerializer, MetaInfoSerializer, \
PGInfoSerializer, CreateTestRecordSerializer, CreateTestDateSetSerializer, TestResultSerializer
-from rest_framework.views import APIView
+
from rest_framework.decorators import api_view
from rest_framework.response import Response
from rest_framework import mixins
from rest_framework import status
-from rest_framework import generics
+
from rest_framework import viewsets
-from .models import TestRecord, LinuxInfo, MetaInfo, PGInfo, TestBranch
+from .models import TestRecord
import json
lookup_field = 'uuid'
queryset = TestRecord.objects.all().order_by('add_time')
serializer_class = TestRecordDetailSerializer
- pagination_class = StandardResultsSetPagination
+ # pagination_class = StandardResultsSetPagination
+class MachineHistoryRecordViewSet(mixins.RetrieveModelMixin, viewsets.GenericViewSet):
+ """
+ detail test records
+ """
+ lookup_field = 'machine_sn'
+ queryset = UserMachine.objects.all().order_by('add_time')
+ serializer_class = MachineHistoryRecordSerializer
+ # pagination_class = StandardResultsSetPagination
@api_view(['POST'])
def TestRecordCreate(request, format=None):
'metric': dataset['metric'],
'median': dataset['median'],
'test_cate': test_cate.id,
- # status,percentage calc by tarr
+ # status,percentage calc by receiver
'status': -1,
'percentage': 0.0,
}
avatar = serializers.SerializerMethodField()
class Meta:
model = UserMachine
- # fields = "__all__"
fields = ('alias', 'os_name', 'os_version', 'comp_name', 'comp_version', 'reports', 'owner' , 'avatar')
def get_alias(self, obj):
avatar = 'http://s.gravatar.com/avatar/' + hashlib.md5(target_owner['email']).hexdigest()
print avatar
- return avatar
\ No newline at end of file
+ return avatar
+
from rest_framework.documentation import include_docs_urls
from rest_framework.routers import DefaultRouter
-from test_records.views import TestRecordListViewSet, TestRecordCreate, TestRecordDetailViewSet
+from test_records.views import TestRecordListViewSet, TestRecordCreate, TestRecordDetailViewSet, \
+ MachineHistoryRecordViewSet
from test_records.auth import MachineAuthToken
# from test_records.view_base import TestListView
router = DefaultRouter()
router.register(r'records', TestRecordListViewSet, base_name="records")
router.register(r'detail', TestRecordDetailViewSet, base_name="detail")
-
+router.register(r'machine', MachineHistoryRecordViewSet, base_name="machine")
# router.register(r'detail', TestRecordListViewSet)
urlpatterns = [