Esempio n. 1
0
def comment(request, group_id, item_id):
    item = get_object_or_404(Item, pk=item_id)
    group = get_object_or_404(WishlistGroup, pk=group_id)
    group_item = GroupItem.objects.get(item=item, group=group)

    print "adding a coment to %s" % item
    print "posted values %s" % request.POST
    form = CommentForm(request.POST)
    if not form.is_valid():
        print "comment form is invalid"
        return render(request, "wishlist_app/item/item.html", {
            "item": item,
            "comments": item.comments.order_by('created'),
            "comment_form": form
        })
    print "saving comment"
    c = form.save(commit=False)
    c.commenter = request.user
    # TODO refactor this to be more DRY
    if c.hide_from_wisher and c.commenter == item.wisher:
        form.add_error("hide_from_wisher", ValidationError("Can't hide comments from yourself"))
        return render(request, "wishlist_app/item/item.html", {
            "item": item,
            "comments": group_item.comments.order_by('created'),
            "comment_form": form
        })
    c.save()
    ic = ItemComment(group_item=group_item, comment=c)
    ic.save()
    print "saved comment %s" % c
    return redirect("group_item_read", group.id,  item.id)
Esempio n. 2
0
def edit_comment(request, comment_id):
    print "Request to edit comment: %s" % comment_id
    c = get_object_or_404(Comment, pk=comment_id)
    print "Got Comment %s" % c
    ic = get_object_or_404(ItemComment, comment=c)
    print "Got item-comment"
    item = ic.group_item.item
    print "Got item %s" % item
    if not request.user == c.commenter:
        raise PermissionDenied("Can't edit a comment you didn't write")
    if request.POST:
        print "post request to edit comment, bound to %s" % c
        form = CommentForm(request.POST, instance=c)
        print "bound form: %s" % form
        if not form.is_valid():
            print "comment form is invalid"
            return render(request, "wishlist_app/item/item.html", {
                "item": item,
                "comments": item.comments.order_by('created'),
                "comment_form": form
            })
        else:
            print "comment form valid"
            c = form.save()
            print "comment update saved: %s" % c
            return redirect("group_item_read", ic.group_item.group.id, item.id)
    else:
        print "request for a comment form bound to %s" % c
        form = CommentForm(instance=c)
        print "Form is type: %s" % type(form)
        print "Item is type: %s" % type(item)
        return render(request, "wishlist_app/comment/update_comment_form.html", {
            "item": item,
            "comment": c,
            "comment_form": form
        })