def tutorial_message(request, pk):
tutorial = get_object_or_404(PyConTutorialProposal, pk=pk)
presentation = Presentation.objects.get(proposal_base=tutorial)
if not request.user.is_staff:
if not is_attendee_or_speaker(request.user, presentation):
return HttpResponseForbidden(_(u"Not authorized for this page"))
message_form = TutorialMessageForm()
if request.method == 'POST':
message = PyConTutorialMessage(user=request.user,
tutorial=tutorial)
message_form = TutorialMessageForm(request.POST, instance=message)
if message_form.is_valid():
message = message_form.save()
context = email_context(request, tutorial, message)
sender_email = request.user.email
speakers = [x.email for x in tutorial.speakers()
if x.email != sender_email]
attendees = [x.email for x in tutorial.registrants.all()
if x.email != sender_email]
recipients = speakers + attendees
# Send new message notice to speakers/attendees
send_email_message("message",
from_=settings.DEFAULT_FROM_EMAIL,
to=[request.user.email],
bcc=recipients,
context=context)
messages.add_message(request, messages.INFO, _(u"Message sent"))
url = reverse('schedule_presentation_detail', args=[presentation.pk])
return redirect(url)
return render(request, "tutorials/message.html", {
'presentation': presentation,
'form': message_form
})
评论列表
文章目录