add plain text alternative to mail

This commit is contained in:
Laetitia Getti 2023-08-11 11:21:22 +02:00
parent 4885025e99
commit 8c4f45ac0d
6 changed files with 16 additions and 7 deletions

View file

@ -62,7 +62,7 @@ source .venv/bin/activate
### Installation de la base de données
Chariotte nécessite une base de données, et est actuellement compatible avec PostgreSQL ([instructions d'installation ici](https://www.digitalocean.com/community/tutorials/how-to-install-postgresql-on-ubuntu-20-04-quickstart)).
La Chariotte nécessite une base de données, et est actuellement compatible avec PostgreSQL ([instructions d'installation ici](https://www.digitalocean.com/community/tutorials/how-to-install-postgresql-on-ubuntu-20-04-quickstart)).
Pour le développement, nous vous conseillons de créer une base de données nommée ```chariotte``` accessible par l'utilisateur et le mot de passe du même nom.

View file

@ -33,5 +33,7 @@ def simple_grouped_order(other_user):
delivery_date=date,
deadline=deadline,
)
grouped_order.create_code_from_pk()
grouped_order.save()
item = Item.objects.create(name="test item", grouped_order=grouped_order, price=2)
return grouped_order

View file

@ -20,9 +20,7 @@
<a href="mailto:{{ order.grouped_order.orga.username }}">Envoyer un mail</a></p>
<div class="buttons">
<a class="button" href="[[ base_url }}{% url 'order:grouped_order_detail' order.grouped_order.pk %}">
<i class="fa fa-arrow-left mr-3" aria-hidden="true"></i>Voir la page de commande
</a>
<a class="button" href="{{ base_url }}{% url 'order:grouped_order_detail' order.grouped_order.pk %}">Voir la page de commande</a>
</div>
{% endblock %}

View file

@ -17,7 +17,7 @@ def test_send_order_confirmation_mail(mailoutbox, simple_grouped_order, client):
order_url = reverse(
"order:order",
kwargs={
"grouped_order_id": simple_grouped_order.pk,
"code": simple_grouped_order.code,
},
)
response = client.post(
@ -34,7 +34,8 @@ def test_send_order_confirmation_mail(mailoutbox, simple_grouped_order, client):
assert len(mailoutbox) == 1
m = mailoutbox[0]
assert (
m.subject == f"[{settings.PROJECT_NAME}] Votre commande pour Test grouped order"
m.subject
== f"[{settings.PROJECT_NAME}] Votre commande pour «Test grouped order»"
)
assert f"{settings.BASE_URL}" in m.alternatives[0][0]
assert m.alternatives[0][1] == "text/html"

View file

@ -1,3 +1,4 @@
import html2text
from django.core import mail
from django.template.loader import render_to_string
from django.utils.html import strip_tags
@ -14,7 +15,12 @@ def send_order_confirmation_mail(order):
html_message = render_to_string(
template_name, {"order": order, "base_url": settings.BASE_URL}
)
plain_message = strip_tags(html_message)
# create plain message text from html
plain_message = html2text.html2text(html_message)
# do not render the logo link
plain_message = plain_message[plain_message.rfind("Merci,") :]
from_email = settings.DEFAULT_FROM_EMAIL
to = order.author.email

View file

@ -33,6 +33,8 @@ cssselect2==0.7.0
# via svglib
django==4.2.1
# via la-chariotte (pyproject.toml)
html2text==2020.1.16
# à la main
html5lib==1.1
# via xhtml2pdf
idna==3.4