Commit e1e606ef authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Nouveau document téléversable pour une structure : Signature figurant sur la...

Nouveau document téléversable pour une structure : Signature figurant sur la page de validation d'un rapport d'activité
parent 04179e7b
Loading
Loading
Loading
Loading
+6 −5
Changes for module/Application/src/Application/Controller/EcoleDoctoraleController.php: 6 added lines, 5 removed lines.
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@

namespace Application\Controller;

use Application\Entity\Db\EcoleDoctorale;
use Application\Entity\Db\TypeStructure;
use Application\Service\CoEncadrant\CoEncadrantServiceAwareTrait;
use Application\Service\EcoleDoctorale\EcoleDoctoraleService;
@@ -46,15 +47,15 @@ class EcoleDoctoraleController extends StructureConcreteController
    /**
     * @return ViewModel
     */
    public function informationAction()
    public function informationAction(): ViewModel
    {
        $id = $this->params()->fromRoute('structure');
        $structureConcrete = $this->getStructureConcreteService()->getRepository()->findByStructureId($id);
        $viewModel = parent::informationAction();

        /** @var EcoleDoctorale $structureConcrete */
        $structureConcrete = $viewModel->getVariable('structure');
        $coencadrants = $this->getCoEncadrantService()->getCoEncadrantsByStructureConcrete($structureConcrete, false);
        $contenus = $this->getStructureDocumentService()->getContenusFichiers($structureConcrete->getStructure());

        $viewModel = parent::informationAction();

        $viewModel->setVariables([
            'ecole' => $viewModel->getVariable('structure'),
            'coencadrants' => $coencadrants,
+1 −1
Changes for module/Application/src/Application/Controller/EtablissementController.php: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -64,7 +64,7 @@ class EtablissementController extends StructureConcreteController
    /**
     * @return ViewModel
     */
    public function informationAction()
    public function informationAction(): ViewModel
    {
        $id = $this->params()->fromRoute('structure');
        /** @var Etablissement $etablissement */
+1 −1
Changes for module/Application/src/Application/Controller/StructureConcreteController.php: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -71,7 +71,7 @@ abstract class StructureConcreteController extends AbstractController
    /**
     * @return ViewModel
     */
    public function informationAction()
    public function informationAction(): ViewModel
    {
        $id = $this->params()->fromRoute('structure');
        $structureConcrete = $this->getStructureConcreteService()->getRepository()->findByStructureId($id);
+12 −8
Changes for module/Application/src/Application/Controller/StructureController.php: 12 added lines, 8 removed lines.
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ use Application\Service\Role\RoleServiceAwareTrait;
use Application\Service\Structure\StructureServiceAwareTrait;
use Application\Service\StructureDocument\StructureDocumentServiceAwareTrait;
use Application\Service\UniteRecherche\UniteRechercheServiceAwareTrait;
use Laminas\Http\Response;
use Laminas\View\Model\ViewModel;

class StructureController extends AbstractController
@@ -129,26 +130,28 @@ class StructureController extends AbstractController

    /** GESTION DES DOCUMENTS LIES AUX STRUCTURES *********************************************************************/

    public function televerserDocumentAction()
    public function televerserDocumentAction(): ViewModel
    {
        $structure = $this->getStructureService()->getRequestedStructure($this);
        $natures = [$this->natureFichierService->getRepository()->findOneBy(['code' => NatureFichier::CODE_SIGNATURE_CONVOCATION]) ];
        $etablissements = $this->getEtablissementService()->getRepository()->findAllEtablissementsInscriptions();
        $structure = $this->structureService->getRequestedStructure($this);
        $natures = $this->natureFichierService->findAllByCodes([
            NatureFichier::CODE_SIGNATURE_CONVOCATION,
            NatureFichier::CODE_SIGNATURE_RAPPORT_ACTIVITE,
        ]);
        $etablissements = $this->etablissementService->getRepository()->findAllEtablissementsInscriptions();

        $request = $this->getRequest();
        if ($request->isPost()) {
            $data = $request->getPost();
            /** @var Etablissement|null $etablissement */
            $etablissement = null;
            if ($data['etablissement'] !== 'Aucun') $etablissement = $this->getEtablissementService()->getRepository()->find($data['etablissement']);
            if ($data['etablissement'] !== 'Aucun') $etablissement = $this->etablissementService->getRepository()->find($data['etablissement']);
            /** @var NatureFichier $nature */
            $nature = $this->natureFichierService->getRepository()->find($data['nature']);

            $files = $request->getFiles()->toArray();
            $fichiers = $this->fichierService->createFichiersFromUpload(['files' => $files], $nature);
            $this->fichierService->saveFichiers($fichiers);

            $this->getStructureDocumentService()->addDocument($structure, $etablissement, $nature, $fichiers[0]);
            $this->structureDocumentService->addDocument($structure, $etablissement, $nature, $fichiers[0]);
        }

        $vm =  new ViewModel([
@@ -158,10 +161,11 @@ class StructureController extends AbstractController
            'etablissements' => $etablissements,
        ]);
        $vm->setTemplate('application/structure/televerser-document');

        return $vm;
    }

    public function supprimerDocumentAction()
    public function supprimerDocumentAction(): Response
    {
        /** @var Etablissement $etablissement */
        $structure = $this->getStructureService()->getRequestedStructure($this);
+7 −9
Changes for module/Application/src/Application/Controller/UniteRechercheController.php: 7 added lines, 9 removed lines.
Original line number Diff line number Diff line
@@ -53,21 +53,19 @@ class UniteRechercheController extends StructureConcreteController
    /**
     * @return ViewModel
     */
    public function informationAction()
    public function informationAction(): ViewModel
    {
        $id = $this->params()->fromRoute('structure');
        $structureConcrete = $this->getStructureConcreteService()->getRepository()->findByStructureId($id);
        $coencadrants = $this->getCoEncadrantService()->getCoEncadrantsByStructureConcrete($structureConcrete, false);
        $contenus = $this->getStructureDocumentService()->getContenusFichiers($structureConcrete->getStructure());

        $viewModel = parent::informationAction();

        $unite = $viewModel->getVariable('structure');
        /** @var UniteRecherche $structureConcrete */
        $structureConcrete = $viewModel->getVariable('structure');
        $coencadrants = $this->getCoEncadrantService()->getCoEncadrantsByStructureConcrete($structureConcrete, false);
        $contenus = $this->getStructureDocumentService()->getContenusFichiers($structureConcrete->getStructure());

        $etablissementsRattachements = $this->uniteRechercheService->findEtablissementRattachement($unite);
        $etablissementsRattachements = $this->uniteRechercheService->findEtablissementRattachement($structureConcrete);

        $viewModel->setVariables([
            'unite'                       => $unite,
            'unite' => $structureConcrete,
            'etablissementsRattachements' => $etablissementsRattachements,
            'coencadrants' => $coencadrants,
            'contenus' => $contenus,
Loading