We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Untranslated email subject
### Describe the bug

We just got an email from Cato:

<img width="655" alt="image" src="https://user-images.githubusercontent.com/1576660/191570837-0b3bf3e8-4c38-4113-8351-b505d83e97ea.png">



--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `website/members/emails.py`
Content:
```
1 """The emails defined by the members package."""
2 from datetime import timedelta
3 import logging
4 
5 from django.conf import settings
6 from django.core.mail import EmailMultiAlternatives
7 from django.template.loader import get_template
8 from django.core import mail
9 from django.template import loader
10 from django.template.defaultfilters import floatformat
11 from django.urls import reverse
12 from django.utils import timezone
13 from django.utils.translation import gettext as _
14 
15 from members.models import Member, Membership
16 
17 logger = logging.getLogger(__name__)
18 
19 
20 def send_membership_announcement(dry_run=False):
21     """Send an email to all members with a never ending membership excluding honorary members.
22 
23     :param dry_run: does not really send emails if True
24     """
25     members = (
26         Member.current_members.filter(membership__since__lt=timezone.now())
27         .filter(membership__until__isnull=True)
28         .exclude(membership__type=Membership.HONORARY)
29         .exclude(email="")
30         .distinct()
31     )
32 
33     with mail.get_connection() as connection:
34         for member in members:
35             logger.info("Sent email to %s (%s)", member.get_full_name(), member.email)
36             if not dry_run:
37                 email_body = loader.render_to_string(
38                     "members/email/membership_announcement.txt",
39                     {"name": member.get_full_name()},
40                 )
41                 mail.EmailMessage(
42                     f"[THALIA] {_('Membership announcement')}",
43                     email_body,
44                     settings.DEFAULT_FROM_EMAIL,
45                     [member.email],
46                     bcc=[settings.BOARD_NOTIFICATION_ADDRESS],
47                     connection=connection,
48                 ).send()
49 
50         if not dry_run:
51             mail.mail_managers(
52                 _("Membership announcement sent"),
53                 loader.render_to_string(
54                     "members/email/membership_announcement_notification.txt",
55                     {"members": members},
56                 ),
57                 connection=connection,
58             )
59 
60 
61 def send_information_request(dry_run=False):
62     """Send an email to all members to have them check their personal information.
63 
64     :param dry_run: does not really send emails if True
65     """
66     members = Member.current_members.all().exclude(email="")
67 
68     with mail.get_connection() as connection:
69         for member in members:
70             logger.info("Sent email to %s (%s)", member.get_full_name(), member.email)
71             if not dry_run:
72 
73                 email_context = {
74                     k: x if x else ""
75                     for k, x in {
76                         "name": member.first_name,
77                         "username": member.username,
78                         "full_name": member.get_full_name(),
79                         "address_street": member.profile.address_street,
80                         "address_street2": member.profile.address_street2,
81                         "address_postal_code": member.profile.address_postal_code,
82                         "address_city": member.profile.address_city,
83                         "address_country": member.profile.get_address_country_display(),
84                         "phone_number": member.profile.phone_number,
85                         "birthday": member.profile.birthday,
86                         "email": member.email,
87                         "student_number": member.profile.student_number,
88                         "starting_year": member.profile.starting_year,
89                         "programme": member.profile.get_programme_display(),
90                     }.items()
91                 }
92                 html_template = get_template("members/email/information_check.html")
93                 text_template = get_template("members/email/information_check.txt")
94                 subject = "[THALIA] " + _("Membership information check")
95                 html_message = html_template.render(email_context)
96                 text_message = text_template.render(email_context)
97 
98                 msg = EmailMultiAlternatives(
99                     subject,
100                     text_message,
101                     settings.DEFAULT_FROM_EMAIL,
102                     [member.email],
103                 )
104                 msg.attach_alternative(html_message, "text/html")
105                 msg.send()
106 
107         if not dry_run:
108             mail.mail_managers(
109                 _("Membership information check sent"),
110                 loader.render_to_string(
111                     "members/email/information_check_notification.txt",
112                     {"members": members},
113                 ),
114                 connection=connection,
115             )
116 
117 
118 def send_expiration_announcement(dry_run=False):
119     """Send an email to all members whose membership will end in the next 31 days to warn them about this.
120 
121     :param dry_run: does not really send emails if True
122     """
123     expiry_date = timezone.now() + timedelta(days=31)
124     members = (
125         Member.current_members.filter(membership__until__lte=expiry_date)
126         .exclude(membership__until__isnull=True)
127         .exclude(email="")
128         .distinct()
129     )
130 
131     with mail.get_connection() as connection:
132         for member in members:
133             logger.info("Sent email to %s (%s)", member.get_full_name(), member.email)
134             if not dry_run:
135 
136                 renewal_url = settings.BASE_URL + reverse("registrations:renew")
137                 email_body = loader.render_to_string(
138                     "members/email/expiration_announcement.txt",
139                     {
140                         "name": member.get_full_name(),
141                         "membership_price": floatformat(
142                             settings.MEMBERSHIP_PRICES["year"], 2
143                         ),
144                         "renewal_url": renewal_url,
145                     },
146                 )
147                 mail.EmailMessage(
148                     f"[THALIA] {_('Membership expiration announcement')}",
149                     email_body,
150                     settings.DEFAULT_FROM_EMAIL,
151                     [member.email],
152                     bcc=[settings.BOARD_NOTIFICATION_ADDRESS],
153                     connection=connection,
154                 ).send()
155 
156         if not dry_run:
157             mail.mail_managers(
158                 _("Membership expiration announcement sent"),
159                 loader.render_to_string(
160                     "members/email/expiration_announcement_notification.txt",
161                     {"members": members},
162                 ),
163                 connection=connection,
164             )
165 
166 
167 def send_welcome_message(user, password):
168     """Send an email to a new mail welcoming them.
169 
170     :param user: the new user
171     :param password: randomly generated password
172     """
173     email_body = loader.render_to_string(
174         "members/email/welcome.txt",
175         {
176             "full_name": user.get_full_name(),
177             "username": user.username,
178             "password": password,
179             "url": settings.BASE_URL,
180         },
181     )
182     user.email_user(_("Welcome to Study Association Thalia"), email_body)
183 
184 
185 def send_email_change_confirmation_messages(change_request):
186     """Send emails to the old and new email address of a member to confirm the email change.
187 
188     :param change_request the email change request entered by the user
189     """
190     member = change_request.member
191 
192     confirm_link = settings.BASE_URL + reverse(
193         "members:email-change-confirm",
194         args=[change_request.confirm_key],
195     )
196     mail.EmailMessage(
197         f"[THALIA] {_('Please confirm your email change')}",
198         loader.render_to_string(
199             "members/email/email_change_confirm.txt",
200             {
201                 "confirm_link": confirm_link,
202                 "name": member.first_name,
203             },
204         ),
205         settings.DEFAULT_FROM_EMAIL,
206         [member.email],
207     ).send()
208 
209     confirm_link = settings.BASE_URL + reverse(
210         "members:email-change-verify",
211         args=[change_request.verify_key],
212     )
213     mail.EmailMessage(
214         f"[THALIA] {_('Please verify your email address')}",
215         loader.render_to_string(
216             "members/email/email_change_verify.txt",
217             {
218                 "confirm_link": confirm_link,
219                 "name": member.first_name,
220             },
221         ),
222         settings.DEFAULT_FROM_EMAIL,
223         [change_request.email],
224     ).send()
225 
226 
227 def send_email_change_completion_message(change_request):
228     """Send email to the member to confirm the email change.
229 
230     :param change_request the email change request entered by the user
231     """
232     change_request.member.email_user(
233         "[THALIA] {_('Your email address has been changed')}",
234         loader.render_to_string(
235             "members/email/email_change_completed.txt",
236             {"name": change_request.member.first_name},
237         ),
238     )
239
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/website/members/emails.py b/website/members/emails.py
--- a/website/members/emails.py
+++ b/website/members/emails.py
@@ -230,7 +230,7 @@
     :param change_request the email change request entered by the user
     """
     change_request.member.email_user(
-        "[THALIA] {_('Your email address has been changed')}",
+        f"[THALIA] {_('Your email address has been changed')}",
         loader.render_to_string(
             "members/email/email_change_completed.txt",
             {"name": change_request.member.first_name},

{"golden_diff": "diff --git a/website/members/emails.py b/website/members/emails.py\n--- a/website/members/emails.py\n+++ b/website/members/emails.py\n@@ -230,7 +230,7 @@\n     :param change_request the email change request entered by the user\n     \"\"\"\n     change_request.member.email_user(\n-        \"[THALIA] {_('Your email address has been changed')}\",\n+        f\"[THALIA] {_('Your email address has been changed')}\",\n         loader.render_to_string(\n             \"members/email/email_change_completed.txt\",\n             {\"name\": change_request.member.first_name},\n", "issue": "Untranslated email subject\n### Describe the bug\r\n\r\nWe just got an email from Cato:\r\n\r\n<img width=\"655\" alt=\"image\" src=\"https://user-images.githubusercontent.com/1576660/191570837-0b3bf3e8-4c38-4113-8351-b505d83e97ea.png\">\r\n\r\n\n", "before_files": [{"content": "\"\"\"The emails defined by the members package.\"\"\"\nfrom datetime import timedelta\nimport logging\n\nfrom django.conf import settings\nfrom django.core.mail import EmailMultiAlternatives\nfrom django.template.loader import get_template\nfrom django.core import mail\nfrom django.template import loader\nfrom django.template.defaultfilters import floatformat\nfrom django.urls import reverse\nfrom django.utils import timezone\nfrom django.utils.translation import gettext as _\n\nfrom members.models import Member, Membership\n\nlogger = logging.getLogger(__name__)\n\n\ndef send_membership_announcement(dry_run=False):\n    \"\"\"Send an email to all members with a never ending membership excluding honorary members.\n\n    :param dry_run: does not really send emails if True\n    \"\"\"\n    members = (\n        Member.current_members.filter(membership__since__lt=timezone.now())\n        .filter(membership__until__isnull=True)\n        .exclude(membership__type=Membership.HONORARY)\n        .exclude(email=\"\")\n        .distinct()\n    )\n\n    with mail.get_connection() as connection:\n        for member in members:\n            logger.info(\"Sent email to %s (%s)\", member.get_full_name(), member.email)\n            if not dry_run:\n                email_body = loader.render_to_string(\n                    \"members/email/membership_announcement.txt\",\n                    {\"name\": member.get_full_name()},\n                )\n                mail.EmailMessage(\n                    f\"[THALIA] {_('Membership announcement')}\",\n                    email_body,\n                    settings.DEFAULT_FROM_EMAIL,\n                    [member.email],\n                    bcc=[settings.BOARD_NOTIFICATION_ADDRESS],\n                    connection=connection,\n                ).send()\n\n        if not dry_run:\n            mail.mail_managers(\n                _(\"Membership announcement sent\"),\n                loader.render_to_string(\n                    \"members/email/membership_announcement_notification.txt\",\n                    {\"members\": members},\n                ),\n                connection=connection,\n            )\n\n\ndef send_information_request(dry_run=False):\n    \"\"\"Send an email to all members to have them check their personal information.\n\n    :param dry_run: does not really send emails if True\n    \"\"\"\n    members = Member.current_members.all().exclude(email=\"\")\n\n    with mail.get_connection() as connection:\n        for member in members:\n            logger.info(\"Sent email to %s (%s)\", member.get_full_name(), member.email)\n            if not dry_run:\n\n                email_context = {\n                    k: x if x else \"\"\n                    for k, x in {\n                        \"name\": member.first_name,\n                        \"username\": member.username,\n                        \"full_name\": member.get_full_name(),\n                        \"address_street\": member.profile.address_street,\n                        \"address_street2\": member.profile.address_street2,\n                        \"address_postal_code\": member.profile.address_postal_code,\n                        \"address_city\": member.profile.address_city,\n                        \"address_country\": member.profile.get_address_country_display(),\n                        \"phone_number\": member.profile.phone_number,\n                        \"birthday\": member.profile.birthday,\n                        \"email\": member.email,\n                        \"student_number\": member.profile.student_number,\n                        \"starting_year\": member.profile.starting_year,\n                        \"programme\": member.profile.get_programme_display(),\n                    }.items()\n                }\n                html_template = get_template(\"members/email/information_check.html\")\n                text_template = get_template(\"members/email/information_check.txt\")\n                subject = \"[THALIA] \" + _(\"Membership information check\")\n                html_message = html_template.render(email_context)\n                text_message = text_template.render(email_context)\n\n                msg = EmailMultiAlternatives(\n                    subject,\n                    text_message,\n                    settings.DEFAULT_FROM_EMAIL,\n                    [member.email],\n                )\n                msg.attach_alternative(html_message, \"text/html\")\n                msg.send()\n\n        if not dry_run:\n            mail.mail_managers(\n                _(\"Membership information check sent\"),\n                loader.render_to_string(\n                    \"members/email/information_check_notification.txt\",\n                    {\"members\": members},\n                ),\n                connection=connection,\n            )\n\n\ndef send_expiration_announcement(dry_run=False):\n    \"\"\"Send an email to all members whose membership will end in the next 31 days to warn them about this.\n\n    :param dry_run: does not really send emails if True\n    \"\"\"\n    expiry_date = timezone.now() + timedelta(days=31)\n    members = (\n        Member.current_members.filter(membership__until__lte=expiry_date)\n        .exclude(membership__until__isnull=True)\n        .exclude(email=\"\")\n        .distinct()\n    )\n\n    with mail.get_connection() as connection:\n        for member in members:\n            logger.info(\"Sent email to %s (%s)\", member.get_full_name(), member.email)\n            if not dry_run:\n\n                renewal_url = settings.BASE_URL + reverse(\"registrations:renew\")\n                email_body = loader.render_to_string(\n                    \"members/email/expiration_announcement.txt\",\n                    {\n                        \"name\": member.get_full_name(),\n                        \"membership_price\": floatformat(\n                            settings.MEMBERSHIP_PRICES[\"year\"], 2\n                        ),\n                        \"renewal_url\": renewal_url,\n                    },\n                )\n                mail.EmailMessage(\n                    f\"[THALIA] {_('Membership expiration announcement')}\",\n                    email_body,\n                    settings.DEFAULT_FROM_EMAIL,\n                    [member.email],\n                    bcc=[settings.BOARD_NOTIFICATION_ADDRESS],\n                    connection=connection,\n                ).send()\n\n        if not dry_run:\n            mail.mail_managers(\n                _(\"Membership expiration announcement sent\"),\n                loader.render_to_string(\n                    \"members/email/expiration_announcement_notification.txt\",\n                    {\"members\": members},\n                ),\n                connection=connection,\n            )\n\n\ndef send_welcome_message(user, password):\n    \"\"\"Send an email to a new mail welcoming them.\n\n    :param user: the new user\n    :param password: randomly generated password\n    \"\"\"\n    email_body = loader.render_to_string(\n        \"members/email/welcome.txt\",\n        {\n            \"full_name\": user.get_full_name(),\n            \"username\": user.username,\n            \"password\": password,\n            \"url\": settings.BASE_URL,\n        },\n    )\n    user.email_user(_(\"Welcome to Study Association Thalia\"), email_body)\n\n\ndef send_email_change_confirmation_messages(change_request):\n    \"\"\"Send emails to the old and new email address of a member to confirm the email change.\n\n    :param change_request the email change request entered by the user\n    \"\"\"\n    member = change_request.member\n\n    confirm_link = settings.BASE_URL + reverse(\n        \"members:email-change-confirm\",\n        args=[change_request.confirm_key],\n    )\n    mail.EmailMessage(\n        f\"[THALIA] {_('Please confirm your email change')}\",\n        loader.render_to_string(\n            \"members/email/email_change_confirm.txt\",\n            {\n                \"confirm_link\": confirm_link,\n                \"name\": member.first_name,\n            },\n        ),\n        settings.DEFAULT_FROM_EMAIL,\n        [member.email],\n    ).send()\n\n    confirm_link = settings.BASE_URL + reverse(\n        \"members:email-change-verify\",\n        args=[change_request.verify_key],\n    )\n    mail.EmailMessage(\n        f\"[THALIA] {_('Please verify your email address')}\",\n        loader.render_to_string(\n            \"members/email/email_change_verify.txt\",\n            {\n                \"confirm_link\": confirm_link,\n                \"name\": member.first_name,\n            },\n        ),\n        settings.DEFAULT_FROM_EMAIL,\n        [change_request.email],\n    ).send()\n\n\ndef send_email_change_completion_message(change_request):\n    \"\"\"Send email to the member to confirm the email change.\n\n    :param change_request the email change request entered by the user\n    \"\"\"\n    change_request.member.email_user(\n        \"[THALIA] {_('Your email address has been changed')}\",\n        loader.render_to_string(\n            \"members/email/email_change_completed.txt\",\n            {\"name\": change_request.member.first_name},\n        ),\n    )\n", "path": "website/members/emails.py"}], "after_files": [{"content": "\"\"\"The emails defined by the members package.\"\"\"\nfrom datetime import timedelta\nimport logging\n\nfrom django.conf import settings\nfrom django.core.mail import EmailMultiAlternatives\nfrom django.template.loader import get_template\nfrom django.core import mail\nfrom django.template import loader\nfrom django.template.defaultfilters import floatformat\nfrom django.urls import reverse\nfrom django.utils import timezone\nfrom django.utils.translation import gettext as _\n\nfrom members.models import Member, Membership\n\nlogger = logging.getLogger(__name__)\n\n\ndef send_membership_announcement(dry_run=False):\n    \"\"\"Send an email to all members with a never ending membership excluding honorary members.\n\n    :param dry_run: does not really send emails if True\n    \"\"\"\n    members = (\n        Member.current_members.filter(membership__since__lt=timezone.now())\n        .filter(membership__until__isnull=True)\n        .exclude(membership__type=Membership.HONORARY)\n        .exclude(email=\"\")\n        .distinct()\n    )\n\n    with mail.get_connection() as connection:\n        for member in members:\n            logger.info(\"Sent email to %s (%s)\", member.get_full_name(), member.email)\n            if not dry_run:\n                email_body = loader.render_to_string(\n                    \"members/email/membership_announcement.txt\",\n                    {\"name\": member.get_full_name()},\n                )\n                mail.EmailMessage(\n                    f\"[THALIA] {_('Membership announcement')}\",\n                    email_body,\n                    settings.DEFAULT_FROM_EMAIL,\n                    [member.email],\n                    bcc=[settings.BOARD_NOTIFICATION_ADDRESS],\n                    connection=connection,\n                ).send()\n\n        if not dry_run:\n            mail.mail_managers(\n                _(\"Membership announcement sent\"),\n                loader.render_to_string(\n                    \"members/email/membership_announcement_notification.txt\",\n                    {\"members\": members},\n                ),\n                connection=connection,\n            )\n\n\ndef send_information_request(dry_run=False):\n    \"\"\"Send an email to all members to have them check their personal information.\n\n    :param dry_run: does not really send emails if True\n    \"\"\"\n    members = Member.current_members.all().exclude(email=\"\")\n\n    with mail.get_connection() as connection:\n        for member in members:\n            logger.info(\"Sent email to %s (%s)\", member.get_full_name(), member.email)\n            if not dry_run:\n\n                email_context = {\n                    k: x if x else \"\"\n                    for k, x in {\n                        \"name\": member.first_name,\n                        \"username\": member.username,\n                        \"full_name\": member.get_full_name(),\n                        \"address_street\": member.profile.address_street,\n                        \"address_street2\": member.profile.address_street2,\n                        \"address_postal_code\": member.profile.address_postal_code,\n                        \"address_city\": member.profile.address_city,\n                        \"address_country\": member.profile.get_address_country_display(),\n                        \"phone_number\": member.profile.phone_number,\n                        \"birthday\": member.profile.birthday,\n                        \"email\": member.email,\n                        \"student_number\": member.profile.student_number,\n                        \"starting_year\": member.profile.starting_year,\n                        \"programme\": member.profile.get_programme_display(),\n                    }.items()\n                }\n                html_template = get_template(\"members/email/information_check.html\")\n                text_template = get_template(\"members/email/information_check.txt\")\n                subject = \"[THALIA] \" + _(\"Membership information check\")\n                html_message = html_template.render(email_context)\n                text_message = text_template.render(email_context)\n\n                msg = EmailMultiAlternatives(\n                    subject,\n                    text_message,\n                    settings.DEFAULT_FROM_EMAIL,\n                    [member.email],\n                )\n                msg.attach_alternative(html_message, \"text/html\")\n                msg.send()\n\n        if not dry_run:\n            mail.mail_managers(\n                _(\"Membership information check sent\"),\n                loader.render_to_string(\n                    \"members/email/information_check_notification.txt\",\n                    {\"members\": members},\n                ),\n                connection=connection,\n            )\n\n\ndef send_expiration_announcement(dry_run=False):\n    \"\"\"Send an email to all members whose membership will end in the next 31 days to warn them about this.\n\n    :param dry_run: does not really send emails if True\n    \"\"\"\n    expiry_date = timezone.now() + timedelta(days=31)\n    members = (\n        Member.current_members.filter(membership__until__lte=expiry_date)\n        .exclude(membership__until__isnull=True)\n        .exclude(email=\"\")\n        .distinct()\n    )\n\n    with mail.get_connection() as connection:\n        for member in members:\n            logger.info(\"Sent email to %s (%s)\", member.get_full_name(), member.email)\n            if not dry_run:\n\n                renewal_url = settings.BASE_URL + reverse(\"registrations:renew\")\n                email_body = loader.render_to_string(\n                    \"members/email/expiration_announcement.txt\",\n                    {\n                        \"name\": member.get_full_name(),\n                        \"membership_price\": floatformat(\n                            settings.MEMBERSHIP_PRICES[\"year\"], 2\n                        ),\n                        \"renewal_url\": renewal_url,\n                    },\n                )\n                mail.EmailMessage(\n                    f\"[THALIA] {_('Membership expiration announcement')}\",\n                    email_body,\n                    settings.DEFAULT_FROM_EMAIL,\n                    [member.email],\n                    bcc=[settings.BOARD_NOTIFICATION_ADDRESS],\n                    connection=connection,\n                ).send()\n\n        if not dry_run:\n            mail.mail_managers(\n                _(\"Membership expiration announcement sent\"),\n                loader.render_to_string(\n                    \"members/email/expiration_announcement_notification.txt\",\n                    {\"members\": members},\n                ),\n                connection=connection,\n            )\n\n\ndef send_welcome_message(user, password):\n    \"\"\"Send an email to a new mail welcoming them.\n\n    :param user: the new user\n    :param password: randomly generated password\n    \"\"\"\n    email_body = loader.render_to_string(\n        \"members/email/welcome.txt\",\n        {\n            \"full_name\": user.get_full_name(),\n            \"username\": user.username,\n            \"password\": password,\n            \"url\": settings.BASE_URL,\n        },\n    )\n    user.email_user(_(\"Welcome to Study Association Thalia\"), email_body)\n\n\ndef send_email_change_confirmation_messages(change_request):\n    \"\"\"Send emails to the old and new email address of a member to confirm the email change.\n\n    :param change_request the email change request entered by the user\n    \"\"\"\n    member = change_request.member\n\n    confirm_link = settings.BASE_URL + reverse(\n        \"members:email-change-confirm\",\n        args=[change_request.confirm_key],\n    )\n    mail.EmailMessage(\n        f\"[THALIA] {_('Please confirm your email change')}\",\n        loader.render_to_string(\n            \"members/email/email_change_confirm.txt\",\n            {\n                \"confirm_link\": confirm_link,\n                \"name\": member.first_name,\n            },\n        ),\n        settings.DEFAULT_FROM_EMAIL,\n        [member.email],\n    ).send()\n\n    confirm_link = settings.BASE_URL + reverse(\n        \"members:email-change-verify\",\n        args=[change_request.verify_key],\n    )\n    mail.EmailMessage(\n        f\"[THALIA] {_('Please verify your email address')}\",\n        loader.render_to_string(\n            \"members/email/email_change_verify.txt\",\n            {\n                \"confirm_link\": confirm_link,\n                \"name\": member.first_name,\n            },\n        ),\n        settings.DEFAULT_FROM_EMAIL,\n        [change_request.email],\n    ).send()\n\n\ndef send_email_change_completion_message(change_request):\n    \"\"\"Send email to the member to confirm the email change.\n\n    :param change_request the email change request entered by the user\n    \"\"\"\n    change_request.member.email_user(\n        f\"[THALIA] {_('Your email address has been changed')}\",\n        loader.render_to_string(\n            \"members/email/email_change_completed.txt\",\n            {\"name\": change_request.member.first_name},\n        ),\n    )\n", "path": "website/members/emails.py"}]}