def bulk_email_view(self, request, object_ids):
season_players = SeasonPlayer.objects.filter(id__in=[int(i) for i in object_ids.split(',')]).select_related('season', 'player').nocache()
seasons = {sp.season for sp in season_players}
for season in seasons:
if not request.user.has_perm('tournament.bulk_email', season.league):
raise PermissionDenied
if request.method == 'POST':
form = forms.BulkEmailForm(len(season_players), request.POST)
if form.is_valid() and form.cleaned_data['confirm_send']:
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_seasonplayer_changelist')
else:
form = forms.BulkEmailForm(len(season_players))
context = {
'has_permission': True,
'opts': self.model._meta,
'site_url': '/',
'original': 'Bulk email',
'title': 'Bulk email',
'form': form
}
return render(request, 'tournament/admin/bulk_email.html', context)
#-------------------------------------------------------------------------------
评论列表
文章目录