123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- import datetime
- from django.http import HttpResponse
- from rest_framework.response import Response
- from rest_framework.views import APIView
- from apps.project.models import RetrievalProject
- import logging
- from apps.task.models import RetrievalTask
- logger = logging.getLogger('django')
- class TaskListView(APIView):
- # create retrievalTask
- @staticmethod
- def post(request, *args, **kwargs):
- title = request.POST.get('title')
- description = request.POST.get('description')
- task_type = request.POST.get('type')
- project_id = request.POST.get('project_id')
- create_time = update_time = datetime.datetime.now()
- if not project_id:
- logger.error('未输入项目id,创建失败')
- return HttpResponse(status=500, content='未输入项目id,创建失败')
- project_id = int(project_id)
- project = RetrievalProject.objects.filter(id=project_id, delete=False)
- if not project:
- logger.error("项目已删除或不存在")
- return HttpResponse(status=500, content='项目已删除或不存在')
- project = project[0]
- if not title:
- logger.error('任务名称不能为空')
- return HttpResponse(status=500, content='任务名称不能为空')
- if not task_type:
- logger.error('任务类型不能为空')
- return HttpResponse(status=500, content='任务类型不能为空')
- task = RetrievalTask.objects.create(title=title, type=task_type, project=project, description=description,
- state=0, create_time=create_time, update_time=update_time, delete=False)
- return Response({
- 'id': task.id,
- 'title': task.title,
- 'type': task.type,
- 'description': task.description,
- 'state': task.state,
- 'create_time': create_time,
- 'update_time': update_time
- })
- # get task list
- @staticmethod
- def get(request, *args, **kwargs):
- title = request.GET.get('title')
- state = request.GET.get('state')
- task_type = request.GET.get('type')
- sort = request.GET.get('sort')
- task_all = RetrievalTask.objects.order_by('id').filter(delete=False)
- if title:
- task_all = task_all.filter(title__contains=title)
- if task_type:
- task_all = task_all.filter(type__contains=task_type)
- if state:
- state = int(state)
- task_all = task_all.filter(state=state)
- if sort:
- task_all = task_all.order_by(sort)
- if not task_all:
- return Response([])
- info = []
- for task in task_all.all():
- info.append({
- 'id': task.id,
- 'title': task.title,
- 'description': task.description,
- 'state': task.state,
- 'type': task.type,
- 'create_time': task.create_time,
- 'update_time': task.update_time
- })
- return Response(info)
|