def bulk_email_view(self, request, object_id):
season = get_object_or_404(Season, pk=object_id)
if not request.user.has_perm('tournament.bulk_email', season.league):
raise PermissionDenied
if request.method == 'POST':
form = forms.BulkEmailForm(season.seasonplayer_set.count(), request.POST)
if form.is_valid() and form.cleaned_data['confirm_send']:
season_players = season.seasonplayer_set.all()
email_addresses = {sp.player.email for sp in season_players if sp.player.email != ''}
email_messages = []
for addr in email_addresses:
message = EmailMultiAlternatives(
form.cleaned_data['subject'],
form.cleaned_data['text_content'],
settings.DEFAULT_FROM_EMAIL,
[addr]
)
message.attach_alternative(form.cleaned_data['html_content'], 'text/html')
email_messages.append(message)
conn = mail.get_connection()
conn.open()
conn.send_messages(email_messages)
conn.close()
self.message_user(request, 'Emails sent to %d players.' % len(season_players), messages.INFO)
return redirect('admin:tournament_season_changelist')
else:
form = forms.BulkEmailForm(season.seasonplayer_set.count())
context = {
'has_permission': True,
'opts': self.model._meta,
'site_url': '/',
'original': season,
'title': 'Bulk email',
'form': form
}
return render(request, 'tournament/admin/bulk_email.html', context)
评论列表
文章目录