Commit aa815bf1 authored by Stephane Bouvry's avatar Stephane Bouvry
Browse files

Fix: Le mode strict s'affiche correctement

parent fb2d100c
Loading
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -52,15 +52,18 @@ class OscarDataControlPFICommand extends OscarAdvancedCommandAbstract
        }

        $repport = $this->getProjectGrantService()->checkPFIRegex($regex, false);
        if( $repport['error'] ){
            $this->getIO()->error($repport['error']);
        }
        $sep = "";
        $this->getIO()->write("PFI conforme : ");
        foreach ($repport['valids'] as $pfi) {
            $this->getIO()->writeln("$sep<green>$pfi</green>");
            $this->getIO()->write("$sep<green>$pfi</green>");
            $sep = ", ";
        }

        $sep = "";
        $this->getIO()->write("PFI non-conforme : ");
        $this->getIO()->write("\nPFI non-conforme : ");
        foreach ($repport['warnings'] as $pfi) {
            $this->getIO()->write("$sep<red>$pfi</red>");
            $sep = ", ";
+5 −1
Original line number Diff line number Diff line
@@ -324,6 +324,8 @@ class AdministrationController extends AbstractOscarController implements UsePro

                case OscarConfigurationService::pfi_strict:
                    $strict = $this->params()->fromPost(OscarConfigurationService::pfi_strict) == "on";
                    var_dump($strict);
                    die();
                    $regex = $this->params()->fromPost(OscarConfigurationService::pfi_strict_format);
                    if( $strict == true && !$regex ){
                        throw new OscarException("Vous ne pouvez pas appliquer le mode strict avec une expression régulière vide");
@@ -340,6 +342,7 @@ class AdministrationController extends AbstractOscarController implements UsePro
        }


        $pfiFixed = $this->getOscarConfigurationService()->getPfiRegex();
        return [
            OscarConfigurationService::spents_account_filter => implode(
                ', ',
@@ -359,7 +362,8 @@ class AdministrationController extends AbstractOscarController implements UsePro
            'organization_leader_role' => $organization_leader_role,
            OscarConfigurationService::document_use_version_in_name => $this->getOscarConfigurationService()->getDocumentUseVersionInName(),
            OscarConfigurationService::pfi_strict => $this->getOscarConfigurationService()->isPfiStrict(),
            OscarConfigurationService::pfi_strict_format => $this->getOscarConfigurationService()->getPfiRegex(),
            OscarConfigurationService::pfi_strict_format => $pfiFixed,
           "pfi_default_format" => $this->getOscarConfigurationService()->getConfiguration('validation.pfi'),
        ];
    }

+2 −1
Original line number Diff line number Diff line
@@ -44,7 +44,8 @@ class OscarConfigurationService implements ServiceLocatorAwareInterface
    public function isPfiStrict() :bool
    {
        $new = $this->getEditableConfKey(self::pfi_strict, null);
        if( $new == null ){

        if( $new === null ){
            return true;
        }
        return $new;
+11 −1
Original line number Diff line number Diff line
@@ -175,19 +175,29 @@ class ProjectGrantService implements UseGearmanJobLauncherService, UseOscarConfi
            'warnings' => [],
            'valids' => [],
            'count' => 0,
            'valid' => false
            'valid' => false,
            'error' => []
        ];

        $badPfi = false;

        $pfi = $this->getActivityRepository()->getDistinctPFI();
        foreach ($pfi as $pfiTested) {
            if( $pfiTested == "" ) continue;
            if( preg_match_all($regex, $pfiTested, $matches, PREG_SET_ORDER, 0)){
                $out['valids'][] = $pfiTested;
            } else {
                $badPfi = "Un ou plusieurs PFI ne correspondent pas au format attendu";
                $out['warnings'][] = $pfiTested;
            }
            $out['count']++;
        }
        if($badPfi){
            $out['error'][] = $badPfi;
        }
        if(!$regex){
            $out['error'][] = "Aucune regex renseignée";
        }

        $out['valid'] = count($out['warnings']) == 0;

+1 −1
Original line number Diff line number Diff line
@@ -181,7 +181,7 @@
                                    <span class="input-group-btn">
                                        <button class="btn btn-default" type="button" id="verifyPfi"
                                                @click="handlerVerify"
                                                >Vérifier {{ reg }}</button>
                                                >Vérifier</button>
                                    </span>
                                </div><!-- /input-group -->
                            </div><!-- /.col-lg-6 -->