Commit fae78fdf authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Thèses : refonte de la gestion événementielle en cas de modification du...

Thèses : refonte de la gestion événementielle en cas de modification du résultat (manuelle ou par la synchro) ou de la correction attendue (par la synchro uniquement).
parent e731fcea
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ Journal des modifications
- Admission : l'export CSV n'est possible que si la recherche ne contient que des dossiers validés (sinon affichage d'un avertissement).
- Admission : une année universitaire d'inscription cible doit désormais être attribuée au dossier d'admission.
- Autorisation de diplomation : déplacement du bouton à la fin de la procédure de soutenance (après délibération du jury pour résultat admis). 
- Thèses : refonte de la gestion événementielle en cas de modification du résultat (manuelle ou par la synchro) ou de la correction attendue (par la synchro uniquement).
- [FIX] Notification de thèse déposée : warning 'Undefined variable' à cause d'une variable non fournie au template.
- [FIX] Notification 'Corrections attendues' et 'Résultats de thèses modifiés' : correction de l'erreur 'Typed property Notification\Notification::$subject must not be accessed before initialization'.
- [FIX] Notification 'Corrections attendues' et 'Résultats de thèses modifiés' : problème dans l'algo de préparation des données (partie émergée : 'Warning: Undefined array key').
+1 −1
Original line number Diff line number Diff line
@@ -67,7 +67,7 @@
        "unicaen/privilege": "^6.4",
        "unicaen/console": "^6.0",
        "unicaen/db-anonym": "^4.0",
        "unicaen/db-import": "^8.0",
        "unicaen/db-import": "dev-release_8.1.0",
        "unicaen/etat": "^6.0",
        "unicaen/evenement": "^6.4",
        "unicaen/faq": "^7.0",
+5 −4
Original line number Diff line number Diff line
@@ -4,7 +4,7 @@
        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
        "This file is @generated automatically"
    ],
    "content-hash": "ebfc426480b11adc6823face9a166e73",
    "content-hash": "1969e309c125200cb64cc33a806a2470",
    "packages": [
        {
            "name": "apereo/phpcas",
@@ -12765,11 +12765,11 @@
        },
        {
            "name": "unicaen/db-import",
            "version": "8.0.1",
            "version": "dev-release_8.1.0",
            "source": {
                "type": "git",
                "url": "https://git.unicaen.fr/lib/unicaen/db-import.git",
                "reference": "7ab05e82301c5356e36c3d537edf2f26c278e5f5"
                "reference": "71adb10a3fc2bae1594df7ea52786e048998d239"
            },
            "require": {
                "beberlei/assert": "^3.3",
@@ -12798,7 +12798,7 @@
                ]
            },
            "description": "Module d'import entre bases de données",
            "time": "2026-07-06T17:18:33+00:00"
            "time": "2026-07-21T15:22:55+00:00"
        },
        {
            "name": "unicaen/etat",
@@ -16310,6 +16310,7 @@
        "eljam/guzzle-jwt-middleware": 20,
        "unicaen/api": 20,
        "unicaen/authentification": 20,
        "unicaen/db-import": 20,
        "unicaen/pegase-coc-ext-api": 20,
        "unicaen/sygal-api": 20
    },
+24 −11
Original line number Diff line number Diff line
<?php

namespace These\Event\ResultatAdmis;
namespace Application\Event;

use Exception;
use Laminas\EventManager\Event;
use Laminas\Log\LoggerAwareTrait;
use Psr\Log\LoggerAwareTrait;
use Psr\Log\LoggerInterface;
use Psr\Log\NullLogger;
use SplObjectStorage;

abstract class ResultatAdmisEvent extends Event
abstract class AbstractEvent extends Event
{
    use LoggerAwareTrait;

    protected SplObjectStorage $data;
    protected ?Exception $exception = null;

    public function __construct($name = null, $target = null, $params = [])
    {
        $this->data = new SplObjectStorage();
        $this->logger = new NullLogger();

        parent::__construct($name, $target, $params);
    }

    public function getLogger(): LoggerInterface
    {
        return $this->logger;
    }

    /**
     * Retourne les données transportées par cet événement.
     *
     * A minima, contient la thèse concernée :
     *
     *      ['these' => \These\Entity\Db\These]
     */
    public function getData(): array
    public function getData(): SplObjectStorage
    {
        return $this->getParam('data', []);
        return $this->data;
    }

    /**
     * Spécifie les données transportées par cet événement.
     */
    public function setData(array $data): static
    public function setData(SplObjectStorage $data): static
    {
        $this->setParam('data', $data);
        $this->data = $data;
        return $this;
    }

+3 −3
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@

namespace AutorisationDiplomationThese;

use AutorisationDiplomationThese\Event\Listener\TheseResultatAdmisListener;
use AutorisationDiplomationThese\EventListener\TheseResultatUpdateEventListener;
use Laminas\Config\Config;
use Laminas\Config\Factory as ConfigFactory;
use Laminas\Mvc\MvcEvent;
@@ -29,8 +29,8 @@ class Module
        /** @var \Psr\Container\ContainerInterface $container */
        $container = $application->getServiceManager();

        /** @var TheseResultatAdmisListener $resultatAdmisTheseNotifier */
        $resultatAdmisTheseNotifier = $container->get(TheseResultatAdmisListener::class);
        /** @var \AutorisationDiplomationThese\EventListener\TheseResultatUpdateEventListener $resultatAdmisTheseNotifier */
        $resultatAdmisTheseNotifier = $container->get(TheseResultatUpdateEventListener::class);
        $resultatAdmisTheseNotifier->attach($application->getEventManager());
    }

Loading