Commit 2bdd6151 authored by Mat's avatar Mat

newsletter: calcule une seule fois les variables du body, et non à chaque envoi de lettre

parent 2f105377
...@@ -21,11 +21,11 @@ ...@@ -21,11 +21,11 @@
<h1>{{ subject }}</h1> <h1>{{ subject }}</h1>
<h2> <h2>
Période du {{ lettre.startedAt|date('d-m-Y') }} au {{ lettre.endedAt|date('d-m-Y') }} Période du {{ body.lettre.startedAt|date('d-m-Y') }} au {{ body.lettre.endedAt|date('d-m-Y') }}
</h2> </h2>
<p> <p>
Infolettre {{ lettre.reference }} (#{{ lettre.id }})<br> Infolettre {{ body.lettre.reference }} (#{{ body.lettre.id }})<br>
Statut: {{ lettre.status }}<br> Statut: {{ body.lettre.status }}<br>
</p> </p>
<div> <div>
...@@ -35,21 +35,21 @@ ...@@ -35,21 +35,21 @@
token: {{ to.token }} token: {{ to.token }}
</p> </p>
<p> <p>
Membre du groupe {{ lettre.groupe.nom }}<br> Membre du groupe {{ body.lettre.groupe.nom }}<br>
Adresse du dépôt: {{ lettre.groupe.depot.localisation }}<br> Adresse du dépôt: {{ body.lettre.groupe.depot.localisation }}<br>
Responsable du dépôt: {{ lettre.groupe.depot.responsable }}<br> Responsable du dépôt: {{ body.lettre.groupe.depot.responsable }}<br>
Dépôt des paniers: {{ lettre.groupe.depot.jourPanier }}, {{ lettre.groupe.depot.heurePanier|date('H:i') }} Dépôt des paniers: {{ body.lettre.groupe.depot.jourPanier }}, {{ body.lettre.groupe.depot.heurePanier|date('H:i') }}
</p> </p>
<div> <div>
<p> <p>
Offre {{ lettre.offre.reference }} (#{{ lettre.offre.id }})<br> Offre {{ body.lettre.offre.reference }} (#{{ body.lettre.offre.id }})<br>
Expire le {{ lettre.offre.endedAt|date('d-m-Y, à H:i') }}<br> Expire le {{ body.lettre.offre.endedAt|date('d-m-Y, à H:i') }}<br>
Statut: {{ lettre.offre.status }}<br> Statut: {{ body.lettre.offre.status }}<br>
{{ lettre.offre.sorted }} {{ body.lettre.offre.sorted }}
</p> </p>
<ul> <ul>
{% for legume in lettre.offre.offreLegumes %} {% for legume in body.lettre.offre.offreLegumes %}
<li> <li>
#{{ legume.id }}<br> #{{ legume.id }}<br>
{{ legume.nom }}: {{ legume.description }}<br> {{ legume.nom }}: {{ legume.description }}<br>
...@@ -62,8 +62,8 @@ ...@@ -62,8 +62,8 @@
</a> </a>
</div> </div>
{{ lettre.sorted }} {{ body.lettre.sorted }}
{% for info in lettre.infos %} {% for info in body.lettre.infos %}
<div style="color: {{ info.color }}"> <div style="color: {{ info.color }}">
{% if info.isPost == true %} {% if info.isPost == true %}
<span>{{ info.postedAt|date('d-m-Y, à H:i') }}</span> <span>{{ info.postedAt|date('d-m-Y, à H:i') }}</span>
...@@ -75,8 +75,8 @@ ...@@ -75,8 +75,8 @@
{% endfor %} {% endfor %}
</div> </div>
{#
{{ dump() }} {{ dump() }}
{#
#} #}
</body> </body>
......
...@@ -148,19 +148,17 @@ class Newsletter ...@@ -148,19 +148,17 @@ class Newsletter
* *
* @param array $to * @param array $to
* @param $subject * @param $subject
* @param Lettre $lettre * @param mixed $body
* @return int * @return int
* @throws \Twig_Error_Loader * @throws \Twig_Error_Loader
* @throws \Twig_Error_Runtime * @throws \Twig_Error_Runtime
* @throws \Twig_Error_Syntax * @throws \Twig_Error_Syntax
*/ */
public function sendLettre($to, $subject, Lettre $lettre) public function sendLettre($to, $subject, $body)
{ {
$mailer = $this->container->get('mailer'); $mailer = $this->container->get('mailer');
$twig = $this->container->get('twig'); $twig = $this->container->get('twig');
$itemsSorted = $this->getInfosSorted($this->getBody($lettre));
$message = (new \Swift_Message()) $message = (new \Swift_Message())
->setFrom($this->from) ->setFrom($this->from)
...@@ -170,8 +168,7 @@ class Newsletter ...@@ -170,8 +168,7 @@ class Newsletter
$twig->render('@Potage/Mail/bodyMail.html.twig', array( $twig->render('@Potage/Mail/bodyMail.html.twig', array(
'to' => $to, 'to' => $to,
'subject' => $subject, 'subject' => $subject,
'lettre' => $this->getBody($lettre), 'body' => $body,
'itemsSorted' => $itemsSorted,
)), )),
'text/html' 'text/html'
); );
...@@ -200,6 +197,13 @@ class Newsletter ...@@ -200,6 +197,13 @@ class Newsletter
$offre = $lettre->getOffre(); $offre = $lettre->getOffre();
$groupe = $lettre->getGroupe(); $groupe = $lettre->getGroupe();
$lettre = $this->getBody($lettre);
$itemsSorted = $this->getInfosSorted($lettre);
$body = array(
'lettre' => $lettre,
'itemsSorted' => $itemsSorted
);
/** /**
* Les destinataires du groupe de l'infolettre, * Les destinataires du groupe de l'infolettre,
* un tableau d'utilisteurs * un tableau d'utilisteurs
...@@ -237,7 +241,7 @@ class Newsletter ...@@ -237,7 +241,7 @@ class Newsletter
); //dump($to); ); //dump($to);
// envoi du mail // envoi du mail
$result = $this->sendLettre($to, $subject, $lettre) === 1 ? 'Sent' : 'Error'; $result = $this->sendLettre($to, $subject, $body) === 1 ? 'Sent' : 'Error';
$retour[$i] = array( $retour[$i] = array(
'to' => $to, 'to' => $to,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment