Exemplo n.º 1
0
def todo_detail(request, pk):
    """
    Get, udpate, or delete a specific task
    """
    try:
        todo = Todo.objects.get(pk=pk)
    except Todo.DoesNotExist:
        return Response(status=status.HTTP_404_NOT_FOUND)

    if request.method == 'GET':
        serializer = TodoSerializer(todo)
        return Response(serializer.data)

    elif request.method == 'PUT':
        serializer = TodoSerializer(todo, data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data)
        else:
            return Response(
                serilizer.errors, status=status.HTTP_400_BAD_REQUEST)

    elif request.method == 'DELETE':
        todo.delete()
        return Response(status=status.HTTP_204_NO_CONTENT)
 def test_todo_object_bundle(self):
     response = self.client.get(self.url)
     self.assertEqual(200, response.status_code)
     todo_serializer_data = TodoSerializer(instance=self.todo).data
     response_data = json.loads(response.content)
     self.assertEqual(todo_serializer_data.get('title'),
                      response_data.get('title'))
Exemplo n.º 3
0
 def put(self, request, pk, format=None):
     todo = self.get_todo(pk)
     serializer = TodoSerializer(todo, data=request.data)
     if serializer.is_valid():
         serializer.save()
         return Response(serializer.data, status=HTTP_200_OK)
     return Response(serializer.errors, status=HTTP_400_BAD_REQUEST)
Exemplo n.º 4
0
    def post(self, request):
        serializer = TodoSerializer(data=request.data)

        if serializer.is_valid():
            serializer.save(owner=self.request.user)
            return Response(serializer.data, status=status.HTTP_201_CREATED)

        return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Exemplo n.º 5
0
class UserSerializer(serializers.ModelSerializer):
    # 사용자 1명에 대한 ser 이지만, 해당 user의 todos를 모두 내보낸다
    todo_set = TodoSerializer(many=True)

    class Meta:
        model = User
        fields = ('id', 'username', 'todo_set')
Exemplo n.º 6
0
class UserSerializer(serializers.ModelSerializer):
    todos = TodoSerializer(many=True, read_only=True)
    rooms = UserRoomSerializer(many=True, read_only=True)

    class Meta:
        model = User
        fields = ('id', 'username', 'nickname', 'todos', 'rooms')
