Commit 4f7ffba1 authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Retrait d'invocation du servicelocator

parent 084edaa2
Loading
Loading
Loading
Loading
+60 −38
Changes for module/Soutenance/src/Soutenance/Controller/PresoutenanceController.php: 60 added lines, 38 removed lines.
Original line number Diff line number Diff line
@@ -26,19 +26,22 @@ use Soutenance\Service\Avis\AvisServiceAwareTrait;
use Soutenance\Service\EngagementImpartialite\EngagementImpartialiteServiceAwareTrait;
use Soutenance\Service\Exporter\AvisSoutenance\AvisSoutenancePdfExporter;
use Soutenance\Service\Exporter\Convocation\ConvocationPdfExporter;
use Soutenance\Service\Exporter\ProcesVerbal\ProcesVerbalSoutenancePdfExporter;
use Soutenance\Service\Membre\MembreServiceAwareTrait;
use Soutenance\Service\Notifier\NotifierSoutenanceServiceAwareTrait;
use Soutenance\Service\Parametre\ParametreServiceAwareTrait;
use Soutenance\Service\Exporter\ProcesVerbal\ProcesVerbalSoutenancePdfExporter;
use Soutenance\Service\Proposition\PropositionServiceAwareTrait;
use Soutenance\Service\Validation\ValidatationServiceAwareTrait;
use UnicaenApp\Exception\LogicException;
use UnicaenApp\Exception\RuntimeException;
use UnicaenAuth\Service\Traits\UserServiceAwareTrait;
use Zend\Http\Request;
use Zend\Mvc\Plugin\FlashMessenger\FlashMessenger;
use Zend\View\Model\ViewModel;
use Zend\View\Renderer\PhpRenderer;

/** @method FlashMessenger flashMessenger() */

class PresoutenanceController extends AbstractController
{
    use TheseServiceAwareTrait;
@@ -58,6 +61,17 @@ class PresoutenanceController extends AbstractController
    use DateRenduRapportFormAwareTrait;
    use AdresseSoutenanceFormAwareTrait;

    /** @var PhpRenderer */
    private $renderer;

    /**
     * @param PhpRenderer $renderer
     */
    public function setRenderer($renderer)
    {
        $this->renderer = $renderer;
    }

    public function presoutenanceAction()
    {
        $these = $this->requestedThese();
@@ -147,19 +161,22 @@ class PresoutenanceController extends AbstractController
                $acteurs = array_filter($acteurs, function (Acteur $a) {
                    /** @var Profil $profil */
                    $profil = ($a->getRole()->getProfils()->first());
                    return $profil->getRoleCode() === 'R';});
                    return $profil->getRoleCode() === 'R';
                });
                break;
            case Membre::RAPPORTEUR_ABSENT :
                $acteurs = array_filter($acteurs, function (Acteur $a) {
                    /** @var Profil $profil */
                    $profil = ($a->getRole()->getProfils()->first());
                    return $profil->getRoleCode() === 'R';});
                    return $profil->getRoleCode() === 'R';
                });
                break;
            case Membre::MEMBRE_JURY :
                $acteurs = array_filter($acteurs, function (Acteur $a) {
                    /** @var Profil $profil */
                    $profil = ($a->getRole()->getProfils()->first());
                    return $profil->getRoleCode() === 'M';});
                    return $profil->getRoleCode() === 'M';
                });
                break;
        }

