diff options
| author | Hongyuan Ma | 2018-07-09 14:38:08 +0000 |
|---|---|---|
| committer | Hongyuan Ma | 2018-07-09 14:38:08 +0000 |
| commit | e8d19d9bb977f473783242e9df8e5b520a65a28b (patch) | |
| tree | 72c1cb2ca9bc9f799d9f1726beecf4379dd320f4 /web | |
| parent | b4f869cf90f3968d219f362a975612e5c749b169 (diff) | |
add MachineRecordTable;
Diffstat (limited to 'web')
| -rw-r--r-- | web/apps/test_records/serializer.py | 35 | ||||
| -rw-r--r-- | web/apps/test_records/views.py | 2 | ||||
| -rw-r--r-- | web/apps/user_operation/serializer.py | 2 | ||||
| -rw-r--r-- | web/pgperffarm/urls.py | 2 |
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 |
