Skip to content

Commit db46901

Browse files
authored
Expose user name for the visa invitation letter email (#4350)
1 parent 7f14509 commit db46901

File tree

4 files changed

+11
-2
lines changed

4 files changed

+11
-2
lines changed

backend/grants/tasks.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@
1616
logger = logging.getLogger(__name__)
1717

1818

19-
def get_name(user: User, fallback: str = "<no name specified>"):
19+
def get_name(user: User | None, fallback: str = "<no name specified>"):
20+
if not user:
21+
return fallback
22+
2023
return user.full_name or user.name or user.username or fallback
2124

2225

backend/notifications/models.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ class EmailTemplate(TimeStampedModel):
163163
*BASE_PLACEHOLDERS,
164164
"invitation_letter_download_url",
165165
"has_grant",
166+
"user_name",
166167
],
167168
}
168169

backend/visa/tasks.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from django.urls import reverse
2+
from grants.tasks import get_name
23
from notifications.models import EmailTemplate, EmailTemplateIdentifier
34
from pycon.signing import sign_path
45
from integrations import slack
@@ -256,6 +257,7 @@ def send_invitation_letter_via_email(*, invitation_letter_request_id: int):
256257
email_template.send_email(
257258
recipient_email=invitation_letter_request.email,
258259
placeholders={
260+
"user_name": get_name(invitation_letter_request.user, "there"),
259261
"invitation_letter_download_url": invitation_letter_download_url,
260262
"has_grant": invitation_letter_request.has_grant,
261263
},

backend/visa/tests/test_tasks.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,9 @@ def test_notify_new_invitation_letter_request_on_slack(mocker):
384384

385385

386386
def test_send_invitation_letter_via_email():
387-
invitation_letter_request = InvitationLetterRequestFactory()
387+
invitation_letter_request = InvitationLetterRequestFactory(
388+
requester__full_name="Marco",
389+
)
388390

389391
with patch("visa.tasks.EmailTemplate") as mock_email_template:
390392
send_invitation_letter_via_email(
@@ -410,6 +412,7 @@ def test_send_invitation_letter_via_email():
410412
placeholders={
411413
"invitation_letter_download_url": f"https://admin.pycon.it{url_path}?sig={signature}",
412414
"has_grant": False,
415+
"user_name": "Marco",
413416
},
414417
)
415418

0 commit comments

Comments
 (0)