Commit 9aff52d9 authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Corrections de typos + redirection

parent 37d5b08c
Loading
Loading
Loading
Loading
+5 −0
Changes for CHANGELOG.md: 5 added lines, 0 removed lines.
Original line number Diff line number Diff line
Journal des modifications
=========================
4.0.4
-----
- Correction de typos dans mail de feu vert de la soutenance
- Ajout de redirection de mail lorsque certains mails n'ont pas de destinataire "ATTENTION MAIL NON DÉLIVRÉ".

4.0.3
-----
@@ -7,6 +11,7 @@ Journal des modifications
- [FIX] Correction de l'affichage de la date d'historisation dans Individu lié
- [FIX] Correction de la signature de Membre::setEtablissement(?string) qui faisait planter la création de proprosition (lorsqu'aucun établissement n'était fourni)
- Ajout de l'unité de recherche des acteurs (manuel pour le moment) pour améliorer les pages de couverture
- 
4.0.2
-----
- [FIX] Affichage de la bonne adresse électronique institutionnelle sur la fiche thèse 
+75 −8
Changes for module/Soutenance/src/Soutenance/Service/Notifier/NotifierSoutenanceService.php: 75 added lines, 8 removed lines.
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@

namespace Soutenance\Service\Notifier;

use Application\Service\Individu\IndividuServiceAwareTrait;
use Doctorant\Entity\Db\Doctorant;
use Application\Entity\Db\Individu;
use Application\Entity\Db\IndividuRole;
@@ -32,6 +33,7 @@ use Laminas\View\Helper\Url as UrlHelper;
class NotifierSoutenanceService extends NotifierService
{
    use ActeurServiceAwareTrait;
    use IndividuServiceAwareTrait;
    use MembreServiceAwareTrait;
    use RoleServiceAwareTrait;
    use VariableServiceAwareTrait;
@@ -48,6 +50,19 @@ class NotifierSoutenanceService extends NotifierService
        $this->urlHelper = $urlHelper;
    }

    /**
     * @return string[]
     */
    protected function getEmailAdministrateurTechnique() : array
    {
        $individus = $this->getIndividuService()->getRepository()->findByRole(Role::CODE_ADMIN_TECH);
        $emails = [];
        foreach ($individus as $individu) {
            $email = $individu->getEmailUtilisateur();
            if ($email) $emails[] = $email;
        }
        return $emails;
    }
    /**
     * @param These $these
     * @return string
@@ -56,7 +71,6 @@ class NotifierSoutenanceService extends NotifierService
    {
        $variable = $this->variableService->getRepository()->findByCodeAndThese(Variable::CODE_EMAIL_BDD, $these);
        return $variable->getValeur();

    }

    /**
@@ -152,11 +166,25 @@ class NotifierSoutenanceService extends NotifierService
        $emails = [];
        $encadrants = $this->getActeurService()->getRepository()->findEncadrementThese($these);
        foreach ($encadrants as $encadrant) {
            //tentative dans individu
            $email = $encadrant->getIndividu()->getEmail();
            //tentative dans membre
            if ($email === null) {
                $membre = $this->getMembreService()->getMembreByActeur($encadrant);
                if ($membre) $email = $membre->getEmail();
            }
            //tentative dans utilisateur
            if ($email === null) {
                $utilisateurs = $this->getUtilisateurService()->getRepository()->findByIndividu($encadrant->getIndividu());
                foreach ($utilisateurs as $utilisateur) {
                    $email = $utilisateur->getEmail();
                    if ($email !== null) break;
                }
            }
            // echec ...
            if ($email === null) {
                throw new InvalidArgumentException("Pas de mail pour l'encadrant de thèse [".$encadrant->getIndividu()->getNomComplet()."]");
            }
            $emails[] = $email;
        }
        return $emails;
@@ -253,8 +281,21 @@ class NotifierSoutenanceService extends NotifierService
                ]);
            $this->trigger($notif);
        } else {
            throw new InvalidArgumentException("Aucun mail de disponible pour l'unité de recherche (".__METHOD__."::TheseId#".
                $these->getId()."|UniteRecherche#".$these->getUniteRecherche()->getId().")" );
            $emailsAdmin = $this->getEmailAdministrateurTechnique();
            $emailsMdd = $this->fetchEmailMaisonDuDoctorat($these);
            $emails = array_merge($emailsAdmin, $emailsMdd);

            $notif = new Notification();
            $notif
                ->setSubject("ATTENTION MAIL NON DÉLIVRÉ : Demande de validation d'une proposition de soutenance")
                ->setTo($emails)
                ->setTemplatePath('soutenance/notification/validation-structure')
                ->setTemplateVariables([
                    'these' => $these,
                    'type' => 'unité de recherche',
                    'panic' => true,
                ]);
            $this->trigger($notif);
        }
    }

@@ -283,8 +324,21 @@ class NotifierSoutenanceService extends NotifierService
                ]);
            $this->trigger($notif);
        } else {
            throw new InvalidArgumentException("Aucun mail de disponible pour l'école doctorale (".__METHOD__."::TheseId#".
                $these->getId()."|EcoleDoctorale#".$these->getEcoleDoctorale()->getId().")" );
            $emailsAdmin = $this->getEmailAdministrateurTechnique();
            $emailsMdd = $this->fetchEmailMaisonDuDoctorat($these);
            $emails = array_merge($emailsAdmin, $emailsMdd);

            $notif = new Notification();
            $notif
                ->setSubject("ATTENTION MAIL NON DÉLIVRÉ : Demande de validation d'une proposition de soutenance")
                ->setTo($emails)
                ->setTemplatePath('soutenance/notification/validation-structure')
                ->setTemplateVariables([
                    'these' => $these,
                    'type' => 'école doctorale',
                    'panic' => true,
                ]);
            $this->trigger($notif);
        }
    }

@@ -310,8 +364,21 @@ class NotifierSoutenanceService extends NotifierService
                ]);
            $this->trigger($notif);
        } else {
            throw new InvalidArgumentException("Aucun mail de disponible pour l'établissement (".__METHOD__."::TheseId#".
                $these->getId()."|Etablissement#".$these->getEtablissement()->getId().")" );
            $emailsAdmin = $this->getEmailAdministrateurTechnique();
            $emailsMdd = $this->fetchEmailMaisonDuDoctorat($these);
            $emails = array_merge($emailsAdmin, $emailsMdd);

            $notif = new Notification();
            $notif
                ->setSubject("ATTENTION MAIL NON DÉLIVRÉ : Demande de validation d'une proposition de soutenance")
                ->setTo($email)
                ->setTemplatePath('soutenance/notification/validation-structure')
                ->setTemplateVariables([
                    'these' => $these,
                    'type' => 'maison du doctorat',
                    'panic' => true,
                ]);
            $this->trigger($notif);
        }
    }

@@ -657,7 +724,7 @@ class NotifierSoutenanceService extends NotifierService
        if (!empty($emails)) {
            $notif = new Notification();
            $notif
                ->setSubject("La soutenance de " . $these->getDoctorant()->getIndividu() . " a été accepté par votre établissement.")
                ->setSubject("La soutenance de " . $these->getDoctorant()->getIndividu() . " a été acceptée par votre établissement.")
                ->setTo($emails)
                ->setTemplatePath('soutenance/notification/feu-vert-soutenance')
                ->setTemplateVariables([
+2 −2
Changes for module/Soutenance/view/soutenance/notification/feu-vert-soutenance.phtml: 2 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@ $justification = true;
    Bonjour,
</p>
<p>
    La soutenance de <?php echo $these->getDoctorant()->getIndividu(); ?> a été accepté par votre établissement.
    La soutenance de <?php echo $these->getDoctorant()->getIndividu(); ?> a été acceptée par votre établissement.
    Conformément aux informations que vous avez fournies celle-ci se tiendra le
    <em> <?php echo $proposition->getDate()->format(Constants::DATETIME_FORMAT); ?> </em>
    dans <em> <?php echo $proposition->getLieu() ?> </em>.
@@ -65,7 +65,7 @@ $justification = true;
        <li> la maison du doctorat vient de donner son feu vert pour la soutenance </li>
        <li> vous êtes soit :
            <ul>
                <li> un acteur direct de la thèse de <?php $these->getDoctorant()->getIndividu()->getNomComplet(); ?>, </li>
                <li> un acteur direct de la thèse de <?php echo $these->getDoctorant()->getIndividu()->getNomComplet(); ?>, </li>
                <li> un&middot;e responsable de l'école de doctorale gérant la thèse, </li>
                <li> un&middot;e responsable de l'unité de recherche encadrant la thèse. </li>
            </ul>
+1 −2
Changes for module/Soutenance/view/soutenance/notification/validation-structure.phtml: 1 added line, 2 removed lines.
Original line number Diff line number Diff line
@@ -64,8 +64,7 @@ $justification = true;

    <?php if ($panic) : ?>
        <p>
            <strong>Aucun responsable de site n'a pu être trouvé pour le site '<?php echo $these->getEtablissement()->getLibelle(); ?>'</strong>.
            Par conséquent tous les responsables de la structure ont été notifiés.
            <strong>Aucun responsable de site n'a pu être trouvé pour le site '<?php echo $these->getEtablissement()->getLibelle(); ?>'</strong><span class=""></span>
        </p>
    <?php endif; ?>