Example #1
0
 def test_can_create_a_comment(self):
     form = CommentForm({
         "title": "test comment",
         "like": "",
         "comment": "This is a test comment"
     })
     self.assertTrue(form.is_valid())
Example #2
0
    def test_comment_form_valid_data(self):
        form = CommentForm(
            data={
                'comment': 'This is great.'  #the only entry in forms.py
                #the other three fields are autogenerated from the models
            })

        self.assertTrue(form.is_valid())
Example #3
0
def newComment(request, idProducto=None):
    if request.user.is_authenticated():
        if idProducto != None:
            if request.method == "POST":
                newComment = NewCommentForm(request.POST)
                if newComment.is_valid():
                    try:
                        data = {
                            'id_product': idProducto,
                            'id_sender': request.user.id,
                            'subject': newComment.cleaned_data['subject'],
                            'text': newComment.cleaned_data['text'],
                            'datetime': datetime.now(),
                        }
                        commentForm = CommentForm(data)
                        if commentForm.is_valid():
                            commentForm.save()
                            user = request.user
                            #                         send_mail('Comentario enviado', 'Usted hizo un nuevo comentario.', settings.EMAIL_HOST_USER , [user.email], fail_silently=False)
                            return HttpResponseRedirect("/products/" +
                                                        str(idProducto))
                        else:
                            return HttpResponse("DATA_ERROR")
                    except Exception as e:
                        print e
                        return HttpResponseRedirect("/products/" +
                                                    str(idProducto))
                else:
                    return HttpResponse("NO_VALID")
            elif request.is_ajax():
                newComment = NewCommentForm()
                product = Product.objects.get(id=idProducto)
                title = "Nuevo comentario para " + product.name
                user = request.user
                message = {
                    "add_comment_data":
                    render_to_response(
                        "new_comment.html", {
                            'form': newComment,
                            'title': title,
                            'user': user,
                            'idproducto': idProducto
                        },
                        context_instance=RequestContext(request)).content
                }
                json = simplejson.dumps(message)
                return HttpResponse(json, mimetype='application/json')
        else:
            return HttpResponseRedirect("/")
    else:
        return HttpResponse("/login")
Example #4
0
def AddCommentView(request, id):
    if request.method == 'POST':
        form = CommentForm(request.POST)
        if form.is_valid():
            data = Comment()  # create relation with model
            data.subject = form.cleaned_data['subject']
            data.comment = form.cleaned_data['comment']
            print(form.cleaned_data['rate'])
            data.rate = form.cleaned_data['rate']
            data.product_id = id
            current_user = request.user
            data.user_id = current_user.id
            data.save()  # save data to tables
            return redirect('single-product', id)
Example #5
0
    def mutate_and_get_payload(cls, input, context, info):
        user = context.user

        comment_id = input.get('id')
        comment = get_node(comment_id, context, info, Comment)
        if not comment or comment.user != user:
            raise ResponseError("Invalid Comment", code='invalid_comment')

        # update comment
        form = CommentForm(input, instance=comment)
        if form.is_valid():
            form.save()
        else:
            raise FormError(form.errors)

        return UpdateCommentMutation(comment=comment)
Example #6
0
def productDetail(request, id):
    context = dict()
    url = request.META.get('HTTP_REFERER')
    context['form'] = ShopCartForm()
    context['products'] = Product.objects.order_by("-pk")[:4]
    try:
        context['items'] = Product.objects.get(pk=id)
    except Product.DoesNotExist:
        raise Http404("Product yok ")
    context['form2'] = CommentForm(request.POST or None)

    productPost = get_object_or_404(Product, pk=id)
    if context['form2'].is_valid():
        comment = context['form2'].save(commit=False)
        comment.productPost = productPost
        comment.save()
        return HttpResponseRedirect(url)

    counts = Comment.objects.filter(productPost=id, approved_comment=True)

    a = 0
    for i in counts:
        a += 1

    context['commentsCount'] = a
    #print(context['commentsCount'])

    template = 'products/product-detail.html'
    return render(request, template, context)
