Commit 71de4253 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

[FIX] Admission : le candidat pouvait valider (atestation sur l'honneur) même...

[FIX] Admission : le candidat pouvait valider (atestation sur l'honneur) même si une étape du dossier était déclarée incomplète.
parent 6e9143f4
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@ Journal des modifications
- [FIX] Admission : il était impossible de déclarer l'étape 2 (inscription) incomplète (éditeur tinymce initialisé en double).
- [FIX] Admission : augmentation de la marge du bas dans le récapitulatif du dossier d'admission.
- [FIX] Admission : enregistrement de la nature de la PJ déposée dans le dossier et ajout d'une contrainte en bdd empêchant le dépôt de plusieurs PJ du même nature.
- [FIX] Admission : le candidat pouvait valider (atestation sur l'honneur) même si une étape du dossier était déclarée incomplète.
- [FIX] Editeur HTML TinyMCE : il était impossible d'insérer un lien hypertexte si l'éditeur était ouvert dans un fenêtre modale. 

10.2.1
+14 −0
Original line number Diff line number Diff line
@@ -3,12 +3,15 @@
namespace Admission\Assertion\Validation;

use Admission\Assertion\AdmissionOperationAbstractAssertion;
use Admission\Entity\Db\Admission;
use Admission\Entity\Db\AdmissionValidation;
use Admission\Entity\Db\Verification;
use Admission\Provider\Privilege\AdmissionPrivileges;
use Admission\Rule\Operation\AdmissionOperationRuleAwareTrait;
use Admission\Service\Admission\AdmissionServiceAwareTrait;
use Admission\Service\TypeValidation\TypeValidationServiceAwareTrait;
use Admission\Service\Validation\AdmissionValidationServiceAwareTrait;
use Admission\Service\Verification\VerificationServiceAwareTrait;
use Application\Assertion\Exception\FailedAssertionException;
use Doctrine\ORM\Exception\NotSupported;
use InvalidArgumentException;
@@ -19,6 +22,7 @@ class AdmissionValidationAssertion extends AdmissionOperationAbstractAssertion
    use AdmissionValidationServiceAwareTrait;
    use TypeValidationServiceAwareTrait;
    use AdmissionServiceAwareTrait;
    use VerificationServiceAwareTrait;
    use AdmissionOperationRuleAwareTrait;

    /**
@@ -64,6 +68,7 @@ class AdmissionValidationAssertion extends AdmissionOperationAbstractAssertion

            switch ($action) {
                case 'valider':
                    $this->assertDossierComplet($admissionValidation->getAdmission());
                    $nextOperation = $this->findNextExpectedOperation($admissionValidation->getAdmission());
                    $this->assertOperationsMatch($admissionValidation, $nextOperation);
                    $this->assertOperationIsAllowed($nextOperation);
@@ -118,6 +123,7 @@ class AdmissionValidationAssertion extends AdmissionOperationAbstractAssertion
            switch ($privilege) {
                case AdmissionPrivileges::ADMISSION_VALIDER_SIEN:
                case AdmissionPrivileges::ADMISSION_VALIDER_TOUT:
                    $this->assertDossierComplet($admissionValidation->getAdmission());
                    $nextOperation = $this->findNextExpectedOperation($admissionValidation->getAdmission());
                    $this->assertOperationsMatch($admissionValidation, $nextOperation);
                    $this->assertOperationIsAllowed($nextOperation);
@@ -142,4 +148,12 @@ class AdmissionValidationAssertion extends AdmissionOperationAbstractAssertion

        return true;
    }

    private function assertDossierComplet(Admission $admission): void
    {
        $verifs = $this->verificationService->getRepository()->findAllByAdmission($admission);
        $this->assertTrue(
            count(array_filter($verifs, fn(Verification $v) => !$v->getEstComplet())) === 0
        );
    }
}
 No newline at end of file
+5 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ use Admission\Rule\Operation\AdmissionOperationRule;
use Admission\Service\Admission\AdmissionService;
use Admission\Service\TypeValidation\TypeValidationService;
use Admission\Service\Validation\AdmissionValidationService;
use Admission\Service\Verification\VerificationService;
use Application\Assertion\AbstractAssertion;
use Application\Service\UserContextService;
use Psr\Container\ContainerExceptionInterface;
@@ -43,6 +44,10 @@ class AdmissionValidationAssertionFactory
        $admissionValidationService = $container->get(AdmissionValidationService::class);
        $assertion->setAdmissionValidationService($admissionValidationService);

        /** @var VerificationService $verificationService */
        $verificationService = $container->get(VerificationService::class);
        $assertion->setVerificationService($verificationService);

        /** @var AdmissionOperationRule $admissionOperationRule */
        $admissionOperationRule = $container->get(AdmissionOperationRule::class);
        $assertion->setAdmissionOperationRule($admissionOperationRule);
+5 −1
Original line number Diff line number Diff line
@@ -54,7 +54,11 @@ class VerificationRepository extends DefaultEntityRepository{
        return $this->findOneBy(['document' => $document]);
    }

    public function findAllByAdmission(Admission $admission) {
    /**
     * @return Verification[]
     */
    public function findAllByAdmission(Admission $admission): array
    {
        $qb = $this->createQueryBuilder('verif');

        return $qb
+3 −2
Original line number Diff line number Diff line
@@ -135,9 +135,10 @@ class VerificationService extends BaseService
    }

    /**
     * @param Admission $admission
     * @return Verification[]
     * @deprecated Appeler explicitement getRepository()->findAllByAdmission($admission)
     */
    public function getAllVerificationFromAdmission(Admission $admission)
    public function getAllVerificationFromAdmission(Admission $admission): array
    {
        return $this->getRepository()->findAllByAdmission($admission);
    }