From b4b39af880ddb21b6e87f2d302746779c67313a0 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Metivier <jean-philippe.metivier@unicaen.fr> Date: Fri, 25 Aug 2023 14:55:50 +0200 Subject: [PATCH] =?UTF-8?q?Am=C3=A9lioration=20affichage=20+=20mot=20clef?= =?UTF-8?q?=20mail?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controller/IndicateurController.php | 4 ++ .../IndicateurControllerFactory.php | 4 ++ .../Entity/Db/Indicateur.php | 9 ++++ .../Service/Abonnement/AbonnementService.php | 2 +- .../indicateur/afficher.phtml | 5 +++ .../unicaen-indicateur/indicateur/index.phtml | 41 +++++++++---------- .../tableau-de-bord/index.phtml | 4 +- 7 files changed, 45 insertions(+), 24 deletions(-) diff --git a/src/UnicaenIndicateur/Controller/IndicateurController.php b/src/UnicaenIndicateur/Controller/IndicateurController.php index cfb8ab8..c5a0112 100644 --- a/src/UnicaenIndicateur/Controller/IndicateurController.php +++ b/src/UnicaenIndicateur/Controller/IndicateurController.php @@ -9,6 +9,7 @@ use UnicaenIndicateur\Form\Indicateur\IndicateurFormAwareTrait; use UnicaenIndicateur\Service\Abonnement\AbonnementServiceAwareTrait; use UnicaenIndicateur\Service\Indicateur\IndicateurServiceAwareTrait; use UnicaenApp\View\Model\CsvModel; +use UnicaenMail\Service\Mail\MailServiceAwareTrait; use UnicaenUtilisateur\Service\User\UserServiceAwareTrait; use Laminas\Http\Request; use Laminas\Mvc\Controller\AbstractActionController; @@ -18,6 +19,7 @@ class IndicateurController extends AbstractActionController { use IndicateurServiceAwareTrait; use UserServiceAwareTrait; use AbonnementServiceAwareTrait; + use MailServiceAwareTrait; use IndicateurFormAwareTrait; @@ -41,6 +43,7 @@ class IndicateurController extends AbstractActionController { public function afficherAction() : ViewModel { $indicateur = $this->getIndicateurService()->getRequestedIndicateur($this); + $mails = $this->getMailService()->getMailsByMotClef($indicateur->generateTag()); $exists = $this->getIndicateurService()->verifierExistanceMaterializedView($indicateur->getViewId()); if ($exists === true) $result = $this->getIndicateurService()->getIndicateurData($indicateur); @@ -50,6 +53,7 @@ class IndicateurController extends AbstractActionController { 'exists' => $exists, 'header' => ($exists)?$result[0]:null, 'data' => ($exists)?$result[1]:null, + 'mails' => $mails, ]); } diff --git a/src/UnicaenIndicateur/Controller/IndicateurControllerFactory.php b/src/UnicaenIndicateur/Controller/IndicateurControllerFactory.php index bcf2ca0..e262a73 100644 --- a/src/UnicaenIndicateur/Controller/IndicateurControllerFactory.php +++ b/src/UnicaenIndicateur/Controller/IndicateurControllerFactory.php @@ -8,6 +8,7 @@ use UnicaenIndicateur\Form\Indicateur\IndicateurForm; use UnicaenIndicateur\Service\Abonnement\AbonnementService; use UnicaenIndicateur\Service\Indicateur\IndicateurService; use Interop\Container\ContainerInterface; +use UnicaenMail\Service\Mail\MailService; use UnicaenUtilisateur\Service\User\UserService;; class IndicateurControllerFactory { @@ -23,10 +24,12 @@ class IndicateurControllerFactory { /** * @var AbonnementService $abonnementService * @var IndicateurService $indicateurService + * @var MailService $mailService * @var UserService $userService */ $abonnementService = $container->get(AbonnementService::class); $indicateurService = $container->get(IndicateurService::class); + $mailService = $container->get(MailService::class); $userService = $container->get(UserService::class); /** @@ -37,6 +40,7 @@ class IndicateurControllerFactory { $controller = new IndicateurController(); $controller->setAbonnementService($abonnementService); $controller->setIndicateurService($indicateurService); + $controller->setMailService($mailService); $controller->setUserService($userService); $controller->setIndicateurForm($indicateurForm); return $controller; diff --git a/src/UnicaenIndicateur/Entity/Db/Indicateur.php b/src/UnicaenIndicateur/Entity/Db/Indicateur.php index fbe3235..dccec39 100644 --- a/src/UnicaenIndicateur/Entity/Db/Indicateur.php +++ b/src/UnicaenIndicateur/Entity/Db/Indicateur.php @@ -139,5 +139,14 @@ class Indicateur { { return $this->tableaux->toArray(); } + + /** MACRO **********************************************************************/ + + /** @noinspection PhpUnused */ + public function generateTag() : string + { + return 'Indicateur_' . $this->getId(); + } + } \ No newline at end of file diff --git a/src/UnicaenIndicateur/Service/Abonnement/AbonnementService.php b/src/UnicaenIndicateur/Service/Abonnement/AbonnementService.php index 6e7f59a..2674914 100644 --- a/src/UnicaenIndicateur/Service/Abonnement/AbonnementService.php +++ b/src/UnicaenIndicateur/Service/Abonnement/AbonnementService.php @@ -161,7 +161,7 @@ class AbonnementService { foreach ($abonnements as $abonnement) { $adresse = $abonnement->getUser()->getEmail(); $mail = $this->getMailService()->sendMail($adresse, $titre, $texte); - $mail->setEntity($indicateur); + $mail->setMotsClefs([$indicateur->generateTag()]); $this->getMailService()->update($mail); $abonnement->setDernierEnvoi(new DateTime()); $this->update($abonnement); diff --git a/view/unicaen-indicateur/indicateur/afficher.phtml b/view/unicaen-indicateur/indicateur/afficher.phtml index 9344841..4b348f2 100644 --- a/view/unicaen-indicateur/indicateur/afficher.phtml +++ b/view/unicaen-indicateur/indicateur/afficher.phtml @@ -90,6 +90,11 @@ use UnicaenIndicateur\Entity\Db\Indicateur; </tbody> </table> </div> + <div id="mail" class="tab-pane " role="mail"> + + <br> + <?php echo $this->mails($mails); ?> + </div> </div> <?php endif; ?> diff --git a/view/unicaen-indicateur/indicateur/index.phtml b/view/unicaen-indicateur/indicateur/index.phtml index b3e77f1..612ebe6 100644 --- a/view/unicaen-indicateur/indicateur/index.phtml +++ b/view/unicaen-indicateur/indicateur/index.phtml @@ -1,6 +1,7 @@ <?php /** + * @see \UnicaenIndicateur\Controller\IndicateurController::indexAction() * @var Indicateur[] $indicateurs * @var Abonnement[] $abonnements */ @@ -18,12 +19,12 @@ $canTableaux = $this->isAllowed(TableaudebordPrivileges::getResourceId(Tableaude ?> <div class="row"> - <div class="col-md-9"> + <div class="col-md-6"> <h1 class="page-header"> - Indicateurs + Gestion des indicateurs </h1> </div> - <div class="col-md-3"> + <div class="col-md-6"> <?php if ($canTableaux) : ?> <?php /** @see \UnicaenIndicateur\Controller\TableauDeBordController::indexAction() */ ?> <a href="<?php echo $this->url('tableau-de-bord',[], [], true); ?>" class="btn btn-secondary"> @@ -36,25 +37,23 @@ $canTableaux = $this->isAllowed(TableaudebordPrivileges::getResourceId(Tableaude <div class="main"> - <div class="row"> - <?php if ($canEditer) :?> - <?php /** @see IndicateurController::creerAction() */?> - <a href="<?php echo $this->url("indicateur/creer", [], [], true); ?>" - class="btn btn-primary ajax-modal action" data-event="modification" - > - <span class="icon icon-ajouter"></span> - Créer un nouvel indicateur - </a> + <?php if ($canEditer) :?> + <?php /** @see IndicateurController::creerAction() */?> + <a href="<?php echo $this->url("indicateur/creer", [], [], true); ?>" + class="btn btn-primary ajax-modal action" data-event="modification" + > + <span class="icon icon-ajouter"></span> + Créer un nouvel indicateur + </a> - <?php /** @see AbonnementController::notifierAction() */?> - <a href="<?php echo $this->url("abonnement/notifier", [], [], true); ?>" - class="btn btn-primary action" - > - <span class="icon icon-checked"></span> - Notifier - </a> - <?php endif; ?> - </div> + <?php /** @see AbonnementController::notifierAction() */?> + <a href="<?php echo $this->url("abonnement/notifier", [], [], true); ?>" + class="btn btn-primary action" + > + <span class="icon icon-mail"></span> + Notifier + </a> + <?php endif; ?> <table id="datatable" class="table table-condensed"> <thead> diff --git a/view/unicaen-indicateur/tableau-de-bord/index.phtml b/view/unicaen-indicateur/tableau-de-bord/index.phtml index 2cf0542..fd05d36 100644 --- a/view/unicaen-indicateur/tableau-de-bord/index.phtml +++ b/view/unicaen-indicateur/tableau-de-bord/index.phtml @@ -20,12 +20,12 @@ $canIndicateurs = $this->isAllowed(IndicateurPrivileges::getResourceId(Indicateu ?> <div class="row"> - <div class="col-md-9"> + <div class="col-md-6"> <h1 class="page-header"> Gestion des tableaux de bord </h1> </div> - <div class="col-md-3"> + <div class="col-md-6"> <a href="<?php echo $this->url('indicateurs', [], [], true); ?>" class="btn btn-secondary"> <span class="icon icon-lister"></span> -- GitLab