Skip to content
Snippets Groups Projects
Commit beecf8da authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Début de correction correction de mail mal formé

parent 91e14019
No related branches found
No related tags found
No related merge requests found
......@@ -325,11 +325,30 @@ class SessionController extends AbstractActionController
return $this->redirect()->toRoute('session/afficher', ['session' => $session->getId()], [], true);
}
public function demanderRetourAction(): Response
public function demanderRetourAction(): ViewModel
{
$session = $this->getSessionService()->getRequestedSession($this);
$this->getSessionService()->demanderRetour($session);
return $this->redirect()->toRoute('session/afficher', ['session' => $session->getId()], [], true);
$mails = $this->getSessionService()->demanderRetour($session);
$probleme = [];
foreach ($mails as $individu => $mail) {
if ($mail === null) {
$probleme[] = $individu;
}
}
if (!empty($probleme)) {
$problemeTexte = "Les stagiaire·s suivant·es n'ont pas pu être prévenu·es : <ul>";
foreach ($probleme as $individu) $problemeTexte .= "<li>" . $individu . "</li>";
$problemeTexte .= "</ul>";
}
$vm = new ViewModel([
'title' => "Demande de retour",
'reponse' => "La demande a bien été effectuée",
'error' => $problemeTexte??null,
]);
$vm->setTemplate('default/reponse');
return $vm;
}
public function cloturerAction(): Response
......
......@@ -294,6 +294,7 @@ class NotificationService
$vars = $this->generateVariableArray($inscrit);
$rendu = $this->getRenduService()->generateRenduByTemplateCode(MailTemplates::SESSION_DEMANDE_RETOUR, $vars);
if ($inscrit->getIndividu() !== null) {
$mail = $this->getMailService()->sendMail($inscrit->getIndividu()->getEmail(), $rendu->getSujet(), $rendu->getCorps(), 'Formation');
$mail->setMotsClefs([$session->generateTag(), $inscrit->generateTag(), $rendu->getTemplate()->generateTag()]);
$this->getMailService()->update($mail);
......@@ -301,6 +302,8 @@ class NotificationService
$this->getObjectManager()->flush($session);
return $mail;
}
return null;
}
/** Notification vers les inscrit·e ayant eu une absence */
public function triggerConstatAbsence(Inscription $inscrit): ?Mail
......
......@@ -24,6 +24,7 @@ use Laminas\Mvc\Controller\AbstractActionController;
use UnicaenApp\Exception\RuntimeException;
use UnicaenEtat\Service\EtatInstance\EtatInstanceServiceAwareTrait;
use UnicaenEtat\Service\EtatType\EtatTypeServiceAwareTrait;
use UnicaenMail\Entity\Db\Mail;
use UnicaenParametre\Service\Parametre\ParametreServiceAwareTrait;
use UnicaenUtilisateur\Entity\Db\UserInterface;
......@@ -419,18 +420,20 @@ class SessionService
return $session;
}
public function demanderRetour(Session $instance): Session
/** @return Mail[] $mails */
public function demanderRetour(Session $instance): array
{
$mails = [];
$this->getEtatInstanceService()->setEtatActif($instance, SessionEtats::ETAT_ATTENTE_RETOURS);
$this->update($instance);
$configuration = $this->getNotificationConfigurationService()->getNotificationConfigurationWithParams("SESSION", MailTemplates::SESSION_DEMANDE_RETOUR, "Demande de retour");
if ($configuration === null OR $configuration->isActive()) {
foreach ($instance->getListePrincipale() as $inscrit) {
$this->getNotificationService()->triggerDemandeRetour($inscrit);
$mails[$inscrit->getIndividu()->getDenomination()] = $this->getNotificationService()->triggerDemandeRetour($inscrit);
}
}
return $instance;
return $mails;
}
public function envoyerAbsence(Session $session, ?Inscription $inscription = null): Session
......
......@@ -153,7 +153,7 @@ $canMesSessions = $this->isAllowed(FormateurPrivileges::getResourceId(FormateurP
<br/>
<a <?php /** @see SessionController::demanderRetourAction() */ ?>
href="<?php echo $this->url('session/demander-retour', ['session' => $session->getId()], [], true); ?>"
class="btn btn-primary">
class="btn btn-primary ajax-modal" data-event="modification">
Demander les retours
</a>
<?php endif; ?>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment