diff --git a/biz/admin.py b/biz/admin.py index 3c4de33..789eece 100644 --- a/biz/admin.py +++ b/biz/admin.py @@ -361,9 +361,12 @@ class ProspectAdmin(SyncedObjectAdmin): if form.is_valid(): email_template = form.cleaned_data['email_template'] - self.process_selected_items_with_template(request, queryset, email_template) + sent_count, failed_count = self.process_selected_items_with_template(request, queryset, email_template) - self.message_user(request, f"Email sent to {queryset.count()} prospects using the '{email_template.name}' template.", messages.SUCCESS) + if failed_count > 0: + self.message_user(request, f"Email sent to {sent_count} prospects, {failed_count} failed using the '{email_template.name}' template.", messages.WARNING) + else: + self.message_user(request, f"Email sent to {sent_count} prospects using the '{email_template.name}' template.", messages.SUCCESS) return HttpResponseRedirect(request.get_full_path()) else: form = EmailTemplateSelectionForm() @@ -398,9 +401,15 @@ class ProspectAdmin(SyncedObjectAdmin): sent_count += 1 except Exception as e: error_emails.append(prospect.email) + logger.error(f'Failed to send email to {prospect.email}: {str(e)}') time.sleep(1) + if error_emails: + logger.error(f'Failed to send emails to: {error_emails}') + + return sent_count, len(error_emails) + @admin.register(ProspectGroup) class ProspectGroupAdmin(SyncedObjectAdmin): list_display = ('name', 'user_count')