예제 #1
0
    def patch(self, request, task_id):
        data = request.json_data
        task = TaskModel.objects.filter(id=task_id)
        task.update(**data)
        task = task.select_related('project', 'status', 'doer', 'author') \
                    .annotate(**aliases) \
                    .values('id', 'name', *aliases.keys())

        return success_response(task=list(task)[0])
예제 #2
0
 def post(self, request):
     data = request.json_data
     print(data)
     task = TaskModel.objects.create(**data)
     task = TaskModel.objects.select_related('project', 'status', 'doer', 'author') \
                .filter(id=task.id) \
                .annotate(**aliases) \
                .values('id', 'name', *aliases.keys())
     return success_response(status=True, task=list(task)[0])
예제 #3
0
    def get(self, request):


        # Фильтрация будет только по наименованиям
        # Добавим startswith для каждого параметра
        filters = {}
        for field, value in request.GET.items():
            filters.update({field + '__startswith': value})

        tasks = TaskModel.objects.all() \
                    .select_related('project', 'status', 'doer', 'author') \
                    .annotate(**aliases) \
                    .filter(**filters) \
                    .values('id', 'name', *aliases.keys())
        return success_response(records=list(tasks), totals=tasks.count())
예제 #4
0
 def delete(self, request, task_id):
     task = self._get_task(task_id)
     task.delete()
     return success_response()
예제 #5
0
 def post(self, request, task_id):
     data = request.json_data
     print(task_id)
     task = TaskModel.objects.get(id=task_id)
     description = task.description.create(text=data.get('text', ''))
     return success_response(id=description.id)
예제 #6
0
 def get(self, request, task_id):
     descriptions = DescriptionModel.objects.filter(taskmodel__id=task_id) \
                                            .annotate(taskmodel_id=F("taskmodel__id")) \
                                            .values('text', 'taskmodel_id')
     return success_response(records=list(descriptions))