示例#1
0
def report_view(request):
    if request.method == 'POST':
        #create a form instance
        form = ReportForm(request.POST)

        if form.is_valid():
            #process the data in form.cleaned_data as required
            content_type = form.cleaned_data['content_type']
            Model = content_type.model_class()
            id = form.cleaned_data['object_id']
            obj = Model.objects.get(id=id)

            try:
                jaryanak = obj.jaryanak
            except:
                # for comments
                jaryanak = obj.content_object.jaryanak

            user = None
            if request.user.is_authenticated():
                user = request.user

            reason = form.cleaned_data['reason']

            ip = get_client_ip(request)

            reported = Report.objects.get_report(obj, user)

            if reported:
                messages.warning(request, "You've reported this before!")
            else:
                Report.objects.record_report(obj, user, jaryanak, reason, ip)
                messages.success(request,
                                 "Thank you for reporting this object!")

            if 'next' in request.POST:
                next = request.POST['next']
            elif hasattr(obj, 'get_absolute_url'):
                if callable(getattr(obj, 'get_absolute_url')):
                    next = obj.get_absolute_url()
                else:
                    next = obj.get_absolute_url
            else:
                raise AttributeError('Define get_absolute_url')

            return HttpResponseRedirect(next)
        else:
            form = ReportForm()
        return render(request, 'flags/report_form.html', {
            'form': form,
            'reasons': REASON_CHOICES
        })
示例#2
0
def report_view(request):
	if request.method == 'POST':
		#create a form instance
		form = ReportForm(request.POST)

		if form.is_valid():
			#process the data in form.cleaned_data as required
			content_type = form.cleaned_data['content_type']
			Model = content_type.model_class()
			id = form.cleaned_data['object_id']
			obj = Model.objects.get(id=id)

			try:
				jaryanak = obj.jaryanak
			except:
				# for comments
				jaryanak = obj.content_object.jaryanak

			user = None
			if request.user.is_authenticated():
				user = request.user

			reason = form.cleaned_data['reason']

			ip = get_client_ip(request)

			reported = Report.objects.get_report(obj, user)
			
			if reported:
				messages.warning(request, "You've reported this before!")
			else:
				Report.objects.record_report(obj, user, jaryanak, reason, ip)
				messages.success(request, "Thank you for reporting this object!")

			if 'next' in request.POST:
				next = request.POST['next']
			elif hasattr(obj, 'get_absolute_url'):
				if callable(getattr(obj, 'get_absolute_url')):
					next = obj.get_absolute_url()
				else:
					next = obj.get_absolute_url
			else:
				raise AttributeError('Define get_absolute_url')

			return HttpResponseRedirect(next)
		else:
			form = ReportForm()
		return render(request, 'flags/report_form.html', {'form': form, 'reasons':REASON_CHOICES})
示例#3
0
 def form_valid(self, form):
     # REMOVE "NOT" IN PRODUCTION!!
     if allowed_to_post(self.request, self.request.user):
         f = form.save(commit=False)
         f.submitter = self.request.user
         f.ip = get_client_ip(self.request)
         if not f.submitter.userprofile.is_banned(f.jaryanak):
             f.save()
             get_favicon.delay(f.pk)
             messages.success(self.request, 'Your text has been sent')
         else:
             messages.success(self.request, "You're bannd from this j")
             return redirect('home')
         return super(TextCreateView, self).form_valid(form)
     else:
         return redirect("home")
示例#4
0
 def form_valid(self, form):
     # REMOVE "NOT" IN PRODUCTION!!
     if allowed_to_post(self.request, self.request.user):
         f = form.save(commit=False)
         f.submitter = self.request.user
         f.ip = get_client_ip(self.request)
         if not f.submitter.userprofile.is_banned(f.jaryanak):
             f.save()
             get_favicon.delay(f.pk)
             messages.success(self.request, 'Your text has been sent')
         else:
             messages.success(self.request, "You're bannd from this j")
             return redirect('home')
         return super(TextCreateView, self).form_valid(form)
     else:
         return redirect("home")