def METHOD_NAME(request, conference_slug, proposal_slug):
    user = request.user
    vote_phase = PSRVotePhase.PRIMARY
    conference = get_object_or_404(Conference, slug=conference_slug)
    proposal = get_object_or_404(Proposal, slug=proposal_slug, conference=conference)
    psr_vote, p_comment = utils.get_reviewer_vote_info(
        user, conference, proposal, vote_phase
    )
    if request.method == "GET":
        if psr_vote and p_comment:
            proposal_vote_form = ProposalReviewerVoteForm(
                conference=conference,
                initial={
                    "vote_value": psr_vote.vote_value.vote_value,
                    "comment": p_comment.comment,
                },
            )
        else:
            proposal_vote_form = ProposalReviewerVoteForm(conference=conference)
        ctx = {
            "proposal": proposal,
            "form": proposal_vote_form,
            "vote": psr_vote,
        }
        return render(request, "proposals/vote.html", ctx)
    # POST Workflow
    form = ProposalReviewerVoteForm(data=request.POST, conference=conference)
    if not form.is_valid():
        ctx = {"form": form, "proposal": proposal, "form_errors": form.errors}
        return render(request, "proposals/vote.html", ctx)
    # Valid Form
    vote_value = form.cleaned_data["vote_value"]
    comment = form.cleaned_data["comment"]
    utils.update_reviewer_vote_info(
        user, psr_vote, vote_value, comment, vote_phase, proposal, conference
    )
    return HttpResponseRedirect(reverse("proposals-to-review", args=[conference.slug]))