diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 17c41f347307945c7554942507fc428a3e45d69d..0000000000000000000000000000000000000000 --- a/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -.git/ -.idea/ \ No newline at end of file diff --git a/appStore/project/views.py b/appStore/project/views.py index 9eb0eb17e2cbed928f16de428735ae625f33c2e5..e42e53776a11d000701ba767ec5184c54b18163a 100644 --- a/appStore/project/views.py +++ b/appStore/project/views.py @@ -13,7 +13,7 @@ import logging from django.http import FileResponse, HttpResponse from rest_framework import status from rest_framework.test import APIRequestFactory -from djangoProject import settings +from appStore.utils.constants import EXCEL_TEMP from appStore.cpu2006.models import Cpu2006 from appStore.cpu2017.models import Cpu2017 from appStore.env.models import Env @@ -50,14 +50,17 @@ class ProjectViewSet(CusModelViewSet): """ baseId = request.GET.get('baseId',None) comparsionIds = request.GET.get('comparsionIds',None) + storeData = request.GET.get('storeData') if comparsionIds: baseId = baseId + ',' + comparsionIds if baseId: project_queryset = Project.objects.filter(env_id__in=(baseId.split(','))) else: project_queryset = Project.objects.all().order_by("-id") + if storeData: + project_queryset = project_queryset.filter(store_data=True) if not project_queryset: - return json_response({}, status.HTTP_204_NO_CONTENT, '未查询到project') + return json_response({}, status.HTTP_200_OK, '未查询到project数据') serializer = self.get_serializer(project_queryset, many=True) return json_response(serializer.data, status.HTTP_200_OK, 'project数据获取完成') @@ -65,11 +68,12 @@ class ProjectViewSet(CusModelViewSet): id = request.data.get('id', None) project_name = request.data.get('project_name', None) message = request.data.get('message', None) + store_data = request.data.get('store_data', None) if not project_name and not id: return json_response({}, status.HTTP_205_RESET_CONTENT, '请传递项目id和project_name') user_name = Project.objects.filter(id=id).first().user_name if request.user.is_superuser or request.user.chinese_name == user_name: - Project.objects.filter(id=id).update(id=id,project_name=project_name,message=message) + Project.objects.filter(id=id).update(id=id,project_name=project_name,message=message,store_data=store_data) else: return json_response({}, status.HTTP_205_RESET_CONTENT, '该用户不允许修改此数据') queryset = Project.objects.filter(id=id) @@ -93,7 +97,7 @@ class ProjectViewSet(CusModelViewSet): def merge_data(self, request, *args, **kwargs): env_id = request.data.get('env_id', None) env_ids = request.data.get('env_ids', None) - user_name = Project.objects.filter(id=env_id[0]).first().user_name + user_name = Project.objects.filter(env_id=env_id[0]).first().user_name if not (request.user.is_superuser or request.user.chinese_name == user_name): return json_response({}, status.HTTP_205_RESET_CONTENT, '只能合并自己管理的数据') @@ -423,7 +427,7 @@ class ProjectViewSet(CusModelViewSet): return json_response(serializer_project.errors, status.HTTP_400_BAD_REQUEST, get_error_message(serializer_project)) - def delete(self, request): + def delete(self, request, *args, **kwargs): id = request.data.get('id', None) if not id: return json_response({}, status.HTTP_205_RESET_CONTENT, '请传递项目id') @@ -559,7 +563,7 @@ class ProjectViewSet(CusModelViewSet): # todo 是否需要实现多线程记录数据,目前测试可以,如果有很多组数据的化可能会获取失败。 # 打开文件 - file_path = os.path.join(settings.BASE_DIR, 'tem_excel/%s.xlsx'%(request.user)) + file_path = os.path.join(EXCEL_TEMP, '%s.xlsx'%(request.user)) if os.path.exists(file_path): return FileResponse(open(file_path, 'rb'), as_attachment=True,status=200) return HttpResponse('文件不存在', status=404) diff --git a/appStore/stream/models.py b/appStore/stream/models.py index 8febd5100796c5ce5e61f2c85a206ab4cc2ae4d7..bd39014a88654791a74125def4d13d91ca9f25bc 100644 --- a/appStore/stream/models.py +++ b/appStore/stream/models.py @@ -20,13 +20,13 @@ class Stream(models.Model): execute_cmd = models.CharField(max_length=255, verbose_name='执行命令', null=True, blank=True) modify_parameters = models.CharField(max_length=255, verbose_name='修改参数', null=True, blank=True) # modify_parameters = models.TextField(null=True, blank=True, verbose_name='修改参数') #如果是很多的化可以使用text文本类型 - single_thread = models.CharField(choices=ThreadType, max_length=10, verbose_name='单线程', null=True, blank=True) + # single_thread = models.CharField(choices=ThreadType, max_length=10, verbose_name='单线程', null=True, blank=True) single_array_size = models.IntegerField(verbose_name='single_array_size', null=True, blank=True) single_copy = models.FloatField(verbose_name='single_copy', null=True, blank=True) single_scale = models.FloatField(verbose_name='single_scale', null=True, blank=True) single_add = models.FloatField(verbose_name='single_add', null=True, blank=True) single_triad = models.FloatField(verbose_name='single_triad', null=True, blank=True) - multi_threading = models.CharField(choices=ThreadType, max_length=10, verbose_name='多线程', null=True, blank=True) + # multi_threading = models.CharField(choices=ThreadType, max_length=10, verbose_name='多线程', null=True, blank=True) multi_array_size = models.IntegerField(verbose_name='multi_array_size', null=True, blank=True) multi_copy = models.FloatField(verbose_name='multi_copy', null=True, blank=True) multi_scale = models.FloatField(verbose_name='multi_scale', null=True, blank=True) diff --git a/appStore/stream/views.py b/appStore/stream/views.py index 4413e0e7dedce97273921211cb42a413cd212c6b..3bc67d7353adcd88e568d0a5b460e5231fff883e 100644 --- a/appStore/stream/views.py +++ b/appStore/stream/views.py @@ -174,8 +174,8 @@ class StreamViewSet(CusModelViewSet): if k.lower().startswith('stream'): data_stream = {} data_stream['env_id'] = request.__dict__['data_stream']['env_id'] - data_stream['single_thread'] = '单线程' - data_stream['multi_threading'] = '多线程' + # data_stream['single_thread'] = '单线程' + # data_stream['multi_threading'] = '多线程' data_stream['execute_cmd'] = stream_json.get('execute_cmd') data_stream['modify_parameters'] = stream_json.get('modify_parameters') data_stream['single_array_size'] = stream_json['单线程']['Array size'] @@ -202,3 +202,29 @@ class StreamViewSet(CusModelViewSet): return json_response(serializer_stream_errors, status.HTTP_400_BAD_REQUEST, error_message) else: return + + def put(self, request, *args, **kwargs): + id = request.data.get('id') + if not id or not Stream.objects.filter(id=id): + return json_response({}, status.HTTP_205_RESET_CONTENT, '请传递正确的测试id') + user_name = Stream.objects.filter(id=id).first().user_name + if request.user.is_superuser or request.user.username == user_name: + stream_data = Stream.objects.get(id=id) + if not stream_data: + return json_response({}, status.HTTP_205_RESET_CONTENT, '没有该数据') + stream_data.single_array_size = request.data.get('single_array_size') + stream_data.single_copy = request.data.get('single_copy') + stream_data.single_scale = request.data.get('single_scale') + stream_data.single_add = request.data.get('single_add') + stream_data.single_triad = request.data.get('single_triad') + stream_data.multi_array_size = request.data.get('multi_array_size') + stream_data.multi_copy = request.data.get('multi_copy') + stream_data.multi_scale = request.data.get('multi_scale') + stream_data.multi_add = request.data.get('multi_add') + stream_data.multi_triad = request.data.get('multi_triad') + stream_data.save() + return json_response({}, status.HTTP_200_OK, '修改成功') + else: + return json_response({}, status.HTTP_205_RESET_CONTENT, '此用户不允许修改该数据') + + diff --git a/appStore/testCase/models.py b/appStore/testCase/models.py index d865f71817fdbbd130305ffe5ea3336d77f27f6f..9e8f5ba6e03f78197f213b10ce37eb1de4cbf7f8 100644 --- a/appStore/testCase/models.py +++ b/appStore/testCase/models.py @@ -1,3 +1,10 @@ +""" + * Copyright (c) KylinSoft Co., Ltd. 2024.All rights reserved. + * PilotGo-plugin licensed under the Mulan Permissive Software License, Version 2. + * See LICENSE file for more details. + * Author: wangqingzheng + * Date: Fri Mar 1 10:02:58 2024 +0800 +""" from django.db import models @@ -20,7 +27,8 @@ class TestCase(models.Model): cpu2017 = models.IntegerField(default=0, verbose_name='几组cpu2017数据') user_name = models.CharField(max_length=255, verbose_name='测试人员', ) test_result = models.CharField(max_length=255, verbose_name='测试结果反馈', null=True, blank=True) # 如果有多项也是拼接 - result_log_name = models.CharField(max_length=255, verbose_name='日志文件名称的base部分') + result_log_name = models.CharField(max_length=255, verbose_name='日志文件路径的base部分') + is_error = models.BooleanField(default=False,verbose_name="是否是错误列表所需要的") class Meta: db_table = 'testCase'