def talk_email(request):
talks = Talk.objects.filter(pk__in=request.session.get('talk-email-list', []))
count = talks.annotate(speakers_count=Count('speakers', distinct=True)).aggregate(Sum('speakers_count'))['speakers_count__sum']
if not talks.exists():
messages.error(request, _('Please select some talks.'))
return redirect('talk-list')
form = SendTalkMailForm(request.POST or None, initial=request.session.get('talk-email-stored'), talks=talks)
if request.method == 'POST' and form.is_valid():
subject = form.cleaned_data['subject']
body = form.cleaned_data['body']
request.session['talk-email-stored'] = {'subject': subject, 'body': body}
if form.cleaned_data['confirm']:
sent = talk_email_send(talks, subject, body)
messages.success(request, _('%(count)d mails have been sent.') % {'count': sent})
del request.session['talk-email-list']
return redirect('talk-list')
else:
messages.info(request, _('Your ready to send %(count)d emails.') % {'count': count})
else:
form.fields.pop('confirm')
return render(request, 'cfp/staff/talk_email.html', {
'talks': talks,
'form': form,
})
评论列表
文章目录