Refactor email templates
This commit is contained in:
parent
e37731b74d
commit
32da8157a6
31 changed files with 476 additions and 2516 deletions
|
|
@ -8,7 +8,10 @@ from datetime import timedelta
|
|||
from django.utils import timezone
|
||||
import uuid
|
||||
import hashlib
|
||||
from django.core.mail import send_mail
|
||||
from django.conf import settings
|
||||
from django.template.loader import render_to_string
|
||||
from django.contrib.sites.models import Site
|
||||
|
||||
ACTIVE_STATES = [
|
||||
TradeAcceptance.AcceptanceState.ACCEPTED,
|
||||
|
|
@ -92,7 +95,6 @@ def trade_acceptance_post_delete(sender, instance, **kwargs):
|
|||
def trade_acceptance_email_notification(sender, instance, created, **kwargs):
|
||||
# Only proceed if the update was triggered by an acting user.
|
||||
if not hasattr(instance, "_actioning_user"):
|
||||
print("No actioning user")
|
||||
return
|
||||
|
||||
# check if were in debug mode
|
||||
|
|
@ -122,42 +124,41 @@ def trade_acceptance_email_notification(sender, instance, created, **kwargs):
|
|||
else:
|
||||
return
|
||||
|
||||
print("state", state)
|
||||
print("acting_user", acting_user)
|
||||
|
||||
# Determine the non-acting party:
|
||||
if instance.trade_offer.initiated_by == acting_user:
|
||||
# The initiator made the change; notify the acceptor.
|
||||
recipient_user = instance.accepted_by.user
|
||||
email_template = "trades/email/trade_update_" + state + ".txt"
|
||||
email_subject = "[PKMN Trade Club] Trade Update"
|
||||
else:
|
||||
# The acceptor made the change; notify the initiator.
|
||||
recipient_user = instance.trade_offer.initiated_by.user
|
||||
email_template = "trades/email/trade_update_" + state + ".txt"
|
||||
email_subject = "[PKMN Trade Club] Trade Update"
|
||||
|
||||
is_initiator = instance.trade_offer.initiated_by == acting_user
|
||||
|
||||
from django.template.loader import render_to_string
|
||||
email_context = {
|
||||
"has_card": instance.requested_card,
|
||||
"want_card": instance.offered_card,
|
||||
"hash": instance.hash,
|
||||
"acting_user": acting_user.username,
|
||||
"acting_user_ign": instance.trade_offer.initiated_by.in_game_name if is_initiator else instance.accepted_by.in_game_name,
|
||||
"recipient_user": recipient_user.username,
|
||||
"recipient_user_ign": instance.accepted_by.in_game_name if is_initiator else instance.trade_offer.initiated_by.in_game_name,
|
||||
"acting_user_friend_code": instance.trade_offer.initiated_by.friend_code if is_initiator else instance.accepted_by.friend_code,
|
||||
"is_initiator": is_initiator,
|
||||
"domain": Site.objects.get_current().domain,
|
||||
"pk": instance.pk,
|
||||
}
|
||||
print("email_context", email_context)
|
||||
email_template = "email/trades/trade_update_" + state + ".txt"
|
||||
email_subject = render_to_string("email/common/subject.txt", email_context)
|
||||
email_subject += render_to_string("email/trades/trade_update_" + state + "_subject.txt", email_context)
|
||||
email_body = render_to_string(email_template, email_context)
|
||||
|
||||
from django.core.mail import send_mail
|
||||
print("initiated by: ", instance.trade_offer.initiated_by, ", accepted by: ", instance.accepted_by, ", acting user: ", acting_user, ", recipient user: ", recipient_user, ", state: ", state)
|
||||
|
||||
send_mail(
|
||||
email_subject,
|
||||
email_body,
|
||||
None, # Django will use DEFAULT_FROM_EMAIL from settings
|
||||
None,
|
||||
[recipient_user.email],
|
||||
)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue