summaryrefslogtreecommitdiff
path: root/web
diff options
context:
space:
mode:
authorHongyuan Ma2018-07-09 14:38:08 +0000
committerHongyuan Ma2018-07-09 14:38:08 +0000
commite8d19d9bb977f473783242e9df8e5b520a65a28b (patch)
tree72c1cb2ca9bc9f799d9f1726beecf4379dd320f4 /web
parentb4f869cf90f3968d219f362a975612e5c749b169 (diff)
add MachineRecordTable;
Diffstat (limited to 'web')
-rw-r--r--web/apps/test_records/serializer.py35
-rw-r--r--web/apps/test_records/views.py2
-rw-r--r--web/apps/user_operation/serializer.py2
-rw-r--r--web/pgperffarm/urls.py2
4 files changed, 31 insertions, 10 deletions
diff --git a/web/apps/test_records/serializer.py b/web/apps/test_records/serializer.py
index b50071d..556db49 100644
--- a/web/apps/test_records/serializer.py
+++ b/web/apps/test_records/serializer.py
@@ -7,6 +7,7 @@ from users.serializer import UserMachineSerializer
from users.models import UserMachine
from django.db.models import Count
+
class TestBranchSerializer(serializers.ModelSerializer):
'''
use TestBranchSerializer
@@ -16,6 +17,7 @@ class TestBranchSerializer(serializers.ModelSerializer):
model = TestBranch
fields = ('branch_name',)
+
class TestCategorySerializer(serializers.ModelSerializer):
'''
use TestCategorySerializer
@@ -45,6 +47,7 @@ class HardwareInfoDetailSerializer(serializers.ModelSerializer):
model = LinuxInfo
fields = ('cpuinfo', 'meminfo')
+
class LinuxInfoDetailSerializer(serializers.ModelSerializer):
'''
use LinuxInfoDetailSerializer
@@ -54,6 +57,7 @@ class LinuxInfoDetailSerializer(serializers.ModelSerializer):
model = LinuxInfo
fields = ('mounts', 'sysctl')
+
class LinuxInfoSerializer(serializers.ModelSerializer):
'''
use LinuxInfoSerializer
@@ -71,7 +75,8 @@ class MetaInfoDetailSerializer(serializers.ModelSerializer):
class Meta:
model = MetaInfo
- fields = ('uname', )
+ fields = ('uname',)
+
class MetaInfoSerializer(serializers.ModelSerializer):
'''
@@ -88,13 +93,16 @@ class TestResultSerializer(serializers.ModelSerializer):
use TestResultSerializer
'''
mode = serializers.SerializerMethodField()
+
class Meta:
model = TestResult
fields = "__all__"
+
def get_mode(self, obj):
new_dict = {v: k for k, v in DB_ENUM["mode"].items()}
return new_dict[obj.mode]
+
class CreateTestRecordSerializer(serializers.ModelSerializer):
'''
create ModelSerializer
@@ -143,7 +151,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', 'pg_info', 'branch', 'trend', 'linux_info', 'meta_info')
def get_branch(self, obj):
branch = TestBranch.objects.filter(id=obj.branch.id).first()
@@ -191,6 +199,7 @@ class TestRecordListSerializer(serializers.ModelSerializer):
class TestDataSetDetailSerializer(serializers.ModelSerializer):
results = serializers.SerializerMethodField()
+
class Meta:
model = TestDataSet
fields = "__all__"
@@ -220,7 +229,8 @@ class TestRecordDetailSerializer(serializers.ModelSerializer):
class Meta:
model = TestRecord
fields = (
- 'branch', 'date', 'uuid', 'pg_info', 'linux_info', 'hardware_info', 'meta_info', 'dataset_info', 'test_desc', 'meta_time', 'test_machine')
+ 'branch', 'date', 'uuid', 'pg_info', 'linux_info', 'hardware_info', 'meta_info', 'dataset_info',
+ 'test_desc', 'meta_time', 'test_machine')
def get_branch(self, obj):
branch = TestBranch.objects.filter(id=obj.branch_id).first()
@@ -287,6 +297,7 @@ class TestRecordDetailSerializer(serializers.ModelSerializer):
# rw_info_serializer = TestResultSerializer(all_data, many=True, context={'request': self.context['request']})
# return rw_info_serializer.data
+
class MachineHistoryRecordSerializer(serializers.ModelSerializer):
'''
use MachineHistoryRecordSerializer
@@ -299,13 +310,23 @@ class MachineHistoryRecordSerializer(serializers.ModelSerializer):
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)
+ target_records = TestRecord.objects.filter(test_machine_id=obj.id).values_list(
+ 'branch').annotate(Count('id'))
+ # print(target_records) # <QuerySet [(2, 2), (1, 3)]>
+ ret = []
+ for branch_item in target_records:
+ item = {}
+ item['branch'] = branch_item[0]
- return serializer.data
+ records = TestRecord.objects.filter(test_machine_id=obj.id,branch_id=branch_item[0])
+
+ serializer = TestRecordListSerializer(records, many=True)
+ item['records'] = serializer.data
+ ret.append(item)
+ return ret
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
+ return serializer.data
diff --git a/web/apps/test_records/views.py b/web/apps/test_records/views.py
index 10ce25f..ce70145 100644
--- a/web/apps/test_records/views.py
+++ b/web/apps/test_records/views.py
@@ -52,7 +52,7 @@ class TestRecordDetailViewSet(mixins.RetrieveModelMixin, viewsets.GenericViewSet
serializer_class = TestRecordDetailSerializer
# pagination_class = StandardResultsSetPagination
-class MachineHistoryRecordViewSet(mixins.RetrieveModelMixin, viewsets.GenericViewSet):
+class MachineHistoryRecordViewSet( mixins.RetrieveModelMixin, viewsets.GenericViewSet):
"""
detail test records
"""
diff --git a/web/apps/user_operation/serializer.py b/web/apps/user_operation/serializer.py
index 9361c17..770b083 100644
--- a/web/apps/user_operation/serializer.py
+++ b/web/apps/user_operation/serializer.py
@@ -41,7 +41,7 @@ class UserMachineManageSerializer(serializers.ModelSerializer):
state = serializers.SerializerMethodField()
class Meta:
model = UserMachine
- fields = ('alias', 'os_name', 'os_version', 'comp_name', 'comp_version', 'reports', 'state', 'lastest', 'state', 'add_time')
+ fields = ('alias', 'machine_sn','os_name', 'os_version', 'comp_name', 'comp_version', 'reports', 'state', 'lastest', 'state', 'add_time')
def get_state(self, obj):
state_code = obj.state
diff --git a/web/pgperffarm/urls.py b/web/pgperffarm/urls.py
index f6b5989..7e4ff20 100644
--- a/web/pgperffarm/urls.py
+++ b/web/pgperffarm/urls.py
@@ -36,7 +36,7 @@ from user_operation.views import UserMachineListViewSet, UserPortalInfoViewSet
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'machine-records', MachineHistoryRecordViewSet, base_name="machine-records")
# user's machine manage list