Example #7
0
    def mutate_and_get_payload(cls, input, context, info):
        user = context.user

        product_id = input.get('product_id')
        product = get_node(product_id, context, info, Product)
        if not product:
            raise ResponseError("Invalid Product", code='invalid_product')

        # create comment
        form = CommentForm(input)
        if form.is_valid():
            new_comment = form.save(commit=False)
            new_comment.product = product
            new_comment.user = user
            new_comment.save()
        else:
            raise FormError(form.errors)

        return CreateCommentMutation(comment=new_comment)
Example #8
0
 def post(self, request, *args, **kwargs):
     # form = self.get_form()
     form = CommentForm(data=request.POST)
     pk = kwargs.get('pk', None)
     if form.is_valid():
         product = Product.objects.get(id=pk)
         data = form.save(commit=False)
         # comment obj에 위치 정보 저장
         set_object_location(request, data)
         p_latlng = str(product.lat) + ',' + str(product.lng)
         c_latlng = str(data.lat) + ',' + str(data.lng)
         data.product = product
         # product-comment의 거리 측정
         distance = google_distance_matrix(org_coord=p_latlng, des_coord=c_latlng)
         print('distance', distance)
         data.distance = distance[c_latlng]['distance']['text']
         print(data.distance)
         data.save()
         return redirect(product.get_absolute_url())
Example #9
0
def product(request, product_slug=None):
    """A detail page for a product."""
    product = get_object_or_404(Product.objects.active(), slug=product_slug)

    if request.method == 'POST':
        comment_form = CommentForm(request.POST)
        if comment_form.is_valid():
            comment = comment_form.save(commit=False)
            comment.product = product
            comment.save()
            comment_form = CommentForm()
    else:
        comment_form = CommentForm()

    comments = product.productcomment_set.active()

    return render_to_response('products/product.html', {
        'comments': comments,
        'comment_form': comment_form,
        'product': product,
        'ratio': float(product.current_quantity) / float(product.max_quantity),
    }, context_instance=RequestContext(request))
Example #10
0
def addcomment(request, id):
    if request.method == 'POST':
        form = CommentForm(request.POST)
        if form.is_valid():
            comm = form.save(commit=False)
            comm.product = Product.objects.get(id=id)
            form.save()
    return HttpResponseRedirect('/product/%s' % id)
Example #11
0
def newComment(request, idProducto=None):
    if request.user.is_authenticated():
        if idProducto!=None:
            if request.method == "POST":
                newComment = NewCommentForm(request.POST)
                if newComment.is_valid():
                    try:
                        data = {'id_product':idProducto,
                                'id_sender':request.user.id,
                                'subject':newComment.cleaned_data['subject'],
                                'text':newComment.cleaned_data['text'],
                                'datetime': datetime.now(),
                                }    
                        commentForm = CommentForm(data)
                        if commentForm.is_valid():
                            commentForm.save()
                            user = request.user
   #                         send_mail('Comentario enviado', 'Usted hizo un nuevo comentario.', settings.EMAIL_HOST_USER , [user.email], fail_silently=False)
                            return HttpResponseRedirect("/products/" + str(idProducto))
                        else:
                            return HttpResponse("DATA_ERROR")
                    except Exception as e:
                        print e
                        return HttpResponseRedirect("/products/" + str(idProducto))                            
                else:
                    return HttpResponse("NO_VALID")        
            elif request.is_ajax():
                newComment = NewCommentForm()
                product = Product.objects.get(id=idProducto)
                title = "Nuevo comentario para " + product.name
                user = request.user
                message = {"add_comment_data": render_to_response("new_comment.html", {'form':newComment, 'title':title, 'user':user, 'idproducto':idProducto},context_instance=RequestContext(request)).content}
                json = simplejson.dumps(message)
                return HttpResponse(json, mimetype='application/json')
        else:
            return HttpResponseRedirect("/")
    else:
        return HttpResponse("/login")
