Commit 549a406f authored by joriot221's avatar joriot221
Browse files

Recuperation des chemins pedagogique lors de la restauration d'une etape

parent 7735a5b7
Loading
Loading
Loading
Loading
+11 −2
Changes for module/Application/src/Controller/OffreFormation/EtapeController.php: 11 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@
namespace Application\Controller\OffreFormation;

use Application\Controller\AbstractController;
use Application\Entity\Db\CheminPedagogique;
use Application\Entity\Db\DomaineFonctionnel;
use Application\Entity\Db\ElementPedagogique;
use Application\Entity\Db\Etape;
@@ -10,6 +11,7 @@ use Application\Entity\Db\Structure;
use Application\Entity\Db\TypeFormation;
use Application\Form\OffreFormation\TauxMixite\Traits\TauxMixiteFormAwareTrait;
use Application\Form\OffreFormation\Traits\EtapeSaisieAwareTrait;
use Application\Service\Traits\CheminPedagogiqueServiceAwareTrait;
use Application\Service\Traits\ContextServiceAwareTrait;
use Application\Service\Traits\ElementPedagogiqueServiceAwareTrait;
use Application\Service\Traits\EtapeServiceAwareTrait;
@@ -27,6 +29,7 @@ class EtapeController extends AbstractController
    use NiveauEtapeServiceAwareTrait;
    use EtapeSaisieAwareTrait;
    use TauxMixiteFormAwareTrait;
    use CheminPedagogiqueServiceAwareTrait;


    protected function saisirAction()
@@ -85,9 +88,15 @@ class EtapeController extends AbstractController

        $elems = $this->em()->getRepository(ElementPedagogique::class)->findBy([
            'etape'            => $etape,
            'histodestruction' => null,
            'histoDestruction' => null,
        ]);

        foreach ($elems as $elem) {
            $entity = $this->getServiceCheminPedagogique()->newEntity();
            /* @see CheminPedagogique $entity */
            $entity->setEtape($etape);
            $entity->setElementPedagogique($elem);
            $this->getServiceCheminPedagogique()->save($entity);
        }

        return $this->redirect()->toRoute('of', ['etape' => $etape->getId()], [], true);
    }
+26 −0
Changes for module/Application/src/Service/CheminPedagogiqueService.php: 26 added lines, 0 removed lines.
Original line number Diff line number Diff line
<?php

namespace Application\Service;
use Application\Entity\Db\CheminPedagogique;
use Application\Service\Traits\SourceServiceAwareTrait;

/**
@@ -23,6 +24,8 @@ class CheminPedagogiqueService extends AbstractEntityService
        return \Application\Entity\Db\CheminPedagogique::class;
    }



    /**
     * Retourne l'alias d'entité courante
     *
@@ -33,6 +36,8 @@ class CheminPedagogiqueService extends AbstractEntityService
        return 'cp';
    }



    /**
     * Retourne une nouvelle entité, initialisée avec les bons paramètres
     * @return Etape
@@ -43,6 +48,27 @@ class CheminPedagogiqueService extends AbstractEntityService
        // toutes les entités créées ont OSE pour source!!
        $entity->setSource($this->getServiceSource()->getOse());
        $entity->setOrdre(1);

        return $entity;
    }



    /**
     * @param CheminPedagogique $entity
     *
     * @return CheminPedagogique
     */
    public function save($entity)
    {
        if (!$entity->getSource()) {
            $entity->setSource($this->getServiceSource()->getOse());
        }
        if (!$entity->getSourceCode()) {
            $prefix = 'EP' . $entity->getEtape()->getId() . $entity->getElementPedagogique()->getId();
            $entity->setSourceCode(uniqid($prefix));
        }

        return parent::save($entity); // TODO: Change the autogenerated stub
    }
}
 No newline at end of file