in emails/views.py [0:0]
def wrapped_email_test(request: HttpRequest) -> HttpResponse:
"""
Demonstrate rendering of forwarded HTML emails.
Settings like language can be given in the querystring, otherwise settings
come from a randomly chosen profile.
"""
if all(key in request.GET for key in ("language", "has_premium")):
user_profile = None
else:
user_profile = Profile.objects.order_by("?").first()
if "language" in request.GET:
language = request.GET["language"]
else:
if user_profile is None:
raise ValueError("user_profile must not be None")
language = user_profile.language
if "has_premium" in request.GET:
has_premium = strtobool(request.GET["has_premium"])
else:
if user_profile is None:
raise ValueError("user_profile must not be None")
has_premium = user_profile.has_premium
if "num_level_one_email_trackers_removed" in request.GET:
num_level_one_email_trackers_removed = int(
request.GET["num_level_one_email_trackers_removed"]
)
else:
num_level_one_email_trackers_removed = 0
if "has_tracker_report_link" in request.GET:
has_tracker_report_link = strtobool(request.GET["has_tracker_report_link"])
else:
has_tracker_report_link = False
if has_tracker_report_link:
if num_level_one_email_trackers_removed:
trackers = {
"fake-tracker.example.com": num_level_one_email_trackers_removed
}
else:
trackers = {}
tracker_report_link = (
"/tracker-report/#{"
'"sender": "sender@example.com", '
'"received_at": 1658434657, '
f'"trackers": { json.dumps(trackers) }'
"}"
)
else:
tracker_report_link = ""
path = "/emails/wrapped_email_test"
old_query = {
"language": language,
"has_premium": "Yes" if has_premium else "No",
"has_tracker_report_link": "Yes" if has_tracker_report_link else "No",
"num_level_one_email_trackers_removed": str(
num_level_one_email_trackers_removed
),
}
def switch_link(key, value):
if old_query[key] == value:
return str(value)
new_query = old_query.copy()
new_query[key] = value
return f'<a href="{path}?{urlencode(new_query)}">{value}</a>'
html_content = dedent(
f"""\
<p>
<strong>Email rendering Test</strong>
</p>
<p>Settings: (<a href="{path}">clear all</a>)</p>
<ul>
<li>
<strong>language</strong>:
{escape(language)}
(switch to
{switch_link("language", "en-us")},
{switch_link("language", "de")},
{switch_link("language", "en-gb")},
{switch_link("language", "fr")},
{switch_link("language", "ru-ru")},
{switch_link("language", "es-es")},
{switch_link("language", "pt-br")},
{switch_link("language", "it-it")},
{switch_link("language", "en-ca")},
{switch_link("language", "de-de")},
{switch_link("language", "es-mx")})
</li>
<li>
<strong>has_premium</strong>:
{"Yes" if has_premium else "No"}
(switch to
{switch_link("has_premium", "Yes")},
{switch_link("has_premium", "No")})
</li>
<li>
<strong>has_tracker_report_link</strong>:
{"Yes" if has_tracker_report_link else "No"}
(switch to
{switch_link("has_tracker_report_link", "Yes")},
{switch_link("has_tracker_report_link", "No")})
</li>
<li>
<strong>num_level_one_email_trackers_removed</strong>:
{num_level_one_email_trackers_removed}
(switch to
{switch_link("num_level_one_email_trackers_removed", "0")},
{switch_link("num_level_one_email_trackers_removed", "1")},
{switch_link("num_level_one_email_trackers_removed", "2")})
</li>
</ul>
"""
)
wrapped_email = wrap_html_email(
original_html=html_content,
language=language,
has_premium=has_premium,
tracker_report_link=tracker_report_link,
display_email="test@relay.firefox.com",
num_level_one_email_trackers_removed=num_level_one_email_trackers_removed,
)
return HttpResponse(wrapped_email)