Skip to content
Snippets Groups Projects
Commit a0f76225 authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Indicateurs : pourvoir envoyer des mails même si un des intervenants dans la liste n'a pas de mail

parent de3cf1e3
No related branches found
No related tags found
No related merge requests found
...@@ -19,6 +19,7 @@ dans le détail des services. ...@@ -19,6 +19,7 @@ dans le détail des services.
* Certains dossiers intervenants pouvaient être validés plusieurs fois. * Certains dossiers intervenants pouvaient être validés plusieurs fois.
Un mécanisme contrôle désormais que le dossier n'est pas déjà validé avant de valider à nouveau. Un mécanisme contrôle désormais que le dossier n'est pas déjà validé avant de valider à nouveau.
* Le contrôle de cohérence des données personnelles prend maintenant en compte le cas des français nés dans un ex-département français d'Algérie. * Le contrôle de cohérence des données personnelles prend maintenant en compte le cas des français nés dans un ex-département français d'Algérie.
* Les mails de notification aux intervenants peuvent être envoyés même si certains d'entre eux n'ont pas de mail. Ces derniers seront listés.
## Nouveautés ## Nouveautés
......
...@@ -32,7 +32,6 @@ use Zend\View\Model\JsonModel; ...@@ -32,7 +32,6 @@ use Zend\View\Model\JsonModel;
use Zend\View\Model\ViewModel; use Zend\View\Model\ViewModel;
class IndicateurController extends AbstractController class IndicateurController extends AbstractController
{ {
use IndicateurServiceAwareTrait; use IndicateurServiceAwareTrait;
...@@ -219,11 +218,7 @@ class IndicateurController extends AbstractController ...@@ -219,11 +218,7 @@ class IndicateurController extends AbstractController
$formatter = new IntervenantEmailFormatter(); $formatter = new IntervenantEmailFormatter();
$formatter->setServiceDossier($this->getServiceDossier()); $formatter->setServiceDossier($this->getServiceDossier());
$emails = $formatter->filter($intervenants); $emails = $formatter->filter($intervenants);
if (($intervenantsWithNoEmail = $formatter->getIntervenantsWithNoEmail())) { $intervenantsWithNoEmail = $formatter->getIntervenantsWithNoEmail();
throw new \LogicException(
"Aucune adresse mail trouvée pour l'intervenant suivant: " . implode(", ", Util::collectionAsOptions($intervenantsWithNoEmail)));
}
$mailer = new IndicateurIntervenantsMailer($this, $indicateur, $this->renderer); $mailer = new IndicateurIntervenantsMailer($this, $indicateur, $this->renderer);
$from = $mailer->getFrom(); $from = $mailer->getFrom();
$subject = $mailer->getDefaultSubject(); $subject = $mailer->getDefaultSubject();
...@@ -253,6 +248,7 @@ class IndicateurController extends AbstractController ...@@ -253,6 +248,7 @@ class IndicateurController extends AbstractController
return [ return [
'title' => "Envoyer un mail aux intervenants", 'title' => "Envoyer un mail aux intervenants",
'count' => count($emails), 'count' => count($emails),
'sansMail' => $intervenantsWithNoEmail,
'form' => $form, 'form' => $form,
]; ];
} }
...@@ -353,8 +349,6 @@ class IndicateurController extends AbstractController ...@@ -353,8 +349,6 @@ class IndicateurController extends AbstractController
/** /**
* Classe dédiée à l'envoi des mails aux intervenants retournés par un indicateur. * Classe dédiée à l'envoi des mails aux intervenants retournés par un indicateur.
*/ */
......
...@@ -42,13 +42,13 @@ class IntervenantEmailFormatter extends AbstractFilter ...@@ -42,13 +42,13 @@ class IntervenantEmailFormatter extends AbstractFilter
} }
if (! $email) { if (! $email) {
$this->intervenantsWithNoEmail[$intervenant->getCode()] = $intervenant; $this->intervenantsWithNoEmail[] = $intervenant;
} }else{
$emails = [ $emails = [
$email => $intervenant->getNomComplet() $email => $intervenant->getNomComplet()
]; ];
} }
}
elseif (is_array($value)) { elseif (is_array($value)) {
foreach ($value as $intervenant) { foreach ($value as $intervenant) {
$emails = array_merge($emails, $this->filterRecursive($intervenant)); $emails = array_merge($emails, $this->filterRecursive($intervenant));
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
* @var $this \Application\View\Renderer\PhpRenderer * @var $this \Application\View\Renderer\PhpRenderer
* @var $title string * @var $title string
* @var $count integer * @var $count integer
* @var $sansMail \Application\Entity\Db\Intervenant[]
* @var $form \Zend\Form\Form * @var $form \Zend\Form\Form
*/ */
...@@ -22,6 +23,18 @@ echo $this->form()->openTag($this->form->setAttribute('id','mail-form')); ...@@ -22,6 +23,18 @@ echo $this->form()->openTag($this->form->setAttribute('id','mail-form'));
</div> </div>
<?= $this->formControlGroup($this->form->get('subject')->setLabel("Objet du mail")) ?> <?= $this->formControlGroup($this->form->get('subject')->setLabel("Objet du mail")) ?>
<?= $this->formControlGroup($this->form->get('body')->setLabel("Corps du mail")->setAttributes(['rows' => 15, 'id' => 'body'])) ?> <?= $this->formControlGroup($this->form->get('body')->setLabel("Corps du mail")->setAttributes(['rows' => 15, 'id' => 'body'])) ?>
<?php if (!empty($sansMail)): ?>
<div class="alert alert-warning">
Attention : faute de disposer d'une adresse mail, le ou les intervenants suivants ne pourront pas être contactés :
<ul>
<?php foreach ($sansMail as $intervenant): ?>
<li><?= $intervenant ?></li>
<?php endforeach; ?>
</ul>
</div>
<?php endif; ?>
<button class="btn btn-default" type="button" onclick="window.history.back()"><i class="fa fa-undo" aria-hidden="true"></i> <button class="btn btn-default" type="button" onclick="window.history.back()"><i class="fa fa-undo" aria-hidden="true"></i>
Retour à l'indicateur Retour à l'indicateur
</button> </button>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment