def report_abuse(request, model, app_label, pk): """Report abusive or irrelavent content.""" if request.method == 'POST': # we only use the form for the csrf middleware. skip validation. form = AbuseForm(request.POST) content_type_cls = get_object_or_404(ContentType, model=model, app_label=app_label).model_class() instance = get_object_or_404(content_type_cls, pk=pk) try: url = request.build_absolute_uri(instance.get_absolute_url()) except NoReverseMatch: url = request.build_absolute_uri(reverse('dashboard')) reason = "abusive" other = "model: {}, app_label: {}, pk: {}".format(model, app_label, pk) send_abuse_report(url, reason, other, request.user.get_profile()) return render_to_response('drumbeat/report_received.html', {}, context_instance=RequestContext(request)) else: form = AbuseForm() return render_to_response('drumbeat/report_abuse.html', { 'form': form, 'model': model, 'app_label': app_label, 'pk': pk, }, context_instance=RequestContext(request))
def prompt_abuse_reason(request): form = AbuseReasonForm(request.POST) if form.is_valid(): # report abuse abuse_url = form.cleaned_data.get("url") reason = form.cleaned_data.get("reason") other = form.cleaned_data.get("other") send_abuse_report(abuse_url, reason, other, request.user.get_profile()) messages.success(request, _("Thank you for filing an abuse report!")) return http.HttpResponseRedirect(abuse_url) context = {"form": form} return render_to_response("drumbeat/abuse_reason.html", context, context_instance=RequestContext(request))