views.py 文件源码

python
阅读 20 收藏 0 点赞 0 评论 0

项目:pyconjp-website 作者: pyconjp 项目源码 文件源码
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
        })
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号