Example #1
0
 def save_change(self, request, model, form, formsets=None):
     """ custom redirection back to thread page on portal """
     out = super(PostAdmin, self).save_change(request, model, form, formsets)
     if isinstance(out, HttpResponseRedirect) and 'admin_redirect_after_change' in request.session:
         out = HttpResponseRedirect(request.session['admin_redirect_after_change'])
         del request.session['admin_redirect_after_change']
     thr = form.instance.target
     if isinstance(thr, TopicThread): # invalidate cached thread posts
         delete_cached_object(get_key_comments_on_thread__spec_filter(None, thr))
         delete_cached_object(get_key_comments_on_thread__by_submit_date(None, thr))
     return out
Example #2
0
def add_post(content, thread, user = False, nickname = False, email = '', ip='0.0.0.0', parent = None):
    """
    PARAMS
    content: post content
    thread: TopicThread instance
    ip: IP address
    """
    # invalidate cached thread posts
    delete_cached_object(get_key_comments_on_thread__by_submit_date(None, thread))
    delete_cached_object(get_key_comments_on_thread__spec_filter(None, thread))

    content = filter_banned_strings(content)
    comment_set = get_comments_on_thread(thread).order_by('-parent')
    CT_THREAD = ContentType.objects.get_for_model(TopicThread)

    if comment_set.count() > 0 and not parent:
        parent = comment_set[0]
    elif parent:
        parent = get_cached_object_or_404(Comment, pk = parent)

    if (user):
        cmt = Comment(
            content=content,
            subject='',
            ip_address=ip,
            target_ct=CT_THREAD,
            target_id=thread.id,
            parent=parent,
            user=user,
)

        cmt.save()

        # post is viewed by its autor
        make_objects_viewed(user, (cmt,))

    elif nickname:
        cmt = Comment(
            content=content,
            subject='',
            ip_address=ip,
            target_ct=CT_THREAD,
            target_id=thread.id,
            parent=parent,
            nickname=nickname,
            email=email,
)

        cmt.save()

    else:
        raise Exception("Either user or nickname param required!")
Example #3
0
def add_post(content, thread, user = False, nickname = False, email = '', ip='0.0.0.0', parent = None):
    """
    PARAMS
    content: post content
    thread: TopicThread instance
    ip: IP address
    """
    # invalidate cached thread posts
    delete_cached_object(get_key_comments_on_thread__by_submit_date(None, thread))
    delete_cached_object(get_key_comments_on_thread__spec_filter(None, thread))

    content = filter_banned_strings(content)
    comment_set = get_comments_on_thread(thread).order_by('-parent')
    CT_THREAD = ContentType.objects.get_for_model(TopicThread)

    if comment_set.count() > 0 and not parent:
        parent = comment_set[0]
    elif parent:
        parent = get_cached_object_or_404(Comment, pk = parent)

    if (user):
        cmt = Comment(
            content=content,
            subject='',
            ip_address=ip,
            target_ct=CT_THREAD,
            target_id=thread.id,
            parent=parent,
            user=user,
        )

        cmt.save()

        # post is viewed by its autor
        make_objects_viewed(user, (cmt,))

    elif nickname:
        cmt = Comment(
            content=content,
            subject='',
            ip_address=ip,
            target_ct=CT_THREAD,
            target_id=thread.id,
            parent=parent,
            nickname=nickname,
            email=email,
        )

        cmt.save()

    else:
        raise Exception("Either user or nickname param required!")