def finaid_email(request, pks):
if not is_reviewer(request.user):
return HttpResponseForbidden(_(u"Not authorized for this page"))
applications = FinancialAidApplication.objects.filter(pk__in=pks.split(","))\
.select_related('user')
emails = [app.user.email for app in applications]
form = None
if request.method == 'POST':
form = BulkEmailForm(request.POST)
if form.is_valid():
subject = form.cleaned_data['subject']
from_email = email_address()
template_text = form.cleaned_data['template'].template
template = Template(template_text)
# emails will be the datatuple arg to send_mail_mail
emails = []
for application in applications:
try:
review = application.review
except FinancialAidReviewData.DoesNotExist:
review = None
ctx = {
'application': application,
'review': review,
}
text = template.render(Context(ctx))
emails.append((subject, text, from_email,
[application.user.email]))
try:
send_mass_mail(emails)
except SMTPException:
log.exception("ERROR sending financial aid emails")
messages.add_message(request, messages.ERROR,
_(u"There was some error sending emails, "
u"not all of them might have made it"))
else:
messages.add_message(request, messages.INFO, _(u"Emails sent"))
return redirect(reverse('finaid_review', kwargs=dict(pks=pks)))
ctx = {
'form': form or BulkEmailForm(),
'users': [app.user for app in applications]
}
return render(request, "finaid/email.html", ctx)
评论列表
文章目录