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 ### 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. 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, delivery_date=date,
deadline=deadline, deadline=deadline,
) )
grouped_order.create_code_from_pk()
grouped_order.save()
item = Item.objects.create(name="test item", grouped_order=grouped_order, price=2) item = Item.objects.create(name="test item", grouped_order=grouped_order, price=2)
return grouped_order return grouped_order

View file

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

View file

@ -17,7 +17,7 @@ def test_send_order_confirmation_mail(mailoutbox, simple_grouped_order, client):
order_url = reverse( order_url = reverse(
"order:order", "order:order",
kwargs={ kwargs={
"grouped_order_id": simple_grouped_order.pk, "code": simple_grouped_order.code,
}, },
) )
response = client.post( response = client.post(
@ -34,7 +34,8 @@ def test_send_order_confirmation_mail(mailoutbox, simple_grouped_order, client):
assert len(mailoutbox) == 1 assert len(mailoutbox) == 1
m = mailoutbox[0] m = mailoutbox[0]
assert ( 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 f"{settings.BASE_URL}" in m.alternatives[0][0]
assert m.alternatives[0][1] == "text/html" assert m.alternatives[0][1] == "text/html"

View file

@ -1,3 +1,4 @@
import html2text
from django.core import mail from django.core import mail
from django.template.loader import render_to_string from django.template.loader import render_to_string
from django.utils.html import strip_tags from django.utils.html import strip_tags
@ -14,7 +15,12 @@ def send_order_confirmation_mail(order):
html_message = render_to_string( html_message = render_to_string(
template_name, {"order": order, "base_url": settings.BASE_URL} 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 from_email = settings.DEFAULT_FROM_EMAIL
to = order.author.email to = order.author.email

View file

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