Beispiel #1
0
def edit(request, id):
    breadcrumb = (('Community', '/community/'), ('Discuss', None))

    thread = get_object_or_404(DiscussionThread, pk=id, is_removed=False)
    comment = thread.content_object
    form = EditDiscussForm(instance=comment)
    
    if request.method == 'POST':
        form = EditDiscussForm(request.POST, instance=comment)

        if form.is_valid():
            form.save()

            if request.POST['status'] in ['preview', 'unpublish']:
                thread.is_public = False
            else:
                thread.is_public = True

            thread.save()

            if not moderator.process(thread, request):
                if thread.is_public:
                    send_to_discuss_mailing_list(thread.content_object, request)
                    update_discuss_activity_stream(thread.content_object, request)
                    
            return redirect('discuss-post-detail', id=thread.id)

    if not thread.can_edit(request.user):
        return redirect('discuss-index')

    return render(request, 'discuss/edit.html', {
        'breadcrumb': breadcrumb,
        'form': form,
        'thread': thread
    })
Beispiel #2
0
 def moderation_pass(self, comment, request):
     comment.is_public = True
     comment.user.get_profile().add_points(3)
     send_to_discuss_mailing_list(comment, request)
     update_discuss_activity_stream(comment, request)
     send_mail('Content Approved', self.approved_message_text(comment),
               settings.DEFAULT_FROM_EMAIL, [comment.user.email])
Beispiel #3
0
 def moderation_pass(self, thread, request):
     thread.is_public = True
     thread.content_object.user.get_profile().add_points(3)
     send_to_discuss_mailing_list(thread.content_object, request)
     update_discuss_activity_stream(thread.content_object, request)
     send_mail('Content Approved', self.approved_message_text(thread),
               settings.DEFAULT_FROM_EMAIL,
               [thread.content_object.user.email])
Beispiel #4
0
def new(request):
    breadcrumb = (('Community', '/community/'), ('Discuss', None))
    form = EditDiscussForm()
    
    if request.method == 'POST':
        form = EditDiscussForm(request.POST)

        if form.is_valid():
            discussion_thread_type = ContentType.objects.get(app_label='discuss', model='discussionthread')
            threadedcomment_type = ContentType.objects.get(app_label='threadedcomments', model='threadedcomment')

            # use placeholder data for now
            thread = DiscussionThread(object_pk=1, content_type=threadedcomment_type, last_comment_id=1)
            thread.save()

            comment = form.save(commit=False)
            comment.content_type = discussion_thread_type
            comment.object_pk = thread.pk
            comment.site = get_current_site(request)
            comment.user = request.user
            comment.save()

            # now we have real data
            thread.object_pk = comment.pk
            thread.last_comment_id = comment.id

            if request.POST['status'] in ['preview']:
                thread.is_public = False
            else:
                thread.is_public = True
            thread.save()

            if not moderator.process(thread, request):
                if thread.is_public:
                    send_to_discuss_mailing_list(thread.content_object, request)
                    update_discuss_activity_stream(thread.content_object, request)

            return redirect('discuss-post-detail', id=thread.id)

    return render(request, 'discuss/new.html', {
        'breadcrumb': breadcrumb,
        'form': form,
    })
Beispiel #5
0
def comment_handler(sender, comment, request, *args, **kwargs):
    discussion_thread_type = ContentType.objects.get(app_label='discuss', model='discussionthread')
    if comment.content_type == discussion_thread_type: # comment on a new or existing discuss thread
        thread = DiscussionThread.objects.get(pk=comment.object_pk)
        thread.last_comment_id = comment.id
        thread.save()
    else: # comment on other site content post/artwork/etc...
        try:
            thread = DiscussionThread.objects.get(content_type=comment.content_type, object_pk=comment.object_pk)
        except DiscussionThread.DoesNotExist:
            thread = DiscussionThread(content_type=comment.content_type, object_pk=comment.object_pk)
        thread.last_comment_id = comment.id
        thread.save()

    comment.title = thread.content_object.title
    comment.save()
    
    if not moderator.process(comment, request):
        send_to_discuss_mailing_list(comment, request)
        update_discuss_activity_stream(comment, request)
Beispiel #6
0
def comment_handler(sender, comment, request, *args, **kwargs):
    discussion_thread_type = ContentType.objects.get(app_label='discuss',
                                                     model='discussionthread')
    if comment.content_type == discussion_thread_type:  # comment on a new or existing discuss thread
        thread = DiscussionThread.objects.get(pk=comment.object_pk)
        thread.last_comment_id = comment.id
        thread.save()
    else:  # comment on other site content post/artwork/etc...
        try:
            thread = DiscussionThread.objects.get(
                content_type=comment.content_type, object_pk=comment.object_pk)
        except DiscussionThread.DoesNotExist:
            thread = DiscussionThread(content_type=comment.content_type,
                                      object_pk=comment.object_pk)
        thread.last_comment_id = comment.id
        thread.save()

    comment.title = thread.content_object.title
    comment.save()

    if not moderator.process(comment, request):
        send_to_discuss_mailing_list(comment, request)
        update_discuss_activity_stream(comment, request)
Beispiel #7
0
 def moderation_pass(self, comment, request):
     comment.is_public = True
     comment.user.get_profile().add_points(3)
     send_to_discuss_mailing_list(comment, request)
     update_discuss_activity_stream(comment, request)
     send_mail('Content Approved', self.approved_message_text(comment), settings.DEFAULT_FROM_EMAIL, [comment.user.email])
Beispiel #8
0
 def moderation_pass(self, thread, request):
     thread.is_public = True
     thread.content_object.user.get_profile().add_points(3)
     send_to_discuss_mailing_list(thread.content_object, request)
     update_discuss_activity_stream(thread.content_object, request)
     send_mail('Content Approved', self.approved_message_text(thread), settings.DEFAULT_FROM_EMAIL, [thread.content_object.user.email])