Commit 9fceaa5b authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Merge branch 'release_3.0.7'

parents f43c4332 c993fe2f
Loading
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
Journal des modifications
=========================

3.0.7
----- 
- Nouveau critère de bloquage des soutenances basé sur la validité des rapporteurs.
- Retrait de la mention qualité absente sur le justificatif de co-encadrement 
- Ajustement de la date/heure de rendu des rapports 
- Modification du lien dans les mails vers les rapporteurs (description complète : token, role, redirect)

3.0.6
-----
- [FIX] Non affichage des justificatifs historisés dans la proposition de soutenance
+18 −0
Original line number Diff line number Diff line
# Version 3.0.7

## 1. Sur le serveur d'application

- Placez-vous dans le répertoire de l'application puis lancez la commande suivante
  pour installer la nouvelle version :

```bash
git fetch --tags && git checkout --force 3.0.7 && bash ./install.sh
```

- Selon le moteur PHP que vous avez installé, rechargez le service, exemple :
    - php7.3-fpm         : `service php7.3-fpm reload`
    - apache2-mod-php7.3 : `service apache2 reload`

## 2. Dans la base de données

Néant.
+1 −1
Original line number Diff line number Diff line
@@ -121,7 +121,7 @@ use Application\View\Renderer\PhpRenderer;

<p>
    Ce document certifie que <?php echo $coencadrant->getIndividu()->getPrenom1(); ?> <?php echo $coencadrant->getIndividu()->getNomUsuel(); ?>,
    actuellement <?php echo ($coencadrant->getQualite() !== " ")?$coencadrant->getQualite():"<span style='color:darkred;'>qualité manquante</span>"; ?> à
    actuellement <?php echo ($coencadrant->getQualite() !== " ")?$coencadrant->getQualite():""; ?> à
    <?php echo ($coencadrant->getEtablissement())?$coencadrant->getEtablissement()->getLibelle():"<span style='color:darkred;'>établissement manquant</span>"; ?>,
    a assuré la fonction de co-encadrant sur pour les thèses suivantes :
</p>
+33 −2
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ use Soutenance\Service\Evenement\EvenementServiceAwareTrait;
use Soutenance\Service\Membre\MembreServiceAwareTrait;
use Soutenance\Service\Notifier\NotifierSoutenanceServiceAwareTrait;
use Soutenance\Service\Proposition\PropositionServiceAwareTrait;
use UnicaenAuthToken\Service\TokenServiceAwareTrait;
use Zend\View\Model\ViewModel;

/**
@@ -27,6 +28,7 @@ class EngagementImpartialiteController extends AbstractController
    use MembreServiceAwareTrait;
    use NotifierSoutenanceServiceAwareTrait;
    use PropositionServiceAwareTrait;
    use TokenServiceAwareTrait;

    public function engagementImpartialiteAction()
    {
@@ -58,8 +60,24 @@ class EngagementImpartialiteController extends AbstractController
        /** @var Membre $membre */
        foreach ($proposition->getMembres() as $membre) {
            if ($membre->getActeur() and $membre->estRapporteur()) {

                $validation = $this->getEngagementImpartialiteService()->getEngagementImpartialiteByMembre($these, $membre);
                if (!$validation) $this->getNotifierSoutenanceService()->triggerDemandeSignatureEngagementImpartialite($these, $proposition, $membre);
                if (!$validation) {
                    $utilisateurs = $membre->getActeur()->getIndividu()->getUtilisateurs();
                    $token = null;
                    foreach ($utilisateurs as $utilisateur) {
                        $token = $this->tokenService->findUserTokenByUserId($utilisateur->getId());
                        if (! $token->isExpired()) break;
                    }

                    if ($token !== null) {
                        $url_rapporteur = $this->url()->fromRoute("soutenance/index-rapporteur", ['these' => $these->getId()], ['force_canonical' => true], true);
                        $url = $this->url()->fromRoute('zfcuser/login', ['type' => 'token'], ['query' => ['token' => $token->getToken(), 'redirect' => $url_rapporteur, 'role' => $membre->getActeur()->getRole()->getRoleId()], 'force_canonical' => true], true);
                    } else {
                        $url = $this->url()->fromRoute("soutenance/index-rapporteur", ['these' => $these->getId()], ['force_canonical' => true], true);
                    }
                    $this->getNotifierSoutenanceService()->triggerDemandeSignatureEngagementImpartialite($these, $proposition, $membre, $url);
                }
            }
        }

@@ -74,7 +92,20 @@ class EngagementImpartialiteController extends AbstractController
        $membre = $this->getMembreService()->getRequestedMembre($this);

        if ($membre->getActeur()) {
            $this->getNotifierSoutenanceService()->triggerDemandeSignatureEngagementImpartialite($these, $proposition, $membre);
            $utilisateurs = $membre->getActeur()->getIndividu()->getUtilisateurs();
            $token = null;
            foreach ($utilisateurs as $utilisateur) {
                $token = $this->tokenService->findUserTokenByUserId($utilisateur->getId());
                if (! $token->isExpired()) break;
            }

            if ($token !== null) {
                $url_rapporteur = $this->url()->fromRoute("soutenance/index-rapporteur", ['these' => $these->getId()], ['force_canonical' => true], true);
                $url = $this->url()->fromRoute('zfcuser/login', ['type' => 'token'], ['query' => ['token' => $token->getToken(), 'redirect' => $url_rapporteur, 'role' => $membre->getActeur()->getRole()->getRoleId()], 'force_canonical' => true], true);
            } else {
                $url = $this->url()->fromRoute("soutenance/index-rapporteur", ['these' => $these->getId()], ['force_canonical' => true], true);
            }
            $this->getNotifierSoutenanceService()->triggerDemandeSignatureEngagementImpartialite($these, $proposition, $membre, $url);
        }

        $this->redirect()->toRoute('soutenance/presoutenance', ['these' => $these->getId()], [], true);
+5 −0
Original line number Diff line number Diff line
@@ -9,6 +9,8 @@ use Soutenance\Service\Evenement\EvenementService;
use Soutenance\Service\Membre\MembreService;
use Soutenance\Service\Notifier\NotifierSoutenanceService;
use Soutenance\Service\Proposition\PropositionService;
use UnicaenAuthToken\Service\TokenService;
use UnicaenAuthToken\Service\TokenServiceAwareTrait;

class EngagementImpartialiteControllerFactory
{
@@ -25,6 +27,7 @@ class EngagementImpartialiteControllerFactory
         * @var MembreService $membreService
         * @var NotifierSoutenanceService $notifierService
         * @var EngagementImpartialiteService $engagementImpartialiteService
         * @var TokenService $tokenService
         */
        $acteurService                  = $container->get(ActeurService::class);
        $evenementService               = $container->get(EvenementService::class);
@@ -32,6 +35,7 @@ class EngagementImpartialiteControllerFactory
        $membreService                  = $container->get(MembreService::class);
        $notifierService                = $container->get(NotifierSoutenanceService::class);
        $engagementImpartialiteService  = $container->get(EngagementImpartialiteService::class);
        $tokenService                   = $container->get(TokenService::class);

        /** @var EngagementImpartialiteController $controller */
        $controller = new EngagementImpartialiteController();
@@ -41,6 +45,7 @@ class EngagementImpartialiteControllerFactory
        $controller->setMembreService($membreService);
        $controller->setNotifierSoutenanceService($notifierService);
        $controller->setEngagementImpartialiteService($engagementImpartialiteService);
        $controller->setTokenService($tokenService);

        return $controller;
    }
Loading