Example #12
0
def add_comment_to_post(request, pk):
    productPost = get_object_or_404(Product, pk=pk)
    if request.method == "POST":
        form = CommentForm(request.POST)
        if form.is_valid():
            comment = form.save(commit=False)
            comment.productPost = productPost
            comment.save()
            return redirect('products/product.html', pk=productPost.pk)
    else:
        form = CommentForm()
    return render(request, 'products/comments.html', {'form': form})
Example #13
0
def add_comment_to_product(request, id):
    user = request.user
    product = get_object_or_404(Product, pk=id)
    if request.method == "POST":
        form = CommentForm(request.POST)
        if form.is_valid():
            comment = form.save(commit=False)
            comment.user = user
            comment.product = product
            comment.approve()
            comment.save()
            return redirect('product_detail', slug=product.slug)
    else:
        form = CommentForm()
    request.session['comments_counter'] = Comment.objects.filter(user_id=user.id).count()
    template = 'products/add_comment_to_product.html'
    context ={
        'form':form,
    }
    return render(request, template, context)
Example #14
0
def product_detail_view(request, **kwargs):
    pk = kwargs['id']
    product = get_object_or_404(Product, pk=pk)
    form = Increment_price_form(request.POST or None)
    increment = product.min_increment + product.final_price
    product.user

    if len(request.POST) == 0 or len(request.POST) == 3:
        comment_form = CommentForm(request.POST or None)
        if comment_form.is_valid():
            product_post = product
            user = request.user
            new_comment_body = comment_form.cleaned_data.get("body")
            Comment.objects.create(product_post=product_post,
                                   user=user,
                                   body=new_comment_body)
            return HttpResponseRedirect(request.path_info)
    else:
        comment_form = CommentForm()

    try:
        if len(product.winner) > 0:
            u = User.objects.filter(email=product.winner)
            s_name = u.first().first_name
            s_last = u.first().last_name
            winner_to_display = s_name[:3] + "**** ****" + s_last[len(s_last) -
                                                                  3:len(s_last
                                                                        )]
        else:
            winner_to_display = "Be the first!"
    except:
        winner_to_display = "Be the first!"

    if request.method == 'POST' and request.user.is_anonymous == True:
        messages.error(request, "Please register!")
        return redirect('create')

    if form.is_valid():
        newPrice = form.cleaned_data.get("final_price")

        if newPrice > product.final_price + product.min_increment and form.is_valid(
        ):
            product.final_price = newPrice
            product.winner = str(request.user)
            product.user.add(request.user)
            increment = product.min_increment + product.final_price
            product.save()
            form = Increment_price_form()

            u = User.objects.filter(email=product.winner)
            s_name = u.first().first_name
            s_last = u.first().last_name
            winner_to_display = s_name[:3] + "**** ****" + s_last[len(s_last) -
                                                                  3:len(s_last
                                                                        )]
        else:
            messages.error(
                request, "Please insert more than " +
                str(float(product.final_price + product.min_increment)) + " €")

    if request.user.is_authenticated:
        try:
            my_products = Product.objects.filter(profile=request.user.profile)
            if product in my_products:
                mine = True
            else:
                mine = False
        except:
            mine = False
    else:
        mine = False

    comments = Comment.objects.filter(product_post=product)

    context = {
        'object': product,
        'form': form,
        'winner_to_diplay': winner_to_display,
        'increment': increment,
        'mine': mine,
        'comments': comments,
        'comment_form': comment_form
    }
    return render(request, 'products/productPage.html', context)
Example #15
0
 def test_can_create_a_comment_validation_fail(self):
     form = CommentForm({"title": "t", "like": "", "comment": ""})
     self.assertFalse(form.is_valid())
Example #16
0
    def test_comment_form_invalid_or_no_data(self):
        form = CommentForm(data={})

        self.assertFalse(form.is_valid())