Loading CHANGELOG.md +1 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ Journal des modifications - Menu Formations : élargissement du nombre de rôles habilités à voir le menu. - Page 'Mes formations' pour le doctorant : suppression de la colonne 'Etablissement'. - Déplacement de la config des imports/synchros dans le module Import. - Rapport activité : envoi d'une notification aux gestionnaires d'ED lorsque la direction d'ED a donné son avis. - [FIX] Rapports d'activité : correction du plantage empêchant l'envoi de la notification en cas de validation/avis. - [FIX] Correction de la config des imports api_import_inscription_administrative et api_import_inscription_administrative_apprenant. - [FIX] Rapport CSI : rétablissement du bouton de suppression d'un rapport. Loading module/RapportActivite/config/module.config.php +3 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,8 @@ namespace RapportActivite; use Application\Form\Factory\RapportAvisFormFactory; use Application\Form\Rapport\RapportAvisForm; use Application\Navigation\ApplicationNavigationFactory; use RapportActivite\Rule\Avis\Notification\RapportActiviteAvisNotificationRule; use RapportActivite\Rule\Avis\Notification\RapportActiviteAvisNotificationRuleFactory; use UnicaenSearch\Controller\SearchControllerPluginFactory; use Doctrine\Persistence\Mapping\Driver\MappingDriverChain; use Doctrine\ORM\Mapping\Driver\XmlDriver; Loading Loading @@ -733,6 +735,7 @@ return [ RapportActiviteValidationEventListener::class => RapportActiviteValidationEventListenerFactory::class, OperationAttendueNotificationRule::class => OperationAttendueNotificationRuleFactory::class, RapportActiviteAvisNotificationRule::class => RapportActiviteAvisNotificationRuleFactory::class, RapportActiviteCreationRule::class => RapportActiviteCreationRuleFactory::class, RapportActiviteOperationRule::class => RapportActiviteOperationRuleFactory::class, Loading module/RapportActivite/src/RapportActivite/Event/Avis/RapportActiviteAvisEventListener.php +26 −1 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ use Laminas\EventManager\EventManagerInterface; use RapportActivite\Entity\Db\RapportActiviteAvis; use RapportActivite\Event\Operation\RapportActiviteOperationAbstractEventListener; use RapportActivite\Event\RapportActiviteEvent; use RapportActivite\Rule\Avis\Notification\RapportActiviteAvisNotificationRuleAwareTrait; use RapportActivite\Service\Avis\RapportActiviteAvisService; use RapportActivite\Service\Operation\RapportActiviteOperationServiceAwareTrait; use Webmozart\Assert\Assert; Loading @@ -18,7 +19,7 @@ use Webmozart\Assert\Assert; class RapportActiviteAvisEventListener extends RapportActiviteOperationAbstractEventListener { use RapportActiviteOperationServiceAwareTrait; use RapportActiviteAvisNotificationRuleAwareTrait; /** * @inheritDoc */ Loading @@ -42,6 +43,7 @@ class RapportActiviteAvisEventListener extends RapportActiviteOperationAbstractE $this->handleSuppressionValidationDoctorant(); $this->handleNotificationOperationAttendue(); $this->handleNotificationAvisRespEDNotification(); } public function onAvisModifie(RapportActiviteAvisEvent $event) Loading Loading @@ -108,4 +110,27 @@ class RapportActiviteAvisEventListener extends RapportActiviteOperationAbstractE $this->event->setMessages($messages); $this->event->addMessages($event->getMessages()); } /** * Notification des personnes concernées suite au dépot de l'avis du responsable de l'ED. */ protected function handleNotificationAvisRespEDNotification(): void { $rapportActiviteAvis = $this->operationRealisee; if ($rapportActiviteAvis->getAvis()->getAvisType()->getCode() !== RapportActiviteAvis::AVIS_TYPE__CODE__AVIS_RAPPORT_ACTIVITE_DIR_ED) return; $this->rapportActiviteAvisNotificationRule ->setRapportActiviteAvis($this->operationRealisee) ->execute(); $notif = $this->rapportActiviteNotificationFactory->createNotificationAvisAjoute($rapportActiviteAvis); $this->rapportActiviteAvisNotificationRule->configureNotification($notif); $result = $this->notifierService->trigger($notif); $messages['info'] = ($result->getSuccessMessages()[0] ?? null); $messages['warning'] = ($result->getErrorMessages()[0] ?? null); $this->event->setMessages(array_filter($messages)); } } No newline at end of file module/RapportActivite/src/RapportActivite/Event/Avis/RapportActiviteAvisEventListenerFactory.php +5 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ namespace RapportActivite\Event\Avis; use Notification\Service\NotifierService; use Psr\Container\ContainerInterface; use RapportActivite\Rule\Avis\Notification\RapportActiviteAvisNotificationRule; use RapportActivite\Rule\Operation\Notification\OperationAttendueNotificationRule; use RapportActivite\Rule\Operation\RapportActiviteOperationRule; use RapportActivite\Service\Notification\RapportActiviteNotificationFactory; Loading Loading @@ -35,6 +36,10 @@ class RapportActiviteAvisEventListenerFactory $rapportActiviteNotificationFactory = $container->get(RapportActiviteNotificationFactory::class); $listener->setRapportActiviteNotificationFactory($rapportActiviteNotificationFactory); /** @var RapportActiviteAvisNotificationRule $rapportActiviteAvisNotificationFactory */ $rapportActiviteAvisNotificationFactory = $container->get(RapportActiviteAvisNotificationRule::class); $listener->setRapportActiviteAvisNotificationRule($rapportActiviteAvisNotificationFactory); /** @var \Notification\Service\NotifierService $notifierService */ $notifierService = $container->get(NotifierService::class); $listener->setNotifierService($notifierService); Loading module/RapportActivite/src/RapportActivite/Notification/RapportActiviteAvisNotification.php +4 −4 Original line number Diff line number Diff line Loading @@ -3,18 +3,18 @@ namespace RapportActivite\Notification; use Notification\Notification; use RapportActivite\Entity\Db\RapportActiviteAvis; use RapportActivite\Entity\RapportActiviteOperationInterface; class RapportActiviteAvisNotification extends Notification { protected ?string $templatePath = 'rapport-activite/notification/avis'; private RapportActiviteAvis $rapportActiviteAvis; private RapportActiviteOperationInterface $rapportActiviteAvis; private array $messagesByAvisValeurBool = []; /** * @param \RapportActivite\Entity\Db\RapportActiviteAvis $rapportActiviteAvis * @param RapportActiviteOperationInterface $rapportActiviteAvis */ public function setRapportActiviteAvis(RapportActiviteAvis $rapportActiviteAvis): void public function setRapportActiviteAvis(RapportActiviteOperationInterface $rapportActiviteAvis): void { $this->rapportActiviteAvis = $rapportActiviteAvis; } Loading Loading
CHANGELOG.md +1 −0 Original line number Diff line number Diff line Loading @@ -7,6 +7,7 @@ Journal des modifications - Menu Formations : élargissement du nombre de rôles habilités à voir le menu. - Page 'Mes formations' pour le doctorant : suppression de la colonne 'Etablissement'. - Déplacement de la config des imports/synchros dans le module Import. - Rapport activité : envoi d'une notification aux gestionnaires d'ED lorsque la direction d'ED a donné son avis. - [FIX] Rapports d'activité : correction du plantage empêchant l'envoi de la notification en cas de validation/avis. - [FIX] Correction de la config des imports api_import_inscription_administrative et api_import_inscription_administrative_apprenant. - [FIX] Rapport CSI : rétablissement du bouton de suppression d'un rapport. Loading
module/RapportActivite/config/module.config.php +3 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,8 @@ namespace RapportActivite; use Application\Form\Factory\RapportAvisFormFactory; use Application\Form\Rapport\RapportAvisForm; use Application\Navigation\ApplicationNavigationFactory; use RapportActivite\Rule\Avis\Notification\RapportActiviteAvisNotificationRule; use RapportActivite\Rule\Avis\Notification\RapportActiviteAvisNotificationRuleFactory; use UnicaenSearch\Controller\SearchControllerPluginFactory; use Doctrine\Persistence\Mapping\Driver\MappingDriverChain; use Doctrine\ORM\Mapping\Driver\XmlDriver; Loading Loading @@ -733,6 +735,7 @@ return [ RapportActiviteValidationEventListener::class => RapportActiviteValidationEventListenerFactory::class, OperationAttendueNotificationRule::class => OperationAttendueNotificationRuleFactory::class, RapportActiviteAvisNotificationRule::class => RapportActiviteAvisNotificationRuleFactory::class, RapportActiviteCreationRule::class => RapportActiviteCreationRuleFactory::class, RapportActiviteOperationRule::class => RapportActiviteOperationRuleFactory::class, Loading
module/RapportActivite/src/RapportActivite/Event/Avis/RapportActiviteAvisEventListener.php +26 −1 Original line number Diff line number Diff line Loading @@ -8,6 +8,7 @@ use Laminas\EventManager\EventManagerInterface; use RapportActivite\Entity\Db\RapportActiviteAvis; use RapportActivite\Event\Operation\RapportActiviteOperationAbstractEventListener; use RapportActivite\Event\RapportActiviteEvent; use RapportActivite\Rule\Avis\Notification\RapportActiviteAvisNotificationRuleAwareTrait; use RapportActivite\Service\Avis\RapportActiviteAvisService; use RapportActivite\Service\Operation\RapportActiviteOperationServiceAwareTrait; use Webmozart\Assert\Assert; Loading @@ -18,7 +19,7 @@ use Webmozart\Assert\Assert; class RapportActiviteAvisEventListener extends RapportActiviteOperationAbstractEventListener { use RapportActiviteOperationServiceAwareTrait; use RapportActiviteAvisNotificationRuleAwareTrait; /** * @inheritDoc */ Loading @@ -42,6 +43,7 @@ class RapportActiviteAvisEventListener extends RapportActiviteOperationAbstractE $this->handleSuppressionValidationDoctorant(); $this->handleNotificationOperationAttendue(); $this->handleNotificationAvisRespEDNotification(); } public function onAvisModifie(RapportActiviteAvisEvent $event) Loading Loading @@ -108,4 +110,27 @@ class RapportActiviteAvisEventListener extends RapportActiviteOperationAbstractE $this->event->setMessages($messages); $this->event->addMessages($event->getMessages()); } /** * Notification des personnes concernées suite au dépot de l'avis du responsable de l'ED. */ protected function handleNotificationAvisRespEDNotification(): void { $rapportActiviteAvis = $this->operationRealisee; if ($rapportActiviteAvis->getAvis()->getAvisType()->getCode() !== RapportActiviteAvis::AVIS_TYPE__CODE__AVIS_RAPPORT_ACTIVITE_DIR_ED) return; $this->rapportActiviteAvisNotificationRule ->setRapportActiviteAvis($this->operationRealisee) ->execute(); $notif = $this->rapportActiviteNotificationFactory->createNotificationAvisAjoute($rapportActiviteAvis); $this->rapportActiviteAvisNotificationRule->configureNotification($notif); $result = $this->notifierService->trigger($notif); $messages['info'] = ($result->getSuccessMessages()[0] ?? null); $messages['warning'] = ($result->getErrorMessages()[0] ?? null); $this->event->setMessages(array_filter($messages)); } } No newline at end of file
module/RapportActivite/src/RapportActivite/Event/Avis/RapportActiviteAvisEventListenerFactory.php +5 −0 Original line number Diff line number Diff line Loading @@ -4,6 +4,7 @@ namespace RapportActivite\Event\Avis; use Notification\Service\NotifierService; use Psr\Container\ContainerInterface; use RapportActivite\Rule\Avis\Notification\RapportActiviteAvisNotificationRule; use RapportActivite\Rule\Operation\Notification\OperationAttendueNotificationRule; use RapportActivite\Rule\Operation\RapportActiviteOperationRule; use RapportActivite\Service\Notification\RapportActiviteNotificationFactory; Loading Loading @@ -35,6 +36,10 @@ class RapportActiviteAvisEventListenerFactory $rapportActiviteNotificationFactory = $container->get(RapportActiviteNotificationFactory::class); $listener->setRapportActiviteNotificationFactory($rapportActiviteNotificationFactory); /** @var RapportActiviteAvisNotificationRule $rapportActiviteAvisNotificationFactory */ $rapportActiviteAvisNotificationFactory = $container->get(RapportActiviteAvisNotificationRule::class); $listener->setRapportActiviteAvisNotificationRule($rapportActiviteAvisNotificationFactory); /** @var \Notification\Service\NotifierService $notifierService */ $notifierService = $container->get(NotifierService::class); $listener->setNotifierService($notifierService); Loading
module/RapportActivite/src/RapportActivite/Notification/RapportActiviteAvisNotification.php +4 −4 Original line number Diff line number Diff line Loading @@ -3,18 +3,18 @@ namespace RapportActivite\Notification; use Notification\Notification; use RapportActivite\Entity\Db\RapportActiviteAvis; use RapportActivite\Entity\RapportActiviteOperationInterface; class RapportActiviteAvisNotification extends Notification { protected ?string $templatePath = 'rapport-activite/notification/avis'; private RapportActiviteAvis $rapportActiviteAvis; private RapportActiviteOperationInterface $rapportActiviteAvis; private array $messagesByAvisValeurBool = []; /** * @param \RapportActivite\Entity\Db\RapportActiviteAvis $rapportActiviteAvis * @param RapportActiviteOperationInterface $rapportActiviteAvis */ public function setRapportActiviteAvis(RapportActiviteAvis $rapportActiviteAvis): void public function setRapportActiviteAvis(RapportActiviteOperationInterface $rapportActiviteAvis): void { $this->rapportActiviteAvis = $rapportActiviteAvis; } Loading