def review(request, proposalid): proposal = Proposal.objects.get(id=proposalid) if not topiclead(request.user, proposal.topic): return HttpResponseForbidden("Forbidden") current_status = proposal.status status_long = proposal.get_status_display() if request.method == 'POST': form = ProposalReviewForm(request.POST, instance=proposal) if form.is_valid(): form.save() reviewer_notes = '' if form.cleaned_data['comment']: reviewer_notes = form.cleaned_data['comment'] c = Comment() c.proposal = proposal c.author = request.user c.content = reviewer_notes c.save() if (settings.SEND_MAIL and current_status != proposal.status): lead = User.objects.get(username=proposal.topic.lead_username) if (lead.email and proposal.proposer.email): message = """ This is an automated email. If needed, you should reply directly to the topic lead (%s). On your session proposal: %s The topic lead (%s) changed status from %s to %s. Reviewer's notes: %s You can edit your proposal at: %s/cfp/edit/%s""" \ % (proposal.topic.lead_username, smart_str(proposal.title), proposal.topic.lead_username, status_long, proposal.get_status_display(), smart_str(reviewer_notes), settings.SITE_ROOT, proposalid) email = EmailMessage(settings.EMAIL_PREFIX + "Status change on your session proposal", message, settings.EMAIL_FROM, [proposal.proposer.email, ], [], headers={'Reply-To': lead.email}) email.send() return HttpResponseRedirect('/cfp/topic/%d' % proposal.topic.id) else: form = ProposalReviewForm(instance=proposal) comments = Comment.objects.filter(proposal=proposal) return render(request, 'cfpreview.html', {'form': form, 'proposal': proposal, 'comments': comments, 'blueprints': linkify(proposal.blueprints)})
def details(request, proposalid): proposal = Proposal.objects.get(id=proposalid) if request.method == 'POST': form = CommentForm(request.POST) if form.is_valid(): comment = form.save(commit=False) comment.proposal = proposal comment.author = request.user comment.save() else: form = CommentForm() comments = Comment.objects.filter(proposal=proposal) return render(request, "cfpdetails.html", {'proposal': proposal, 'form': form, 'comments': comments, 'editable': is_editable(proposal, request.user), 'blueprints': linkify(proposal.blueprints)})