gault-millau/apps/account/tasks.py
2019-10-10 20:49:35 +03:00

59 lines
2.1 KiB
Python

"""Account app celery tasks."""
import logging
from celery import shared_task
from django.utils.translation import gettext_lazy as _
from . import models
logging.basicConfig(format='[%(levelname)s] %(message)s', level=logging.INFO)
logger = logging.getLogger(__name__)
@shared_task
def send_reset_password_email(user_id, country_code):
"""Send email to user for reset password."""
try:
user = models.User.objects.get(id=user_id)
user.send_email(subject=_('Password resetting'),
message=user.reset_password_template(country_code))
except:
logger.error(f'METHOD_NAME: {send_reset_password_email.__name__}\n'
f'DETAIL: Exception occurred for reset password: '
f'{user_id}')
@shared_task
def send_reset_password_confirm(user: models.User, country_code):
""" Send email to user for applying new password. """
try:
user.send_email(subject=_('New password confirmation'),
message=user.confirm_password_template(country_code))
except:
logger.error(f'METHOD_NAME: {send_reset_password_confirm.__name__}\n'
f'DETAIL: Exception occured for new passwordconfirmation',
f'{user.id}')
@shared_task
def confirm_new_email_address(user_id, country_code):
"""Send email to user new email."""
try:
user = models.User.objects.get(id=user_id)
user.send_email(subject=_('Validate new email address'),
message=user.confirm_email_template(country_code))
except:
logger.error(f'METHOD_NAME: {confirm_new_email_address.__name__}\n'
f'DETAIL: Exception occurred for user: {user_id}')
@shared_task
def change_email_address(user_id, country_code):
"""Send email to user new email."""
try:
user = models.User.objects.get(id=user_id)
user.send_email(subject=_('Validate new email address'),
message=user.change_email_template(country_code))
except:
logger.error(f'METHOD_NAME: {change_email_address.__name__}\n'
f'DETAIL: Exception occurred for user: {user_id}')