Exemplo n.º 7
0
def todo_list(request):
    """
    List all tasks, or create a new task.
    """
    if request.method == 'GET':
        todos = Todo.objects.all()
        serializer = TodoSerializer(todos, many=True)
        return Response(serializer.data)

    elif request.method == 'POST':
        serializer = TodoSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        else:
            return Response(
                serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Exemplo n.º 8
0
 def test_get_todo_by_id(self):
     test_id = self.first_todo.id
     response = self.client.get(
         reverse('todos:todo_by_id', kwargs={'todo_id': test_id}))
     todos = Todo.objects.filter(id=test_id)
     todo_serializer = TodoSerializer(todos, many=True)
     self.assertEqual(response.status_code, status.HTTP_200_OK)
     self.assertEqual(todo_serializer.data[0]['id'], response.data[0]['id'])
Exemplo n.º 9
0
def todo_detail(request, todo_id):
    try:
        todo = Todo.objects.get(id=todo_id)
    except Todo.DoesNotExist:
        return JsonResponse({'message': 'The todo does not exist'},
                            status=status.HTTP_404_NOT_FOUND)

    if request.method == 'GET':
        todo_serializer = TodoSerializer(todo)
        return JsonResponse(todo_serializer.data)

    if request.method == 'PUT':
        todo_data = JSONParser().parse(request)
        todo_serializer = TodoSerializer(todo, data=todo_data)
        if todo_serializer.is_valid():
            todo_serializer.save()
            return JsonResponse(todo_serializer.data)

        return JsonResponse(todo_serializer.errors,
                            status=status.HTTP_400_BAD_REQUEST)

    if request.method == 'DELETE':
        todo.delete()
        return JsonResponse({'message': 'Tutorial was deleted successfully!'},
                            status=status.HTTP_204_NO_CONTENT)

    return JsonResponse({'message': 'Unhandled Request'},
                        status=status.HTTP_400_BAD_REQUEST)
Exemplo n.º 10
0
def todo_detail(request, pk):
    """
    Get, udpate, or delete a specific task
    """
    try:
        todo = Todo.objects.get(pk=pk)
    except Todo.DoesNotExist:
        return Response(status=status.HTTP_404_NOT_FOUND)

    if request.method == 'GET':
        serializer = TodoSerializer(todo)
        return Response(serializer.data)

    elif request.method == 'PUT':
        serializer = TodoSerializer(todo, data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data)
        else:
            return Response(serilizer.errors,
                            status=status.HTTP_400_BAD_REQUEST)

    elif request.method == 'DELETE':
        todo.delete()
        return Response(status=status.HTTP_204_NO_CONTENT)
Exemplo n.º 11
0
    def test_todo_object_bundle(self):
        """
        Test to verify todo object bundle
        """
        response = self.client.get(self.url)
        self.assertEqual(200, response.status_code)

        todo_serializer_data = TodoSerializer(instance=self.todo).data
        response_data = json.loads(response.content)
        self.assertEqual(todo_serializer_data, response_data)
Exemplo n.º 12
0
class UserSerializer(serializers.ModelSerializer):
    # 사용자 한명에 대한 ser 이지만, 해당 user 의 Todos 를 모두 포함
    todo_set = TodoSerializer(many=True)  # 1:N 관계일때, 1에게 속한 모든 N을 가져온다.

    class Meta:
        model = User
        fields = (
            'id',
            'username',
            'todo_set',
        )
Exemplo n.º 13
0
class UserSerializer(serializers.ModelSerializer):
    # 사용자 1명에 대한 serial이지만, 해당유저의 Todos를 모두 포함!
    todo_set = TodoSerializer(many=True)

    class Meta:
        model = User
        fields = (
            'id',
            'username',
            'todo_set',
        )
Exemplo n.º 14
0
def todo_list(request):
    if request.method == 'GET':
        todos = Todo.objects.all()

        title = request.GET.get('title', None)
        if title is not None:
            todos = todos.filter(title__icontains=title)

        todos_serializer = TodoSerializer(todos, many=True)
        return JsonResponse(todos_serializer.data, safe=False)
        # 'safe=False' for objects serialization

    elif request.method == 'POST':
        todo_data = JSONParser().parse(request)
        todo_serializer = TodoSerializer(data=todo_data)
        if todo_serializer.is_valid():
            todo_serializer.save()
            return JsonResponse(todo_serializer.data,
                                status=status.HTTP_201_CREATED)
        return JsonResponse(todo_serializer.errors,
                            status=status.HTTP_400_BAD_REQUEST)

    elif request.method == 'DELETE':
        count = Todo.objects.all().delete()
        return JsonResponse(
            {
                'message':
                '{} All Todo Items were deleted successfully!'.format(count[0])
            },
            status=status.HTTP_204_NO_CONTENT)
Exemplo n.º 15
0
def todo_list(request):
    if request.method == 'GET':
        todos = Todo.objects.all()

        response_data = []
        for todo in todos:
            ddl = (todo.deadline.astimezone(pytz.timezone('Asia/Taipei')) +
                   timedelta(hours=8)).astimezone(pytz.timezone('Asia/Taipei'))

            ddl_string = ddl.strftime("%Y/%m/%d %H:%M")

            response_data.append(
                dict(id=str(todo.id),
                     title=todo.title,
                     ddl=ddl_string,
                     status=getStatus(todo)))

        response_data.sort(key=getTimedeltaSec, reverse=True)

        return JsonResponse(response_data, safe=False)

    if request.method == 'POST':
        todo_data = JSONParser().parse(request)
        todo_serializer = TodoSerializer(data=todo_data)
        if todo_serializer.is_valid():
            todo_serializer.save()
            return JsonResponse(todo_serializer.data,
                                status=status.HTTP_201_CREATED)

        return JsonResponse(todo_serializer.errors,
                            status=status.HTTP_400_BAD_REQUEST)

    if request.method == 'DELETE':
        count = Todo.objects.all().delete()
        return JsonResponse(
            {'message': '{} Todos were deleted successfully!'.format(count)},
            status=status.HTTP_204_NO_CONTENT)

    return JsonResponse({'message': 'Unhandled Request'},
                        status=status.HTTP_400_BAD_REQUEST)
Exemplo n.º 16
0
def working_to_complete(request, id):
    todo =Todo.objects.get(id=id)
    if todo.status == 'WR':
        todo.status = 'DN'
        todo.save()
        return Response('', status=status.HTTP_200_OK)
    else:
        Todo_serializer = TodoSerializer(todo, data=request.data)
        if Todo_serializer.is_valid():
            Todo_serializer.save()
            return Response({"data": 'ID Updated successfully.'}, status=status.HTTP_200_OK)
        else:
            error_details = []
            for key in Todo_serializer.errors.keys():
                error_details.append({"field": key, "message": Todo_serializer.errors[key][0]})
            data = {
                "Error": {
                    "status": 400,
                    "message": "Your submitted data was not valid - please correct the below errors",
                    "error_details": error_details
                }
            }

    return Response(data, status=status.HTTP_400_BAD_REQUEST)
Exemplo n.º 17
0
 def create(self, request, **kwargs):
     serializer_data = request.data
     serializer_context = {
         'include_details': True,
         'description': request.data['description']
     }
     serializer = TodoSerializer(data=serializer_data,
                                 context=serializer_context)
     serializer.is_valid(raise_exception=True)
     serializer.save()
     return Response(serializer.data, status=status.HTTP_201_CREATED)
Exemplo n.º 18
0
def todo_list(request):
    """
    List all todos, or create a new todo.
    """
    if request.method == 'GET':
        todos = Todo.objects.all()
        serializer = TodoSerializer(todos, many=True)
        return JsonResponse(serializer.data, safe=False)

    elif request.method == 'POST':
        data = JSONParser().parse(request)
        serializer = TodoSerializer(data=data)
        if serializer.is_valid():
            serializer.save()
            return JsonResponse(serializer.data, status=201)
        return JsonResponse(serializer.errors, status=400)
Exemplo n.º 19
0
    def test_get_single_todo(self):
        todo1 = Todo(name='todo1', user=self.user)
        todo1.save()
        todo2 = Todo(name='todo2', user=self.user)
        todo2.save()

        request = self.request_factory.get(reverse('todos:todo-detail',
                                                   kwargs={'pk': 2}),
                                           format='json')
        force_authenticate(request, user=self.user)
        view = TodoDetail.as_view()
        response = view(request, pk=2)
        response.render()
        todo = Todo.objects.get(pk=2)
        serializer = TodoSerializer(todo, context={'request': request})

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response.data, serializer.data)
Exemplo n.º 20
0
def todo_list(request):
    """
    List all tasks, or create a new task.
    """
    if request.method == 'GET':
        todos = Todo.objects.all()
        serializer = TodoSerializer(todos, many=True)
        return Response(serializer.data)

    elif request.method == 'POST':
        serializer = TodoSerializer(data=request.data)
        if serializer.is_valid():
            serializer.save()
            return Response(serializer.data, status=status.HTTP_201_CREATED)
        else:
            return Response(serializer.errors,
                            status=status.HTTP_400_BAD_REQUEST)