@@ -277,7 +294,8 @@ class PresoutenanceController extends AbstractController
        $this->redirect()->toRoute('soutenance/presoutenance', ['these' => $avis->getThese()->getId()], [], true);
    }

    public function feuVertAction() {
    public function feuVertAction()
    {
        $these = $this->requestedThese();
        $proposition = $this->getPropositionService()->findByThese($these);

@@ -296,7 +314,8 @@ class PresoutenanceController extends AbstractController
        $this->redirect()->toRoute('soutenance/presoutenance', ['these' => $these->getId()], [], true);
    }

    public function stopperDemarcheAction() {
    public function stopperDemarcheAction()
    {
        $these = $this->requestedThese();
        $proposition = $this->getPropositionService()->findByThese($these);

@@ -312,7 +331,8 @@ class PresoutenanceController extends AbstractController
        $this->redirect()->toRoute('soutenance/presoutenance', ['these' => $these->getId()], [], true);
    }

    public function modifierAdresseAction() {
    public function modifierAdresseAction()
    {
        $these = $this->requestedThese();
        $proposition = $this->getPropositionService()->findByThese($these);

@@ -347,10 +367,7 @@ class PresoutenanceController extends AbstractController
        /** @var PdcData $pdcData */
        $pdcData = $this->getTheseService()->fetchInformationsPageDeCouverture($these);

        /* @var $renderer PhpRenderer */
        $renderer = $this->getServiceLocator()->get('view_renderer');

        $exporter = new ProcesVerbalSoutenancePdfExporter($renderer, 'A4');
        $exporter = new ProcesVerbalSoutenancePdfExporter($this->renderer, 'A4');
        $exporter->setVars([
            'proposition' => $proposition,
            'these' => $these,
@@ -369,10 +386,7 @@ class PresoutenanceController extends AbstractController
        /** @var PdcData $pdcData */
        $pdcData = $this->getTheseService()->fetchInformationsPageDeCouverture($these);

        /* @var $renderer PhpRenderer */
        $renderer = $this->getServiceLocator()->get('view_renderer');

        $exporter = new AvisSoutenancePdfExporter($renderer, 'A4');
        $exporter = new AvisSoutenancePdfExporter($this->renderer, 'A4');
        $exporter->setVars([
            'proposition' => $proposition,
            'these' => $these,
@@ -391,25 +405,27 @@ class PresoutenanceController extends AbstractController
        /** @var PdcData $pdcData */
        $pdcData = $this->getTheseService()->fetchInformationsPageDeCouverture($these);

        /* @var $renderer PhpRenderer */
        $renderer = $this->getServiceLocator()->get('view_renderer');

        /** @var Validation[] $validationMDD */
        $validationMDD = $this->getValidationService()->getRepository()->findValidationByCodeAndThese(TypeValidation::CODE_VALIDATION_PROPOSITION_BDD, $these);
        $dateValidation = (!empty($validationMDD)) ? current($validationMDD)->getHistoModification() : null;

        /** @var string $ville */
        switch ($these->getEtablissement()->getSigle()) {
            case "UCN" : $ville = "Caen"; break;
            case "UCN" :
                $ville = "Caen";
                break;
            case "URN" :
            case "INSA" :
                $ville = "Rouen"; break;
            case "ULHN" : $ville = "Le Havre"; break;
                $ville = "Rouen";
                break;
            case "ULHN" :
                $ville = "Le Havre";
                break;
            default:
                $ville = "Manquant";
        }

        $exporter = new ConvocationPdfExporter($renderer, 'A4');
        $exporter = new ConvocationPdfExporter($this->renderer, 'A4');
        $exporter->setVars([
            'proposition' => $proposition,
            'these' => $these,
@@ -429,25 +445,27 @@ class PresoutenanceController extends AbstractController
        /** @var PdcData $pdcData */
        $pdcData = $this->getTheseService()->fetchInformationsPageDeCouverture($these);

        /* @var $renderer PhpRenderer */
        $renderer = $this->getServiceLocator()->get('view_renderer');

        /** @var Validation[] $validationMDD */
        $validationMDD = $this->getValidationService()->getRepository()->findValidationByCodeAndThese(TypeValidation::CODE_VALIDATION_PROPOSITION_BDD, $these);
        $dateValidation = (!empty($validationMDD)) ? current($validationMDD)->getHistoModification() : null;

        /** @var string $ville */
        switch ($these->getEtablissement()->getSigle()) {
            case "UCN" : $ville = "Caen"; break;
            case "UCN" :
                $ville = "Caen";
                break;
            case "URN" :
            case "INSA" :
                $ville = "Rouen"; break;
            case "ULHN" : $ville = "Le Havre"; break;
                $ville = "Rouen";
                break;
            case "ULHN" :
                $ville = "Le Havre";
                break;
            default:
                $ville = "Manquant";
        }

        $exporter = new ConvocationPdfExporter($renderer, 'A4');
        $exporter = new ConvocationPdfExporter($this->renderer, 'A4');
        $exporter->setVars([
            'proposition' => $proposition,
            'these' => $these,
@@ -468,25 +486,27 @@ class PresoutenanceController extends AbstractController
        /** @var PdcData $pdcData */
        $pdcData = $this->getTheseService()->fetchInformationsPageDeCouverture($these);

        /* @var $renderer PhpRenderer */
        $renderer = $this->getServiceLocator()->get('view_renderer');

        /** @var Validation[] $validationMDD */
        $validationMDD = $this->getValidationService()->getRepository()->findValidationByCodeAndThese(TypeValidation::CODE_VALIDATION_PROPOSITION_BDD, $these);
        $dateValidation = (!empty($validationMDD)) ? current($validationMDD)->getHistoModification() : null;

        /** @var string $ville */
        switch ($these->getEtablissement()->getSigle()) {
            case "UCN" : $ville = "Caen"; break;
            case "UCN" :
                $ville = "Caen";
                break;
            case "URN" :
            case "INSA" :
                $ville = "Rouen"; break;
            case "ULHN" : $ville = "Le Havre"; break;
                $ville = "Rouen";
                break;
            case "ULHN" :
                $ville = "Le Havre";
                break;
            default:
                $ville = "Manquant";
        }

        $exporter = new ConvocationPdfExporter($renderer, 'A4');
        $exporter = new ConvocationPdfExporter($this->renderer, 'A4');
        $exporter->setVars([
            'proposition' => $proposition,
            'these' => $these,
@@ -518,7 +538,7 @@ class PresoutenanceController extends AbstractController
        /** @var Membre $membre */
        foreach ($proposition->getMembres() as $membre) {
            if ($membre->isMembre()) {
                $email = ($membre->getIndividu() AND $membre->getIndividu()->getEmail())?$membre->getIndividu()->getEmail():$membre->getEmail();
                $email = ($membre->getIndividu() and $membre->getIndividu()->getEmail()) ? $membre->getIndividu()->getEmail() : $membre->getEmail();
                /** @see PresoutenanceController::convocationMembreAction() */
                $url = $this->url()->fromRoute('soutenance/presoutenance/convocation-membre', ['proposition' => $proposition->getId(), 'membre' => $membre->getId()], ['force_canonical' => true], true);
                $this->getNotifierSoutenanceService()->triggerEnvoiConvocationMembre($membre, $proposition, $dateValidation, $email, $url);
@@ -527,6 +547,7 @@ class PresoutenanceController extends AbstractController
        $this->redirect()->toRoute('soutenance/presoutenance', ['these' => $these->getId()], [], true);
    }

    /** Route console ... */
    public function notifierRetardRapportPresoutenanceAction()
    {
        $delai = new DateInterval('P15D');
@@ -544,7 +565,8 @@ class PresoutenanceController extends AbstractController
     * @param Membre $membre
     * @return string
     */
    private function generateUsername($membre) {
    private function generateUsername($membre)
    {
        $acteur = $membre->getActeur();
        if ($acteur === null) throw new LogicException("La génération du username est basée sur l'Individu qui est mamquant.");
        $nomusuel = strtolower($acteur->getIndividu()->getNomUsuel());
+6 −1
Changes for module/Soutenance/src/Soutenance/Controller/PresoutenanceControllerFactory.php: 6 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -17,8 +17,8 @@ use Soutenance\Service\Notifier\NotifierSoutenanceService;
use Soutenance\Service\Parametre\ParametreService;
use Soutenance\Service\Proposition\PropositionService;
use Soutenance\Service\Validation\ValidationService;
use Zend\Mvc\Controller\ControllerManager;
use UnicaenAuth\Service\User as UserService;
use Zend\View\Renderer\PhpRenderer;

class PresoutenanceControllerFactory
{
@@ -64,6 +64,9 @@ class PresoutenanceControllerFactory
        $dateRenduRapportForm = $container->get('FormElementManager')->get(DateRenduRapportForm::class);
        $adresseSoutenanceForm = $container->get('FormElementManager')->get(AdresseSoutenanceForm::class);

        /* @var $renderer PhpRenderer */
        $renderer = $container->get('ViewRenderer');

        /** @var PresoutenanceController $controller */
        $controller = new PresoutenanceController();
        $controller->setPropositionService($propositionService);
@@ -82,6 +85,8 @@ class PresoutenanceControllerFactory

        $controller->setDateRenduRapportForm($dateRenduRapportForm);
        $controller->setAdresseSoutenanceForm($adresseSoutenanceForm);

        $controller->setRenderer($renderer);
        return $controller;
    }
}
 No newline at end of file
+32 −14
Changes for module/Soutenance/src/Soutenance/Controller/PropositionController.php: 32 added lines, 14 removed lines.
Original line number Diff line number Diff line
@@ -45,7 +45,8 @@ use Zend\Http\Request;
use Zend\View\Model\ViewModel;
use Zend\View\Renderer\PhpRenderer;

class PropositionController extends AbstractController {
class PropositionController extends AbstractController
{
    use ActeurServiceAwareTrait;
    use MembreServiceAwareTrait;
    use NotifierSoutenanceServiceAwareTrait;
@@ -65,6 +66,17 @@ class PropositionController extends AbstractController {
    use ChangementTitreFormAwareTrait;
    use JustificatifFormAwareTrait;

    /** @var PhpRenderer */
    private $renderer;

    /**
     * @param PhpRenderer $renderer
     */
    public function setRenderer($renderer)
    {
        $this->renderer = $renderer;
    }

    public function propositionAction()
    {
        $these = $this->requestedThese();
@@ -232,8 +244,7 @@ class PropositionController extends AbstractController {
            if ($form->isValid()) {
                if ($new !== true) {
                    $this->getMembreService()->update($membre);
                }
                else {
                } else {
                    $this->getMembreService()->create($membre);
                }
                $this->getPropositionService()->annulerValidations($proposition);
@@ -362,7 +373,8 @@ class PropositionController extends AbstractController {
        return $vm;
    }

    public function validerActeurAction() {
    public function validerActeurAction()
    {
        $these = $this->requestedThese();

        $validation = $this->getValidationService()->validatePropositionSoutenance($these);
@@ -389,7 +401,8 @@ class PropositionController extends AbstractController {

    }

    public function validerStructureAction() {
    public function validerStructureAction()
    {
        $these = $this->requestedThese();

        /**
@@ -422,7 +435,8 @@ class PropositionController extends AbstractController {

    }

    public function refuserStructureAction() {
    public function refuserStructureAction()
    {
        $these = $this->requestedThese();
        $proposition = $this->getPropositionService()->findByThese($these);

@@ -457,10 +471,9 @@ class PropositionController extends AbstractController {

        $codirecteurs = $this->getActeurService()->getRepository()->findActeursByTheseAndRole($these, Role::CODE_CODIRECTEUR_THESE);

        /* @var $renderer PhpRenderer */
        $renderer = $this->getServiceLocator()->get('view_renderer');

        $exporter = new SiganturePresidentPdfExporter($renderer, 'A4');

        $exporter = new SiganturePresidentPdfExporter($this->renderer, 'A4');
        $exporter->setVars([
            'proposition' => $proposition,
            'validations' => $this->getPropositionService()->getValidationSoutenance($these),
@@ -500,7 +513,8 @@ class PropositionController extends AbstractController {
        ]);
    }

    public function ajouterJustificatifAction() {
    public function ajouterJustificatifAction()
    {

        $these = $this->requestedThese();
        $proposition = $this->getPropositionService()->findByThese($these);
@@ -544,7 +558,8 @@ class PropositionController extends AbstractController {
        ]);
    }

    public function retirerJustificatifAction() {
    public function retirerJustificatifAction()
    {

        $these = $this->requestedThese();
        $justifcatif = $this->getJustificatifService()->getRequestedJustificatif($this);
@@ -553,7 +568,8 @@ class PropositionController extends AbstractController {
        return $this->redirect()->toRoute('soutenance/proposition', ['these' => $these->getId()], [], true);
    }

    public function toggleSursisAction() {
    public function toggleSursisAction()
    {
        $these = $this->requestedThese();
        $proposition = $this->getPropositionService()->findByThese($these);

@@ -570,7 +586,8 @@ class PropositionController extends AbstractController {
     * @param Proposition $proposition
     * @return Proposition
     */
    private function updateAndUnvalidate(Request $request, Form $form, Proposition $proposition) {
    private function updateAndUnvalidate(Request $request, Form $form, Proposition $proposition)
    {
        $data = $request->getPost();
        $form->setData($data);
        if ($form->isValid()) {
@@ -580,7 +597,8 @@ class PropositionController extends AbstractController {
        return $proposition;
    }

    public function suppressionAction() {
    public function suppressionAction()
    {
        $these = $this->requestedThese();
        $proposition = $this->getPropositionService()->findByThese($these);

+6 −0
Changes for module/Soutenance/src/Soutenance/Controller/PropositionControllerFactory.php: 6 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ use Soutenance\Service\Parametre\ParametreService;
use Soutenance\Service\Proposition\PropositionService;
use Soutenance\Service\Validation\ValidationService;
use Zend\Mvc\Controller\ControllerManager;
use Zend\View\Renderer\PhpRenderer;

class PropositionControllerFactory {

@@ -73,6 +74,9 @@ class PropositionControllerFactory {
        $changementTitreForm = $container->get('FormElementManager')->get(ChangementTitreForm::class);
        $justificatifForm = $container->get('FormElementManager')->get(JustificatifForm::class);

        /* @var $renderer PhpRenderer */
        $renderer = $container->get('ViewRenderer');

        /** @var PropositionController $controller */
        $controller = new PropositionController();

@@ -96,6 +100,8 @@ class PropositionControllerFactory {
        $controller->setChangementTitreForm($changementTitreForm);
        $controller->setJustificatifForm($justificatifForm);

        $controller->setRenderer($renderer);

        return $controller;
    }
}
 No newline at end of file