def upload_user_image(self, request, pk=None): image = request.FILES.get('file', None) if image != None: obj = User.objects.get(pk=pk) filename, file_extension = os.path.splitext(image.name) image.name = "%s-%s%s" % (obj.id, str(time.time()).replace( '.', '-'), file_extension) obj.profile_image = image obj.save() # temp_thumbnail_file = NamedTemporaryFile() # size = 128, 128 # try: # im = Image.open(image) # im.thumbnail(size) # im.save(temp_thumbnail_file, "JPEG") # except IOError: # print "cannot create thumbnail for" log_action(request, obj) response = '{"detail":"Accepted"}' return Response(response, status=201) else: response = '{"detail":"No Image"}' log_action(request) return Response(response, status=406)
def list(self, request, *args, **kwargs): self.queryset = self.queryset.filter(user=request.user) log_action(request) response = super(ModuleProgressViewSet, self).list(request, *args, **kwargs) return response
def create(self, request, *args, **kwargs): if request.user.is_superuser or request.user.is_staff: log_action(request) return super(SectionImageViewSet, self).create(request, *args, **kwargs) raise MethodNotAllowed('POST')
def list(self, request): queryset = self.queryset.filter() log_action(request) serializer = self.serializer_class(queryset, many=True, context={'request': request}) return Response(serializer.data)
def retrieve(self, request, *args, **kwargs): log_action(request) if request.GET.get('full', None): self.serializer_class = CourseProgressFullAdminSerializer response = super(CourseProgressAdminViewSet, self).retrieve(request, *args, **kwargs) return response
def list(self, request, *args, **kwargs): self.queryset = self.queryset.filter(user=request.user, course__state='PUB') if (request.GET.get('full', None)): self.serializer_class = self.full_serializer_class log_action(request) response = super(CourseProgressViewSet, self).list(request, *args, **kwargs) return response
def update(self, request, *args, **kwargs): log_action(request) if request.user.is_superuser or request.user.is_staff: obj = self.get_object() if 'order' in request.data: if request.data['order'] != obj.order: obj.to(request.data['order']) return super(QuizQuestionViewSet, self).update(request, *args, **kwargs) else: raise PermissionDenied()
def list(self, request, *args, **kwargs): course_progress_id = request.GET.get('course_progress_id', None) if course_progress_id: self.queryset = self.queryset.filter( course_progress_id=course_progress_id) response = super(AssessmentViewSet, self).list(request, *args, **kwargs) log_action(request) return response
def create(self, request, *args, **kwargs): course_progress_id = request.data.get('course_progress_id', None) if course_progress_id: course_progress = CourseProgress.objects.get(pk=course_progress_id) request.data['user_assessed_id'] = str(course_progress.user_id) request.data['user_who_assessed_id'] = str(request.user.id) response = super(AssessmentViewSet, self).create(request, *args, **kwargs) log_action(request) return response
def create(self, request, *args, **kwargs): log_action(request) if 'course' not in request.data: raise ParseError({"detail": 'Course must be in the date body.'}) try: current_progress = self.get_queryset().get(course=request.data['course'], created_by=request.user) current_progress.last_opened = timezone.datetime.now() current_progress.save() return Response(self.get_serializer(current_progress, many=False).data) except ObjectDoesNotExist: return super(CourseProgressViewSet, self).create(request, *args, **kwargs)
def retrieve(self, request, *args, **kwargs): instance = self.get_object() log_action(request, instance) serializer = self.get_serializer(instance, context={'request': request}) if request.GET.get('full', None): serializer = CourseFullSerializer(instance, context={'request': request}) return Response(serializer.data)
def list(self, request): queryset = self.queryset.filter() log_action(request) page = self.paginate_queryset(queryset) if page is not None: serializer = self.get_serializer(page, many=True) return self.get_paginated_response(serializer.data) serializer = self.serializer_class(queryset, many=True, context={'request': request}) return Response(serializer.data)
def upload_user_image(self, request, pk=None): response = '{"details":"Accepted"}' image = request.FILES.get('user_image', None) if image != None: obj = User.objects.get(pk=pk) obj.user_image = image obj.save() log_action(request, obj) return Response(response)
def upload_user_image(self, request, pk=None): self.parser_classes = (FileUploadParser, ) response = '{"details":"Accepted"}' image = request.FILES.get('user_image', None) if image != None: obj = User.objects.get(pk=pk) obj.profile_image = image obj.save() log_action(request, obj) return Response(response)
def list(self, request, *args, **kwargs): if request.user.is_staff or request.user.is_superuser: pass else: raise PermissionDenied( 'You do not have permission to access resource.') log_action(request) response = super(UserProfilesViewSet, self).list(self, request, *args, **kwargs) return response
def list(self, request): queryset = self.queryset.filter() if request.user.pk != None: if request.user.userprofile != None: queryset = queryset.filter(pk=request.user.userprofile.pk)[0] else: raise NotAcceptable('No user profile for the current user exists.') log_action(request, queryset) serializer = self.serializer_class(queryset, many=False, context={'request': request}) return Response(serializer.data)
def list(self, request, *args, **kwargs): if request.user.is_superuser is False and request.user.is_staff is False: self.queryset = self.get_queryset().filter(created_by=request.user) log_action(request) if 'course' in request.GET: try: id = UUID(request.GET.get('course', None)) except ValueError: raise ParseError({"detail": "The course should be a uuid."}) try: current_progress = self.get_queryset().get(course=id, created_by=request.user) except ObjectDoesNotExist: raise NotFound({"detail": "Course is not started."}) return Response(self.get_serializer(current_progress, many=False).data) else: return super(CourseProgressViewSet, self).list(request, *args, **kwargs)
def list(self, request, *args, **kwargs): queryset = self.queryset.filter().order_by('order') log_action(request) filter = {} filter['specialty'] = request.GET.get('filter_specialty', None) if filter['specialty']: queryset = queryset.filter(specialty=filter['specialty']) page = self.paginate_queryset(queryset) if page is not None: serializer = self.get_serializer(page, many=True) return self.get_paginated_response(serializer.data) serializer = self.serializer_class(queryset, many=True, context={'request': request}) return Response(serializer.data)
def list(self, request, *args, **kwargs): queryset = User.objects.all() log_action(request) username = request.GET.get('username', None) email = request.GET.get('email', None) if username: queryset = queryset.filter(username=username) if len(queryset) > 0: return Response(True) else: return Response(False) if email: queryset = queryset.filter(email=email) if len(queryset) > 0: return Response(True) else: return Response(False) return Response(True)
def current_user(self, request, *args, **kwargs): self.serializer_class = UserSerializer queryset = User.objects.all() user = get_object_or_404(queryset, pk=request.user.pk) log_action(request, user) if request.method == 'PUT': data = request.data data['id'] = user.id serializer = UserUpdateSerializer(data=data, context={'request': request}) if serializer.is_valid(): user = serializer.update(user, serializer.validated_data) if request.GET.get('full', None): serializer = UserFullSerializer(user, context={'request': request}) else: serializer = UserSerializer(user, context={'request': request}) return Response(serializer.data)
def profile(self, request, *args, **kwargs): lookup = {} try: UUID(kwargs['pk'], version=4) lookup['pk'] = kwargs['pk'] except ValueError: if kwargs['pk'] == 'me': lookup['pk'] = request.user.pk else: lookup['username'] = kwargs['pk'] user = User.objects.get(**lookup) log_action(request, user) if request.GET.get('full', None): self.serializer = UserFullSerializer(user, context={'request': request}) else: self.serializer = UserSerializer(user, context={'request': request}) return Response(self.serializer.data)
def projects(self, request, *args, **kwargs): log_action(request) if request.GET.get('full', None): self.serializer_class = CourseProgressFullAdminSerializer section_id = request.GET.get('section_id', None) sections = CourseSection.objects.filter( course_section_type__title='Project') search = None if section_id is not None: query = {'sections': {str(section_id): {}}} search = Q(object__contains=query) else: for section in sections: query = { 'sections': { str(section.id): { 'project': { 'done': True } } } } if search is None: search = Q(object__contains=query) else: search = search | Q(object__contains=query) self.queryset = self.queryset.filter(search) response = super(CourseProgressAdminViewSet, self).list(request, *args, **kwargs) return response
def list(self, request): queryset = self.queryset.filter() log_action(request) exclude = request.GET.get('exclude', None) search_term = request.GET.get('search_term', None) ids = request.GET.get('ids', None) if search_term: queryset = queryset.filter( Q(first_name__icontains=search_term) | Q(last_name__icontains=search_term)) if ids: queryset = queryset.filter(id__in=ids.split(',')) if exclude: queryset = queryset.exclude(id__in=exclude.split(',')) serializer = self.serializer_class(queryset, many=True, context={'request': request}) return Response(serializer.data)
def create_user(self, request, *args, **kwargs): self.serializer_class = UserSerializer if request.user.is_staff: request.data['user']['groups'] = dict() address_country = request.data['userprofile']['address_country'] if address_country == '': address_country = 'US' if address_country != '': if address_country == 'USA': address_country = 'US' if address_country == 'UK': address_country = 'GB' address_country = Country.objects.filter( Q(abbreviation__iexact=address_country) | Q(name__iexact=address_country)).distinct() if len(address_country) > 0: address_country = address_country[0].pk request.data['userprofile'][ 'address_country'] = address_country address_state = request.data['userprofile']['address_state'] if address_state != '': address_state = State.objects.filter( Q(abbreviation__iexact=address_state) | Q(name__iexact=address_state)).distinct() if len(address_state) > 0: address_state = address_state[0].pk request.data['userprofile']['address_state'] = address_state # request.data['userprofile']['is_approver'] = False user_serializer = UserSerializer(data=request.data['user']) user_serializer.is_valid(raise_exception=True) user_obj = user_serializer.save() user_obj.set_password(codegenerator()) user_obj.save() if user_obj: request.data['userprofile']['user'] = user_obj request.data['userprofile']['user_id'] = user_obj.pk user_profile_serializer = UserProfileCreateSerializer( data=request.data['userprofile']) user_profile_serializer.is_valid(raise_exception=True) if user_profile_serializer.save(): log_action(request, user_obj) return Response( { "details": "created", "object_id": user_obj.pk }, status=status.HTTP_201_CREATED) else: return Response({"details": "not created"}, status=status.HTTP_406_NOT_ACCEPTABLE) else: return Response({"details": "not created"}, status=status.HTTP_406_NOT_ACCEPTABLE) else: raise PermissionDenied( 'You do not have permission to perform this action.')
def retrieve(self, request, *args, **kwargs): instance = self.get_object() log_action(request, instance) serializer = self.get_serializer(instance) return Response(serializer.data)
def update(self, request, *args, **kwargs): response = super(AssessmentViewSet, self).update(request, *args, **kwargs) log_action(request, self.get_object()) return response
def create(self, request, *args, **kwargs): log_action(request) response = super(CourseProgressAdminViewSet, self).create(request, *args, **kwargs) return response
def delete(self, request, *args, **kwargs): log_action(request) if request.user.is_superuser or request.user.is_staff: return super(QuizViewSet, self).delete(request, *args, **kwargs) else: raise PermissionDenied()