def add_feed(request): key = request.META.get('HTTP_AUTHORIZATION') try: user = get_user_by_token(token_key=key) except Token.DoesNotExist: user = None if user: content_form = AddFeedForm(request.POST) if content_form.is_valid(): poll_choices = request.POST.getlist('poll_choices[]') if len(poll_choices) > 0: poll_choices = "||".join(poll_choices) else: poll_choices="" content = content_form.save(commit=False) content.author_user = user content.content_type = 0 content.poll_choices = poll_choices content.save() image_form = ImageForm(request.POST, request.FILES) if image_form.is_valid(): image = image_form.save() gallery, status = Gallery.objects.get_or_create(content=content) gallery.images.add(image) else: pass else: errors = [{k: v[0]} for k, v in content_form.errors.items()] return JSONResponse({'errors': errors}, status_code=412) return JSONResponse({'status':'ok'}) else: return HttpResponse(status=401)
def show_children(request): key = request.META.get('HTTP_AUTHORIZATION') try: user = get_user_by_token(token_key=key) except Token.DoesNotExist: user = None if user: childrens = user.get_childrens.all() serializer = ChildSerializer(childrens) return JSONResponse(serializer.data) else: return HttpResponse(status=401)
def categories(request): key = request.META.get('HTTP_AUTHORIZATION') try: user = get_user_by_token(token_key=key) except Token.DoesNotExist: user = None if user: all_categories = Categoria.objects.all() serializer = CategoriesSerializer(all_categories) return JSONResponse(serializer.data) else: return HttpResponse(status=401)
def delete_child(request, id): key = request.META.get('HTTP_AUTHORIZATION') try: user = get_user_by_token(token_key=key) child = Child.objects.get(id=id) except Token.DoesNotExist: user = None except Child.DoesNotExist: child = None if user and child and request.method=="POST": child.delete() return JSONResponse({'status':'ok'}) else: return HttpResponse(status=401)
def day_poll(request): key = request.META.get('HTTP_AUTHORIZATION') try: user = get_user_by_token(token_key=key) day_poll = Content.objects.get(day_poll=1) except Token.DoesNotExist: user = None except Content.DoesNotExist: day_poll = None if user and day_poll: serializer = ContentSerializer(user, day_poll) return JSONResponse(serializer.data) else: return HttpResponse(status=401)
def delete_child_photo(request, id): key = request.META.get('HTTP_AUTHORIZATION') try: user = get_user_by_token(token_key=key) child = Child.objects.get(id=id) except Token.DoesNotExist: user = None except Child.DoesNotExist: child = None if user and child and child.mother == user: child.photo = None child.save() return JSONResponse({"status":"ok"}) else: return HttpResponse(status=401)
def categories_by_user(request): key = request.META.get('HTTP_AUTHORIZATION') try: user = get_user_by_token(token_key=key) except Token.DoesNotExist: user = None # Обновить категории для пользователя if user and request.method == "GET": categories = Categoria.objects.all() serializer = UserCategoriesSerializer(user, categories) return JSONResponse(serializer.data) if user and request.method == "POST": subscribe_categories = Categoria.objects.filter(id__in=request.POST.getlist('categories_id[]')) user.categories = subscribe_categories return JSONResponse(CategoriesSerializer(subscribe_categories).data) else: return HttpResponse(status=401)
def content_advice(request, slug, category_id=None): key = request.META.get('HTTP_AUTHORIZATION') try: user = get_user_by_token(token_key=key) user_categories = user.categories.all() if category_id: kwargs = {'category__id':category_id,'content_type':1} else: kwargs = {'category__in':user_categories, 'content_type':1} except Token.DoesNotExist: user = None user_categories = None kwargs = {} if slug == "new" and user: contents_list = Content.objects.filter(**kwargs).order_by('-creation_date') paginator = Paginator(contents_list, 5) #TODO change to variable page = request.GET.get('page') try: content = paginator.page(page) except PageNotAnInteger: content = paginator.page(1) except EmptyPage: content = paginator.page(paginator.num_pages) serializer_context = {'request': request} serializer = PaginatedContentSerializer(content, context=serializer_context) return JSONResponse(serializer.data) elif slug == "popular" and user: contents_list = Content.objects.filter(**kwargs).order_by('-update_date') paginator = Paginator(contents_list, 5) #TODO change to variable page = request.GET.get('page') try: content = paginator.page(page) except PageNotAnInteger: content = paginator.page(1) except EmptyPage: content = paginator.page(paginator.num_pages) serializer_context = {'request': request} serializer = PaginatedContentSerializer(content, context=serializer_context) return JSONResponse(serializer.data) elif user: raise Http404 else: return HttpResponse(status=401)
def favorite_rem(request): key = request.META.get('HTTP_AUTHORIZATION') try: user = get_user_by_token(token_key=key) except Token.DoesNotExist: user = None if user and request.POST.get('content_id'): try: content = Content.objects.get(id=request.POST.get('content_id')) except Content.DoesNotExist: content = None favorite, created = Favorite.objects.get_or_create(user=user) if content: favorite.content.remove(content) return HttpResponse({}) else: return HttpResponse(status=401)
def add_child(request): key = request.META.get('HTTP_AUTHORIZATION') try: user = get_user_by_token(token_key=key) except Token.DoesNotExist: user = None if request.method == "POST" and user: form = ChildAddForm(request.POST, request.FILES) if form.is_valid(): child = form.save(commit=False) child.mother = user child.save() serializer = ChildSerializer(child) return JSONResponse(serializer.data) else: errors = [{k: v[0]} for k, v in form.errors.items()] return JSONResponse({'errors': errors}, status_code=412) else: return HttpResponse(status=401)
def vote(request): key = request.META.get('HTTP_AUTHORIZATION') try: user = get_user_by_token(token_key=key) except Token.DoesNotExist: user = None if user and request.method == "POST": vote_form = VoteForm(request.POST) if vote_form.is_valid(): content = vote_form.save(user) # serializer_context = {'request': request} serializer = ContentSerializer(user, content) return JSONResponse(serializer.data) else: errors = [{k: v[0]} for k, v in vote_form.errors.items()] return JSONResponse({'errors': errors}, status_code=412) else: raise Http404
def get_comments(request): key = request.META.get('HTTP_AUTHORIZATION') try: user = get_user_by_token(token_key=key) if request.GET.get('content'): content = Content.objects.get(id=request.GET.get('content')) else: content = None except Token.DoesNotExist: user = None content = None except Content.DoesNotExist: user = None content = None if user and content: comments = content.get_comments.all() serializer = CommentSerializer(comments) return JSONResponse(serializer.data) else: return HttpResponse(status=401)
def add_comment(request): key = request.META.get('HTTP_AUTHORIZATION') try: user = get_user_by_token(token_key=key) except Token.DoesNotExist: user = None if user and request.method == "POST": comment_form = CommentForm(request.POST) # print request.POST if comment_form.is_valid(): comments = comment_form.save(user) serializer = CommentSerializer(comments) return JSONResponse(serializer.data) else: errors = [{k: v[0]} for k, v in comment_form.errors.items()] # print errors return JSONResponse({'errors': errors}, status_code=412) else: return HttpResponse(status=401)
def edit_child(request, id): key = request.META.get('HTTP_AUTHORIZATION') try: user = get_user_by_token(token_key=key) child = Child.objects.get(id=id) except Token.DoesNotExist: user = None except Child.DoesNotExist: child = None if user and child and request.method == 'POST': form = ChildAddForm(request.POST, request.FILES, instance=child) if form.is_valid(): child = form.save(commit=False) if not request.FILES.get('photo'): child.photo = None child.save() serializer = ChildSerializer(child) return JSONResponse(serializer.data) else: errors = [{k: v[0]} for k, v in form.errors.items()] return JSONResponse({'errors': errors}, status_code=412) else: return HttpResponse(status=401)
def favorites(request): key = request.META.get('HTTP_AUTHORIZATION') try: user = get_user_by_token(token_key=key) except Token.DoesNotExist: user = None if user: favorite, created = Favorite.objects.get_or_create(user=user) favorite_content = favorite.content.all() paginator = Paginator(favorite_content, 5) #TODO change to variable page = request.GET.get('page') try: content = paginator.page(page) except PageNotAnInteger: content = paginator.page(1) except EmptyPage: content = paginator.page(paginator.num_pages) serializer_context = {'request': request} serializer = PaginatedContentSerializer(content, context=serializer_context) return JSONResponse(serializer.data) else: return HttpResponse(status=401)
def replies(request, id=None): key = request.META.get('HTTP_AUTHORIZATION') try: user = get_user_by_token(token_key=key) except Token.DoesNotExist: user = None if user and id: try: content = Content.objects.get(id=id) replays = content.get_replay.filter(user=user).update(is_read=1) return JSONResponse({'status': 'ok'}) except Content.DoesNotExist: return JSONResponse({'error':u'content not found'}) elif user: replies = Replay.objects.filter(user=user).order_by('-is_read').values_list('content', flat=True).distinct() # print replies # content_list = [] # for replay in replies: # content_list.append(replay.content) content_list = Content.objects.filter(id__in=replies) paginator = Paginator(content_list, 5) #TODO change to variable page = request.GET.get('page') try: content = paginator.page(page) except PageNotAnInteger: content = paginator.page(1) except EmptyPage: content = paginator.page(paginator.num_pages) serializer_context = {'request': request} serializer = PaginatedReplaySerializer(content, context=serializer_context) # serializer = ReplaySerializer(user, content) return JSONResponse(serializer.data) else: return HttpResponse(status=401)