use example.com, guillemets français and base_mail.html

This commit is contained in:
Laetitia Getti 2023-08-09 16:16:29 +02:00 committed by Laetitia Getti
parent 660117af80
commit 4885025e99
7 changed files with 106 additions and 94 deletions

View file

@ -171,8 +171,8 @@ $NAVIGATOR http://127.0.0.1:1080
Les différentes applications Django créées sont :
- ``Order``, pour gérer tout ce qui tourne autour des commandes
- ``Accounts``, pour gérer la création de comptes. Pour la connexion, la déconnexion et le changement de mot de passe, on utilise l'application auth intégrée à Django.
- ``order``, pour gérer tout ce qui tourne autour des commandes
- ``accounts``, pour gérer la création de comptes. Pour la connexion, la déconnexion et le changement de mot de passe, on utilise l'application auth intégrée à Django.
- ``mail``, pour l'envoi des mails.
A l'état actuel, le diagramme de classes est le suivant :

View file

@ -0,0 +1,71 @@
{% load i18n static %}
<html lang="fr">
<head>
<meta charset="UTF-8">
<style type="text/css">
* {
font-family: sans-serif;
}
body {
background-color: f5f5f5;
}
.content {
padding: 1rem 2rem;
width: 80vw;
margin: 0 auto;
background-color: white;
}
p.title {
font-weight: 300;
color: #A52951;
font-size: 2rem;
}
.buttons {
margin-top: 30px;
margin-bottom: 10px;
display: flex;
align-items: center;
}
a {
color: #A52951;
}
a.button {
margin: 0 auto;
padding: 8px 25px;
border-radius: 4px;
text-align: center;
text-decoration: none;
white-space: normal;
border: #A52951 1px solid;
}
img.logo {
width: 200px;
margin: 0 auto;
display: block;
}
</style>
</head>
<body>
<div class="content">
<a href="{{ base_url }}{% url 'home' %}">
<img class="logo" src="{{ base_url }}{% static 'img/logos/logo_la_chariotte.png' %}">
</a>
{% block content %}
{% endblock %}
</div>
</body>
</html>

View file

@ -1,91 +1,28 @@
{% load i18n static %}
{% extends 'mail/base_mail.html' %}
<html lang="fr">
{% block content %}
<head>
<meta charset="UTF-8">
<style type="text/css">
* {
font-family: sans-serif;
}
<p>Merci, {{ order.author.first_name }} !</p>
<p>Votre participation à la commande groupée «{{ order.grouped_order }}» a bien été confirmée.</p>
body {
background-color: f5f5f5;
}
<p><strong>Votre commande :</strong></p>
<ul>
{% for item in order.ordered_items.all %}
<li>{{ item.nb }} × {{ item.item }} : {{ item.get_price }} €</li>
{% endfor %}
</ul>
<p>Prix total de la commande : <strong>{{ order.price }} €</strong>
<p><i>Le paiement n'est pas (encore) pris en charge par la Chariotte. C'est l'organisateur·ice de la commande qui doit vous indiquer les moyens de paiement.</i></p>
.content {
padding: 1rem 2rem;
width: 80vw;
margin: 0 auto;
background-color: white;
}
<p>Rendez-vous le <strong>{{ order.grouped_order.delivery_date }}</strong>{% if order.grouped_order.place %} à <strong>{{ order.grouped_order.place }}</strong>{% endif %} pour récupérer vos produits !</p>
p.title {
font-weight: 300;
color: #A52951;
font-size: 2rem;
}
<p>Pour toute question, vous pouvez contacter l'organisateur·ice de la commande, <strong>{{ order.grouped_order.orga }}</strong> :
<a href="mailto:{{ order.grouped_order.orga.username }}">Envoyer un mail</a></p>
.buttons {
margin-top: 30px;
margin-bottom: 10px;
display: flex;
align-items: center;
}
<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>
</div>
a {
color: #A52951;
}
a.button {
margin: 0 auto;
padding: 8px 25px;
border-radius: 4px;
text-align: center;
text-decoration: none;
white-space: normal;
border: #A52951 1px solid;
}
img.logo {
width: 200px;
margin: 0 auto;
display: block;
}
</style>
</head>
<body>
<div class="content">
<a href="{{ base_url }}{% url 'home' %}">
<img class="logo" src="{{ base_url }}{% static 'img/logos/logo_la_chariotte.png' %}">
</a>
<p>Merci, {{ order.author.first_name }} !</p>
<p>Votre participation à la commande groupée "{{ order.grouped_order }}" a bien été confirmée.</p>
<p><strong>Votre commande :</strong></p>
<ul>
{% for item in order.ordered_items.all %}
<li>{{ item.nb }} × {{ item.item }} : {{ item.get_price }} €</li>
{% endfor %}
</ul>
<p>Prix total de la commande : <strong>{{ order.price }} €</strong>
<p><i>Le paiement n'est pas (encore) pris en charge par la Chariotte. C'est l'organisateur·ice de la commande qui doit vous indiquer les moyens de paiement.</i></p>
<p>Rendez-vous le <strong>{{ order.grouped_order.delivery_date }}</strong>{% if order.grouped_order.place %} à <strong>{{ order.grouped_order.place }}</strong>{% endif %} pour récupérer vos produits !</p>
<p>Pour toute question, vous pouvez contacter l'organisateur·ice de la commande, <strong>{{ order.grouped_order.orga }}</strong> :
<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>
</div>
</content>
</body>
</html>
{% endblock %}

View file

@ -27,15 +27,15 @@ def test_send_order_confirmation_mail(mailoutbox, simple_grouped_order, client):
"first_name": "Prénom",
"last_name": "Nom",
"phone": "0645632569",
"email": "test@mail.fr",
"email": "test@example.com",
"note": "",
},
)
assert len(mailoutbox) == 1
m = mailoutbox[0]
assert m.subject == "[La Chariotte] Votre commande pour Test grouped order"
assert "Votre participation à la commande groupée" in m.body
assert "Votre participation à la commande groupée" in m.alternatives[0][0]
assert (
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"
assert "test@mail.fr" in mailoutbox[0].to
assert "test@example.com" in mailoutbox[0].to

View file

@ -8,12 +8,14 @@ from la_chariotte import settings
def send_order_confirmation_mail(order):
template_name = "mail/order_confirm_mail.html"
subject = f"[La Chariotte] Votre commande pour {order.grouped_order.name}"
subject = (
f"[{settings.PROJECT_NAME}] Votre commande pour «{order.grouped_order.name}»"
)
html_message = render_to_string(
template_name, {"order": order, "base_url": settings.BASE_URL}
)
plain_message = strip_tags(html_message)
from_email = "notification@chariotte.fr"
from_email = settings.DEFAULT_FROM_EMAIL
to = order.author.email
mail.send_mail(subject, plain_message, from_email, [to], html_message=html_message)

View file

@ -8,7 +8,7 @@
</p>
<div class="box">
<p class="title">Merci, {{ order.author.first_name }} !</p>
<p>Votre participation à la commande groupée "{{ order.grouped_order }}" a bien été confirmée et vous avez normalement reçu un mail de confirmation.
<p>Votre participation à la commande groupée «{{ order.grouped_order }}» a bien été confirmée et vous avez normalement reçu un mail de confirmation.
<p><strong>Votre commande :</strong></p>
<ul>

View file

@ -20,6 +20,8 @@ BASE_DIR = Path(__file__).resolve().parent.parent
BASE_URL = os.getenv("BASE_URL", "http://127.0.0.1:8000")
PROJECT_NAME = os.getenv("PROJECT_NAME", "La Chariotte")
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/4.1/howto/deployment/checklist/