Exemplo n.º 21
0
    def test_get_all_todos(self):
        todo1 = Todo(name='todo1', user=self.user)
        todo1.save()
        todo2 = Todo(name='todo2', user=self.user)
        todo2.save()

        request = self.request_factory.get(reverse('todos:todo-list'),
                                           format='json')
        force_authenticate(request, user=self.user)
        view = TodoList.as_view()
        response = view(request)
        response.render()
        todos = Todo.objects.all()
        serializer = TodoSerializer(todos,
                                    many=True,
                                    context={'request': request})

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        self.assertEqual(response.data, serializer.data)
Exemplo n.º 22
0
def todo_detail(request, pk):
    """
    Retrieve, update or delete a todo.
    """
    try:
        todo = Todo.objects.get(pk=pk)
    except Todo.DoesNotExist:
        return HttpResponse(status=404)

    if request.method == 'GET':
        serializer = TodoSerializer(todo)
        return JsonResponse(serializer.data)

    elif request.method == "PUT":
        data = JSONParser().parse(request)
        serializer = TodoSerializer(todo, data=data)
        if serializer.is_valid():
            serializer.save()
            return JsonResponse(serializer.data)
        return JsonResponse(serializer.errors, status=400)

    elif requset.method == 'DELETE':
        todo.delete()
        return HttpResponse(status=204)
Exemplo n.º 23
0
 def get(self, request, format=None):
     todos = Todo.objects.filter(owner=request.user.pk)
     serializer = TodoSerializer(todos, many=True)
     return Response(serializer.data, status=HTTP_200_OK)
Exemplo n.º 24
0
    def get(self, request):
        todos = Todo.objects.filter(owner_id=self.request.user.id)
        serializer = TodoSerializer(todos, many=True)

        return Response(serializer.data)
Exemplo n.º 25
0
 def get(self, request):
     title = request.kwargs['title']
     todo = Todo.objects.filter(title=title)
     serializer = TodoSerializer(todo, many=True)
     return Response(serializer.data, status=status.HTTP_200_OK)
Exemplo n.º 26
0
	def list(self, request):
		queryset = self.get_queryset()
		serializer = TodoSerializer(queryset, many=True)
		return Response(serializer.data)
Exemplo n.º 27
0
 def get_todos(self, obj):
     todos = Todo.objects.filter(
         Q(contributors__id=obj.id) | Q(owner_id=obj.id))
     serializer = TodoSerializer(todos, many=True)
     return serializer.data
Exemplo n.º 28
0
 def test_get_all_todos(self):
     response = self.client.get(reverse('todos:get_all_todos'))
     todos = Todo.objects.all()
     todo_serializer = TodoSerializer(todos, many=True)
     self.assertEqual(response.status_code, status.HTTP_200_OK)
     self.assertEqual(todo_serializer.data[0]['id'], response.data[0]['id'])
Exemplo n.º 29
0
class UserWithTodosSerializer(serializers.ModelSerializer):
    todos = TodoSerializer(many=True, read_only=True)

    class Meta:
        model = User
        fields = ['username', 'email', 'todos']
Exemplo n.º 30
0
 def get(self, request, format=None):
     user = request.user
     todos = Todo.objects.filter(owner=user)
     serializer = TodoSerializer(todos, many=True)
     return Response(serializer.data)
Exemplo n.º 31
0
def todo_list_finished(request):
    todos = Todo.objects.filter(finished=True)
    if request.method == 'GET':
        todos_serializer = TodoSerializer(todos, many=True)
        return JsonResponse(todos_serializer.data, safe=False)
Exemplo n.º 32
0
 def get(self, request, pk, format=None):
     todo = self.get_object(pk)
     serializer = TodoSerializer(todo)
     return Response(serializer.data)