コード例 #1
0
    def get(self, request, pk, format=None):
        group = Group.objects.filter(id=pk).first()

        # Group doesnt exist
        if group is None:
            return Response({
                'status': status.HTTP_404_NOT_FOUND,
                'message': "Not found",
            }, status=status.HTTP_404_NOT_FOUND)

        group_user = GroupUser.objects.filter(
            group=group, user=request.user).first()

        # User is not in this group?
        if group_user is None:
            return Response({
                'status': status.HTTP_403_FORBIDDEN,
                'message': "Can't access this",
            }, status=status.HTTP_403_FORBIDDEN)

        tasks = Task.objects.filter(group=group, is_completed=False)
        serializer = TaskSerializer(instance=tasks, many=True)

        return Response({
            "status": status.HTTP_200_OK,
            'tasks': serializer.data,
        }, status=status.HTTP_200_OK)
コード例 #2
0
class TODOListSerializer(serializers.ModelSerializer):

    tasks = TaskSerializer(many=True, read_only=True)

    class Meta:
        model = TODOList
        fields = ('id','title','tasks')
コード例 #3
0
    def get(self, request, pk, format=None):
        user = User.objects.filter(id=pk).first()

        # User doesnt exist
        if user is None:
            return Response({
                'status': status.HTTP_404_NOT_FOUND,
                'message': "Not found",
            }, status=status.HTTP_404_NOT_FOUND)

        # Not the same user
        # @TODO If the request is made by a parent, allow it
        # if request.user != user:
        #     return Response({
        #         'status': status.HTTP_404_NOT_FOUND,
        #         'message': "You can only access your own tasks",
        #     }, status=status.HTTP_404_NOT_FOUND)

        tasks = Task.objects.filter(taskuser__user=user, is_completed=False)
        serializer = TaskSerializer(instance=tasks, many=True)

        return Response({
            "status": status.HTTP_200_OK,
            'tasks': serializer.data,
        }, status=status.HTTP_200_OK)
コード例 #4
0
class TaskOnReviewSerializer(serializers.ModelSerializer):
    task = TaskSerializer()
    task_performer = TaskUserSerializer()

    class Meta:
        model = TaskReview
        exclude = ('id', 'user')
コード例 #5
0
ファイル: views.py プロジェクト: theofabry/afaire
    def patch(self, request, task_pk):
        task: Task = self.get_object(task_pk)
        serializer = TaskSerializer(task, data=request.data, partial=True)

        if serializer.is_valid():
            serializer.save()

            return Response(serializer.data)

        return Response(serializer.errors, status=HTTP_400_BAD_REQUEST)
コード例 #6
0
ファイル: views.py プロジェクト: theofabry/afaire
    def post(self, request):
        serializer = TaskSerializer(data=request.data,
                                    context={'request': self.request})

        if serializer.is_valid():
            serializer.save()

            return Response(serializer.data, status=HTTP_201_CREATED)

        return Response(serializer.errors, status=HTTP_400_BAD_REQUEST)
コード例 #7
0
	def test_can_browse_all_tasks(self):
		'''
			Ensure we can get list of tasks
		'''
		response = self.client.get(reverse("tasks:task-list"))
		
		for task in self.tasks:
			self.assertIn(
				TaskSerializer(instance=task).data,
				response.data
			)

		self.assertEqual(status.HTTP_200_OK, response.status_code)
		self.assertEqual(len(self.tasks), len(response.data))
コード例 #8
0
ファイル: views.py プロジェクト: theofabry/afaire
 def get(self, request, task_pk):
     task: Task = self.get_object(task_pk=task_pk)
     serializer = TaskSerializer(task)
     return Response(serializer.data)
コード例 #9
0
ファイル: views.py プロジェクト: theofabry/afaire
    def get(self, request):
        tasks: [Task] = Task.objects.get_close_tasks(user=request.user)

        serializer = TaskSerializer(tasks, many=True)

        return Response(serializer.data)
コード例 #10
0
class ReviewersSerializer(serializers.ModelSerializer):
    tasks_on_review = TaskSerializer(many=True)

    class Meta:
        model = User
        exclude = ('tasks', )
コード例 #11
0
	def test_can_read_a_specific_task(self):
		response = self.client.get(reverse("tasks:task-detail", args=[self.task.id]))

		self.assertEqual(status.HTTP_200_OK, response.status_code)
		self.assertEqual(TaskSerializer(instance=self.task).data, response.data)