def save(self): from reviews.helpers import user_can_delete_review for form in self.forms: if form.cleaned_data and user_can_delete_review( self.request, form.instance): action = int(form.cleaned_data['action']) is_flagged = (form.instance.reviewflag_set.count() > 0) if action != reviews.REVIEW_MODERATE_SKIP: # Delete flags. for flag in form.instance.reviewflag_set.all(): flag.delete() review = form.instance addon = review.addon if action == reviews.REVIEW_MODERATE_DELETE: review_addon = review.addon review_id = review.id review.delete() amo.log(amo.LOG.DELETE_REVIEW, review_addon, review_id, details=dict(title=unicode(review.title), body=unicode(review.body), addon_id=addon.id, addon_title=unicode(addon.name), is_flagged=is_flagged)) if self.request: ReviewerScore.award_moderation_points( self.request.amo_user, addon, review_id) elif action == reviews.REVIEW_MODERATE_KEEP: review.editorreview = False review.save() amo.log(amo.LOG.APPROVE_REVIEW, review.addon, review, details=dict(title=unicode(review.title), body=unicode(review.body), addon_id=addon.id, addon_title=unicode(addon.name), is_flagged=is_flagged)) if self.request: ReviewerScore.award_moderation_points( self.request.amo_user, addon, review.id)
def save(self): from reviews.helpers import user_can_delete_review for form in self.forms: if form.cleaned_data and user_can_delete_review(self.request, form.instance): action = int(form.cleaned_data['action']) is_flagged = (form.instance.reviewflag_set.count() > 0) if action != reviews.REVIEW_MODERATE_SKIP: # Delete flags. for flag in form.instance.reviewflag_set.all(): flag.delete() review = form.instance addon = review.addon if action == reviews.REVIEW_MODERATE_DELETE: review_addon = review.addon review_id = review.id review.delete() amo.log(amo.LOG.DELETE_REVIEW, review_addon, review_id, details=dict(title=unicode(review.title), body=unicode(review.body), addon_id=addon.id, addon_title=unicode(addon.name), is_flagged=is_flagged)) if self.request: ReviewerScore.award_moderation_points( self.request.amo_user, addon, review_id) elif action == reviews.REVIEW_MODERATE_KEEP: review.editorreview = False review.save() amo.log(amo.LOG.APPROVE_REVIEW, review.addon, review, details=dict(title=unicode(review.title), body=unicode(review.body), addon_id=addon.id, addon_title=unicode(addon.name), is_flagged=is_flagged)) if self.request: ReviewerScore.award_moderation_points( self.request.amo_user, addon, review.id)
def delete(request, addon, review_id): review = get_object_or_404(Rating.objects, pk=review_id, addon=addon) if not user_can_delete_review(request, review): return http.HttpResponseForbidden() return http.HttpResponse()