mirror of
https://framagit.org/la-chariotte/la-chariotte.git
synced 2025-05-01 19:32:26 +02:00
use example.com, guillemets français and base_mail.html
This commit is contained in:
parent
660117af80
commit
4885025e99
7 changed files with 106 additions and 94 deletions
|
@ -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 :
|
||||
|
|
71
la_chariotte/mail/templates/mail/base_mail.html
Normal file
71
la_chariotte/mail/templates/mail/base_mail.html
Normal 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>
|
|
@ -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 %}
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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/
|
||||
|
||||
|
|
Loading…
Reference in a new issue