def dislike(request, comment_id, next=None): """ Dislike a comment. Confirmation on GET, action on POST. Templates: :template:`django_comments_tree/dislike.html`, Context: comment the flagged `comments.comment` object """ comment = get_object_or_404(get_comment_model(), pk=comment_id) if not has_app_model_option(comment)['allow_feedback']: ctype = ContentType.objects.get_for_model(comment.content_object) raise Http404("Comments posted to instances of '%s.%s' are not " "explicitly allowed to receive 'disliked it' flags. " "Check the COMMENTS_TREE_APP_MODEL_OPTIONS " "setting." % (ctype.app_label, ctype.model)) # Flag on POST if request.method == 'POST': perform_dislike(request, comment) return next_redirect(request, fallback=(next or 'comments-tree-dislike-done'), c=comment.pk) # Render a form on GET else: disliked_it = request.user in comment.users_flagging(DISLIKEDIT_FLAG) return render(request, 'django_comments_tree/dislike.html', {'comment': comment, 'already_disliked_it': disliked_it, 'next': next})
def get_comment(self, comment_id): comment = get_object_or_404(get_comment_model(), pk=comment_id) if not has_app_model_option(comment)['allow_flagging']: ctype = ContentType.objects.get_for_model(comment.content_object) raise Http404("Comments posted to instances of '%s.%s' are not " "explicitly allowed to receive 'removal suggestion' " "flags. Check the COMMENTS_TREE_APP_MODEL_OPTIONS " "setting." % (ctype.app_label, ctype.model)) return comment
from django.contrib.contenttypes.models import ContentType from django_comments_tree.forms import CommentSecurityForm from django_comments_tree import get_model as get_comment_model from django_comments_tree.conf import settings from rest_framework.response import Response from rest_framework.reverse import reverse TreeComment = get_comment_model() def commentbox_props(obj, user, request=None): """ Returns a JSON object with the initial props for the CommentBox component. The returned JSON object contains the following attributes:: { comment_count: <int>, // Count of comments posted to the object. allow_comments: <bool>, // Whether to allow comments to this post. current_user: <str as "user_id:user_name">, is_authenticated: <bool>, // Whether current_user is authenticated. request_name: <bool>, // True when auth user has no actual name. request_email_address: <bool>, // True when auth user has no email. allow_flagging: false, allow_feedback: false, show_feedback: false, can_moderate: <bool>, // Whether current_user can moderate. poll_interval: 2000, // Check for new comments every 2 seconds. feedback_url: <api-url-to-send-like/dislike-feedback>, delete_url: <api-url-for-moderators-to-remove-comment>, login_url: settings.LOGIN_URL, reply_url: <api-url-to-reply-comments>,