You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
2.5 KiB
70 lines
2.5 KiB
from django.urls import path
|
|
from django.http import HttpResponse
|
|
from tournaments.models import CustomUser
|
|
from tournaments.models.enums import UserOrigin
|
|
from django.core.mail import send_mail
|
|
|
|
import time
|
|
|
|
def users_list(with_tournaments):
|
|
return CustomUser.objects.filter(origin=UserOrigin.APP).exclude(purchase__isnull=False).filter(events__isnull=with_tournaments)
|
|
|
|
def email_users_with_tournaments_count(request):
|
|
users = users_list(False)
|
|
emails = [user.email for user in users]
|
|
return HttpResponse(f'users = {len(users)}, \n\nemails = {emails}')
|
|
|
|
def email_users_count(request):
|
|
users = users_list(True)
|
|
emails = [user.email for user in users]
|
|
return HttpResponse(f'users = {len(users)}, \n\nemails = {emails}')
|
|
|
|
def email_users_view(request):
|
|
return email_users(request, users_list(True), 0)
|
|
|
|
def email_users_with_tournaments(request):
|
|
return email_users(request, users_list(False), 1)
|
|
|
|
def email_users(request, users, template_index):
|
|
|
|
users = users_list(True)
|
|
|
|
subject = 'check Padel Club'
|
|
from_email = 'laurent@padelclub.app'
|
|
|
|
sent_count = 0
|
|
error_emails = []
|
|
all_emails = []
|
|
|
|
for user in users:
|
|
mail_body = template(user, template_index) # f'Bonjour {user.first_name}, cool la vie ?'
|
|
all_emails.append(user.email)
|
|
|
|
try:
|
|
send_mail(
|
|
subject,
|
|
mail_body,
|
|
from_email,
|
|
[user.email],
|
|
fail_silently=False,
|
|
)
|
|
sent_count += 1
|
|
except Exception as e:
|
|
error_emails.append(user.email)
|
|
|
|
time.sleep(1)
|
|
|
|
return HttpResponse(f'users = {len(users)}, sent = {sent_count}, errors = {len(error_emails)}, \n\nemails = {all_emails}, \n\nerror emails = {error_emails}')
|
|
|
|
def template(user, index):
|
|
if index == 0:
|
|
return f'Bonjour {user.first_name}, \n\n'
|
|
else:
|
|
return f'Bonjour {user.first_name}, \n\nJe te remercie d\'avoir téléchargé Padel Club. J\'ai pu voir que tu avais créé quelques tournois mais sans aller plus loin, est-ce que tu pourrais me dire ce qui t\'as freiné ?\n\nLaurent Morvillier'
|
|
|
|
urlpatterns = [
|
|
path('email_users/', email_users_view, name='crm_email_users'),
|
|
path('email_users_count/', email_users_count, name='crm_email_count'),
|
|
path('email_users_with_tournaments_count/', email_users_with_tournaments_count, name='crm_email_with_tournaments_count'),
|
|
path('email_users_with_tournaments/', email_users_with_tournaments, name='email_users_with_tournaments'),
|
|
]
|
|
|