schon/engine/payments/utils/emailing.py
Egor fureunoir Gorbunov 43dc556063 Features: 1) Migrate from Jazzmin to django-unfold for admin UI;
Fixes: 1) Remove deprecated Jazzmin configuration and replace with unfold dependencies; 2) Update DRF API title to use new PROJECT_NAME; 3) Fix import order and remove unused imports in core/viewsets.py;

Extra: 1) Add PROJECT_NAME to base settings; 2) Update INSTALLED_APPS to include unfold-related apps; 3) Clean up unused config references.
2025-11-15 01:38:14 +03:00

47 lines
1.7 KiB
Python

from datetime import datetime
from celery.app import shared_task
from constance import config
from django.conf import settings
from django.core.mail import EmailMessage
from django.template.loader import render_to_string
from django.utils.translation import activate
from django.utils.translation import gettext_lazy as _
from engine.core.utils import get_dynamic_email_connection
from engine.payments.models import Transaction
@shared_task(queue="default")
def balance_deposit_email(transaction_pk: str) -> tuple[bool, str]:
try:
transaction = Transaction.objects.get(pk=transaction_pk)
except Transaction.DoesNotExist:
return False, f"Transaction not found with the given pk: {transaction_pk}"
if not transaction.balance or not transaction.balance.user:
return False, f"Balance not found for the given transaction pk: {transaction_pk}"
activate(transaction.balance.user.language)
email = EmailMessage(
_(f"{settings.PROJECT_NAME} | balance deposit"),
render_to_string(
template_name="../templates/balance_deposit_email.html",
context={
"amount": transaction.amount,
"balance": transaction.balance.amount,
"user_first_name": transaction.balance.user.first_name,
"project_name": settings.PROJECT_NAME,
"contact_email": config.EMAIL_FROM,
"today": datetime.today(),
},
),
to=[transaction.balance.user.email],
from_email=f"{settings.PROJECT_NAME} <{config.EMAIL_FROM}>",
connection=get_dynamic_email_connection(),
)
email.content_subtype = "html"
email.send()
return True, str(transaction_pk)