diff --git a/src/UnicaenIndicateur/Controller/IndicateurController.php b/src/UnicaenIndicateur/Controller/IndicateurController.php index cfb8ab881e2c6e3655f78afbdc58cb6ad25da815..c5a011243cd4aeae90b9f377142c3dc058372146 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 bcf2ca045b946f743363f832b074db6fcbba3bf5..e262a73994b415c6a8652217ac8538d48b2a96aa 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 fbe3235505dab6510931f247775c8b1070897f26..dccec39170699c3f96f012a10a75bffa119332ad 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 6e7f59a3ff1eba44494bee605e9dbdc2ae8528ac..2674914599ed6eacc333414f3f5f7396c32a4e25 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 934484108005e3c21eff3305e73b923adfd53699..4b348f23077f2439a8808fd7073131d127a351d2 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 b3e77f16080af38fef94dec656a393f4653aa0ab..612ebe6374d3b972543b74c0517fd1a3bd4dd491 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 2cf0542e6e18018cdf135ccaeb384430f8f8e00a..fd05d36e57b046e2690aae674c91ada15e7b0d33 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>