Commit f8cc8aa1 authored by Thomas Hamel's avatar Thomas Hamel
Browse files

Ajout d'un état intérmédiaire pour l'HDR : Soutenance programmée

parent c8fc3113
Loading
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -109,7 +109,7 @@ class ActeurHDRAssertion extends AbstractActeurAssertion

    private function assertEtatHDR(HDR $hdr): void
    {
        $this->assertTrue($hdr->getEtatHDR() == HDR::ETAT_EN_COURS, "l'HDR doit être en cours");
        $this->assertTrue(in_array($hdr->getEtatHDR(), HDR::ETATS_EN_COURS), "l'HDR doit être en cours");
    }

    private function getRequestedHDR(): ?HDR
+2 −2
Original line number Diff line number Diff line
@@ -32,8 +32,8 @@ class ActeurHDRService extends AbstractActeurService
    {
        $qb = $this->getRapporteurDansEnCoursQb($individu)
            ->addSelect('hdr')->join('acteur.hdr', 'hdr')
            ->andWhere('hdr.etat = :encours')
            ->setParameter('encours', HDR::ETAT_EN_COURS);
            ->andWhere('hdr.etat IN (:encours)')
            ->setParameter('encours', HDR::ETATS_EN_COURS);

        return $qb->getQuery()->getResult();
    }
+2 −2
Original line number Diff line number Diff line
@@ -169,7 +169,7 @@ class ApplicationNavigationFactory extends NavigationFactory
        // Rôle Candidat : génération d'une page "Mon HDR" pour chaque HDR du candidat
        if ($protoPage = $page['pages'][$key = self::MA_HDR_PAGE_ID] ?? null) {
            if ($this->candidat !== null) {
                $hdrs = $this->hdrService->getRepository()->findHDRByCandidat($this->candidat, [HDR::ETAT_EN_COURS, HDR::ETAT_SOUTENUE]);
                $hdrs = $this->hdrService->getRepository()->findHDRByCandidat($this->candidat, [HDR::ETAT_EN_COURS, HDR::ETAT_SOUTENANCE_PROGRAMMEE, HDR::ETAT_SOUTENUE]);
                $newPages = $this->createPagesMaHDR($protoPage, $hdrs);
                $page['pages'] = array_merge($page['pages'], $newPages);
                $page['visible'] = true;
@@ -186,7 +186,7 @@ class ApplicationNavigationFactory extends NavigationFactory
        // Rôles acteurs de HDR (Garant...) : génération d'une page "Mes HDR" contenant une page fille par HDR
        if ($protoPage = $page['pages'][$key = self::MES_HDR_PAGE_ID] ?? null) {
            if ($this->role !== null && $this->role->isActeurDeHDR()) {
                $hdrs = $this->hdrService->getRepository()->findHDRByActeur($this->individu, $this->role, [HDR::ETAT_EN_COURS, HDR::ETAT_SOUTENUE]);
                $hdrs = $this->hdrService->getRepository()->findHDRByActeur($this->individu, $this->role, [HDR::ETAT_EN_COURS, HDR::ETAT_SOUTENANCE_PROGRAMMEE, HDR::ETAT_SOUTENUE]);
                $newPages = $this->createPageMesHDR($protoPage, $hdrs);
                if($newPages){
                    $page['pages'][$key]['pages'] = $newPages;
+1 −1
Original line number Diff line number Diff line
@@ -239,7 +239,7 @@ class IdentityProvider implements ProviderInterface, ChainableProvider
        }

        // le candidat doit avoir une HDR en cours ou soutenue
        $hdrs = array_filter($candidat->getHDRs(), fn(HDR $hdr) => in_array($hdr->getEtatHDR(), [HDR::ETAT_EN_COURS, HDR::ETAT_SOUTENUE]));
        $hdrs = array_filter($candidat->getHDRs(), fn(HDR $hdr) => in_array($hdr->getEtatHDR(), [HDR::ETAT_EN_COURS, HDR::ETAT_SOUTENANCE_PROGRAMMEE, HDR::ETAT_SOUTENUE]));
        if (! $hdrs) {
            return [];
        }
+16 −8
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ namespace Application\View\Helper\Etat;

use Admission\Entity\Db\Etat;
use Application\View\Renderer\PhpRenderer;
use HDR\Entity\Db\HDR;
use Laminas\View\Helper\AbstractHelper;
use Laminas\View\Resolver\TemplatePathStack;
use These\Entity\Db\These;
@@ -32,6 +33,7 @@ class EtatViewHelper extends AbstractHelper
        $etatCode = $etat instanceof Etat ? $etat->getCode() : $etat;
        switch ($etatCode){
            case Etat::CODE_EN_COURS_SAISIE :
            case HDR::ETAT_SOUTENANCE_PROGRAMMEE :
                $colorEtat = "#ffba00";
                break;
            case Etat::CODE_EN_COURS_VALIDATION :
@@ -68,30 +70,33 @@ class EtatViewHelper extends AbstractHelper
        $etatCode = $etat instanceof Etat ? $etat->getCode() : $etat;
        switch ($etatCode){
            case Etat::CODE_EN_COURS_SAISIE :
                $iconEtat = "edit";
                $iconEtat = "icon icon-edit";
                break;
            case HDR::ETAT_SOUTENANCE_PROGRAMMEE :
                $iconEtat = "fas fa-clock";
                break;
            case Etat::CODE_EN_COURS_VALIDATION :
            case These::ETAT_EN_COURS :
                $iconEtat = "hourglass";
                $iconEtat = "icon icon-hourglass";
                break;
            case Etat::CODE_ABANDONNE:
            case These::ETAT_ABANDONNEE:
                $iconEtat = "unchecked";
                $iconEtat = "icon icon-unchecked";
                break;
            case These::ETAT_TRANSFEREE :
                $iconEtat = "export";
                $iconEtat = "icon icon-export";
                break;
            case Etat::CODE_REJETE:
                $iconEtat = "ko";
                $iconEtat = "icon icon-ko";
                break;
            case Etat::CODE_VALIDE :
                $iconEtat = "ok";
                $iconEtat = "icon icon-ok";
                break;
            case These::ETAT_SOUTENUE :
                if(!$resultat){
                    $iconEtat = "question";
                    $iconEtat = "icon icon-question";
                }else{
                    $iconEtat = $resultat === 1 ? "ok" : "ko";
                    $iconEtat = $resultat === 1 ? "icon icon-ok" : "icon icon-ko";
                }
                break;
            default:
@@ -109,6 +114,9 @@ class EtatViewHelper extends AbstractHelper
            case These::ETAT_EN_COURS :
                $etatTextTooltip = $etat instanceof Etat ? $etat->getLibelle() : "En cours";
                break;
            case HDR::ETAT_SOUTENANCE_PROGRAMMEE :
                $etatTextTooltip = "Soutenance programmée";
                break;
            case Etat::CODE_VALIDE:
            case Etat::CODE_REJETE:
            case Etat::CODE_EN_COURS_VALIDATION :
Loading