def handle_POST(cls, request, context): form = context['form'] if request.POST.get('csrf') != request.session['feature_vote:csrf']: return HttpResponseForbidden() if 'vote_up' in request.POST or 'vote_down' in request.POST: feature = get_object_or_404(Feature, id = request.POST.get('id', 0)) previous_vote = request.session['feature_vote:votes'].get(feature.id, 0) vote = previous_vote + (1 if 'vote_up' in request.POST else -1) vote = min(max(-1, vote), 1) request.session['feature_vote:votes'][feature.id] = vote request.session.modified = True feature.down_vote += cls.vote_transitions[(previous_vote, vote)][0] feature.up_vote += cls.vote_transitions[(previous_vote, vote)][1] feature.save() if request.POST.get('return_url', '').startswith('/'): return HttpResponseSeeOther(request.POST['return_url']) else: return HttpResponseSeeOther(reverse('feature_vote:index')) if form.is_valid(): form.save() send_email(request, { 'name': form.cleaned_data['user_name'], 'email': form.cleaned_data['user_email'], 'title': form.cleaned_data['title'], 'description': form.cleaned_data['description'], 'feature': form.instance, }, 'feature_vote/feature_create.eml', cls) return HttpResponseSeeOther(reverse('feature_vote:index') + '?submitted=true') else: return cls.handle_GET(request, context)
def handle_POST(cls, request, context): form = context["feedback_form"] if form.is_valid(): # Send an e-mail to the managers notifying of feedback. email = send_email( request, { "email": form.cleaned_data["email"], "referer": request.POST.get("referer", ""), "body": form.cleaned_data["body"], }, "feedback/email.txt", cls, ) qs = urllib.urlencode({"sent": "true", "referer": request.POST.get("referer", "")}) return HttpResponseRedirect("%s?%s" % (reverse("feedback:index"), qs)) else: return cls.handle_GET(request, context)