def test_create_incomplete_staff(self): data = { 'username': '******', 'password': '******', 'first_name': 'user', 'last_name': 'tan', 'email': '*****@*****.**', } serializer = StaffSerializer(data=data) self.assertFalse(serializer.is_valid())
def test_staff(self): data = { 'username': '******', 'password': '******', 'confirm_password': '******', 'first_name': 'user', 'last_name': 'tan', 'email': '*****@*****.**', 'is_staff': 'True', } serializer = StaffSerializer(data=data) assert (serializer.is_valid())
def user_detail(request): if request.method == 'GET': if (request.user == "admin"): serializer = SuperStaffSerializer(request.user, context={'request': request}) else: serializer = StaffSerializer(request.user, context={'request': request}) return Response(serializer.data)
def staff_list(request): ''' List staff or create new staff ''' if request.method == 'GET': if request.user.is_superuser: data = [] nextPage = 1 previousPage = 1 staff = User.objects.filter(is_staff=True, is_superuser=False) page = request.GET.get('page', 1) paginator = Paginator(staff, 10) try: data = paginator.page(page) except PageNotAnInteger: data = paginator.page(1) except EmptyPage: data = paginator.page(paginator.num_pages) serializer = StaffSerializer(data, context={'request': request}, many=True) if data.has_next(): nextPage = data.next_page_number() if data.has_previous(): previousPage = data.previous_page_number() return Response({ 'data': serializer.data, 'count': paginator.count, 'numpages': paginator.num_pages, 'nextlink': '/api/staff/?page=' + str(nextPage), 'prevlink': '/api/staff/?page=' + str(previousPage) }) elif request.method == 'POST': if request.user.is_superuser: serializer = StaffSerializer(data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def staff_detail(request, pk): """ Retrieve, update or delete a staff by id/pk. """ try: user = User.objects.get(pk=pk) except User.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND) if request.method == 'GET': serializer = StaffSerializer(user, context={'request': request}) return Response(serializer.data) elif request.method == 'PUT': serializer = StaffSerializer(user, data=request.data, context={'request': request}) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) elif request.method == 'DELETE': user.delete() return Response(status=status.HTTP_204_NO_CONTENT)
def user_detail(request): if request.method == 'GET': serializer = StaffSerializer(request.user, context={'request': request}) return Response(serializer.data)