1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- from django.shortcuts import render_to_response, get_object_or_404
- from django.template import RequestContext
- from django.http import Http404
- from django.contrib.comments.models import Comment, ModeratorDeletion, UserFlag
- from django.contrib.auth.decorators import login_required
- from django.http import HttpResponseRedirect
- from django.conf import settings
- def flag(request, comment_id, extra_context=None, context_processors=None):
- """
- Flags a comment. Confirmation on GET, action on POST.
- Templates: `comments/flag_verify`, `comments/flag_done`
- Context:
- comment
- the flagged `comments.comments` object
- """
- if extra_context is None: extra_context = {}
- comment = get_object_or_404(Comment,pk=comment_id, site__id__exact=settings.SITE_ID)
- if request.POST:
- UserFlag.objects.flag(comment, request.user)
- return HttpResponseRedirect('%sdone/' % request.path)
- return render_to_response('comments/flag_verify.html', {'comment': comment},
- context_instance=RequestContext(request, extra_context, context_processors))
- flag = login_required(flag)
- def flag_done(request, comment_id, extra_context=None, context_processors=None):
- if extra_context is None: extra_context = {}
- comment = get_object_or_404(Comment,pk=comment_id, site__id__exact=settings.SITE_ID)
- return render_to_response('comments/flag_done.html', {'comment': comment},
- context_instance=RequestContext(request, extra_context, context_processors))
- def delete(request, comment_id, extra_context=None, context_processors=None):
- """
- Deletes a comment. Confirmation on GET, action on POST.
- Templates: `comments/delete_verify`, `comments/delete_done`
- Context:
- comment
- the flagged `comments.comments` object
- """
- if extra_context is None: extra_context = {}
- comment = get_object_or_404(Comment,pk=comment_id, site__id__exact=settings.SITE_ID)
- if not Comment.objects.user_is_moderator(request.user):
- raise Http404
- if request.POST:
- # If the comment has already been removed, silently fail.
- if not comment.is_removed:
- comment.is_removed = True
- comment.save()
- m = ModeratorDeletion(None, request.user.id, comment.id, None)
- m.save()
- return HttpResponseRedirect('%sdone/' % request.path)
- return render_to_response('comments/delete_verify.html', {'comment': comment},
- context_instance=RequestContext(request, extra_context, context_processors))
- delete = login_required(delete)
- def delete_done(request, comment_id, extra_context=None, context_processors=None):
- if extra_context is None: extra_context = {}
- comment = get_object_or_404(Comment,pk=comment_id, site__id__exact=settings.SITE_ID)
- return render_to_response('comments/delete_done.html', {'comment': comment},
- context_instance=RequestContext(request, extra_context, context_processors))
|