Commit 3cfba427 authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Gestion des demandes en cours

parent c1182892
Loading
Loading
Loading
Loading
Loading
+0 −9
Changes for module/Application/config/others/admin.config.php: 0 added lines, 9 removed lines.
Original line number Diff line number Diff line
@@ -12,8 +12,6 @@ use Application\Form\Factory\MailConfirmationFormFactory;
use Application\Form\Factory\MailConfirmationHydratorFactory;
use Application\Service\MailConfirmationServiceFactory;
use Application\Controller\Factory\MailConfirmationControllerFactory;
use Application\Controller\CobayeController;
use Application\Controller\Factory\CobayeControllerFactory;
use Application\Provider\Privilege\ThesePrivileges;

return [
@@ -72,13 +70,6 @@ return [
                    ],
                    'privileges' => ThesePrivileges::THESE_CONSULTATION_FICHE,
                ],
                [
                    'controller' => CobayeController::class,
                    'action'     => [
                        'index',
                    ],
                    'privileges' => UtilisateurPrivileges::UTILISATEUR_ATTRIBUTION_ROLE,
                ],
            ],
        ],
    ],
+16 −41
Changes for module/Application/src/Application/Controller/DoctorantController.php: 16 added lines, 41 removed lines.
Original line number Diff line number Diff line
@@ -33,47 +33,22 @@ class DoctorantController extends AbstractController
    public function modifierPersopassAction()
    {
        $doctorant = $this->requestDoctorant();
//        $form = $this->getModifierPersopassForm();
//        $form->setData([
//            'identity' => $doctorant->getPersopass(),
//            'credential' => '',
//        ]);
//
//        $request = $this->getRequest();
//        if ($request->isPost()) {
//            /** @var ParametersInterface $post */
//            $post = $this->getRequest()->getPost();
//            $form->setData($post);
//            if ($form->isValid()) {
//                if ($result = $this->validatePersopass($post['identity'], $post['credential'])) {
//                    try {
//                        $this->doctorantService->updateDoctorant($doctorant, $result);
//
//                        // prise en compte du paramètre GET 'return' positionné par SaisiePersopassRouteDeflector :
//                        if ($redirectUri = $this->params()->fromQuery('return')) {
//                            return $this->redirect()->toUrl($redirectUri);
//                        }
//
//                        if (!$request->isXmlHttpRequest()) {
//                            return $this->redirect()->toRoute('home', [], [], true);
//                        }
//                    } catch (DBALException $e) {
//                        $f = new DbExceptionFormatter();
//                        $message = $f->filter($e);
//                        $form->setMessages(['credential' => [$message]]);
//                    }
//                }
//                else {
//                    $form->setMessages(['credential' => ["Identifiant ou mot de passe incorrect"]]);
//                }
//            }
//        }
//
//        $form->setAttribute('action', $request->getRequestUri());
//
//        $variable = $this->variableService->getRepository()->findByCodeAndEtab(
//            Variable::CODE_EMAIL_BDD,
//            $doctorant->getEtablissement());
        $mailConfirmation = $this->mailConfirmationService->getDemandeConfirmeeByIndividu($doctorant->getIndividu());
        if ($mailConfirmation !== null) {
            $viewmodel = new ViewModel();
            $viewmodel->setTemplate('application/doctorant/demande-ok');
            return $viewmodel;
        }


        $mailConfirmation = $this->mailConfirmationService->getDemandeEnCoursByIndividu($doctorant->getIndividu());

        //Si on a déjà une demande en attente
        if ($mailConfirmation !== null) {
            $viewmodel = new ViewModel();
            $viewmodel->setTemplate('application/doctorant/demande-encours');
            return $viewmodel;
        }

        $mailConfirmation = new MailConfirmation();
        $mailConfirmation->setIndividu($doctorant->getIndividu());
+7 −7
Changes for module/Application/src/Application/Controller/MailConfirmationController.php: 7 added lines, 7 removed lines.
Original line number Diff line number Diff line
@@ -91,8 +91,7 @@ class MailConfirmationController extends AbstractController {
        $mailConfirmation = $this->mailConfirmationService->getDemandeById($id);


        $confirm = $this->url()->fromRoute('mail-confirmation-reception', ['id' => $mailConfirmation->getId(), 'code' => $mailConfirmation->getCode()], [] , true);
        var_dump($confirm);
        $confirm = $this->url()->fromRoute('mail-confirmation-reception', ['id' => $mailConfirmation->getId(), 'code' => $mailConfirmation->getCode()], ['force_canonical' => true] , true);
        $destinataire = $mailConfirmation->getIndividu()->getPrenom1() ." ". $mailConfirmation->getIndividu()->getNomUsuel() . " " . "&lt;<tt>".$mailConfirmation->getEmail()."</tt>&gt;";
        $titre = "[SyGAL] Confirmation de votre email";
        $corps = "<br/>"
@@ -106,14 +105,15 @@ class MailConfirmationController extends AbstractController {

        $this->notificationService->notifierMailConfirmation($mailConfirmation, $titre, $corps);

        return $this->redirect()->toRoute('these');
        /** Branchement du mail mais peut être echanger avec une vue classique en
         * décommentant le code si dessous*/

        return new ViewModel([
            'destinataire' => $destinataire,
            'titre' => $titre,
            'corps' => $corps,
        ]);
//        return new ViewModel([
//            'destinataire' => $destinataire,
//            'titre' => $titre,
//            'corps' => $corps,
//        ]);
    }

    /**
+12 −0
Changes for module/Application/src/Application/Service/MailConfirmationService.php: 12 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -17,6 +17,18 @@ class MailConfirmationService {
        return $mailConfirmation;
    }

    public function getDemandeEnCoursByIndividu($individu)
    {
        $mailConfirmation = $this->getEntityManager()->getRepository(MailConfirmation::class)->findOneBy(["individu"=>$individu, "etat" => MailConfirmation::ENVOYER]);
        return $mailConfirmation;
    }

    public function getDemandeConfirmeeByIndividu($individu)
    {
        $mailConfirmation = $this->getEntityManager()->getRepository(MailConfirmation::class)->findOneBy(["individu"=>$individu, "etat" => MailConfirmation::CONFIRMER]);
        return $mailConfirmation;
    }

    /**
     * @return MailConfirmation[] $confirmations
     */
+14 −0
Changes for module/Application/src/Application/Service/Notification/NotificationService.php: 14 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -499,4 +499,18 @@ class NotificationService
        $viewModel->setVariable('to', $mails);
        $this->notifier($viewModel);
    }

    public function notifierMailConfirmation($mailConfirmation, $titre, $corps)
    {
        $viewModel = (new ViewModel())
            ->setTemplate('application/doctorant/empty-mail')
            ->setVariables([
                'destinataire' => $mailConfirmation->getIndividu()->getNomUsuel(),
                'titre' => $titre,
                'corps' => $corps,
            ]);
        $viewModel->setVariable('to', $mailConfirmation->getEmail());
        $viewModel->setVariable('subject', $titre);
        $this->notifier($viewModel);
    }
}
 No newline at end of file
Loading