Commit 8718579c authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Merge branch 'release-2.1.6'

parents 2db11c9c 4236d384
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ Journal des modifications
- Modification du document de soutenance pour signature du président pour faire figurer : numero étudiant, nouveau titre et les rôles
- Possibilité de saisir une intervention permetant au directeur de déclarer le président du jury en distanciel 
- Masquage possible de certaines origines de financement (ex : handicap).
- Signature pour convocation : ajout dans établissement d'inscription + usage dans les convocations de soutenance
- [FIX] Usurpation d'un compte local en BDD
- [FIX] Plantage de la page Assistance en cas d'authentification locale BDD
- [FIX] Injection manquante de la source SYGAL dans la création manuelle d'un utilisateur local (identifiant = adresse mail)
+10 −1
Original line number Diff line number Diff line
@@ -183,5 +183,14 @@ where not exists (
)
;

INSERT INTO SYGAL_TEST.SOUTENANCE_CONFIGURATION (ID, CODE, LIBELLE, VALEUR) VALUES (18, 'PERIODE_INTERVENTION_DIRECTEUR', 'Période autorisant les directeurs à intervenir', '7');
INSERT INTO SOUTENANCE_CONFIGURATION (ID, CODE, LIBELLE, VALEUR) VALUES (18, 'PERIODE_INTERVENTION_DIRECTEUR', 'Période autorisant les directeurs à intervenir', '7');

--------------------------------
--- SIGNATURE CONVOCATION ------
--------------------------------

alter table ETABLISSEMENT add SIGNATURE_CONVOCATION_ID NUMBER;
alter table ETABLISSEMENT add constraint ETABLISSEMENT_FICHIER_ID_FK foreign key (SIGNATURE_CONVOCATION_ID) references FICHIER on delete set null;

INSERT INTO NATURE_FICHIER (ID, CODE, LIBELLE) VALUES (NATURE_FICHIER_ID_SEQ.nextval, 'SIGNATURE_CONVOCATION', 'Signature pour la convocation à la soutenance');
```
+20 −0
Original line number Diff line number Diff line
@@ -45,6 +45,8 @@ return [
                    'action'     => [
                        'modifier',
                        'supprimer-logo',
                        'televerser-signature-convocation',
                        'supprimer-signature-convocation',
                    ],
                    'privileges' => [
                        StructurePrivileges::STRUCTURE_MODIFICATION_TOUTES_STRUCTURES,
@@ -124,6 +126,24 @@ return [
                            ],
                        ],
                    ],
                    'televerser-signature-convocation' => [
                        'type'          => Segment::class,
                        'options'       => [
                            'route'       => '/televerser-signature-convocation/:structure',
                            'defaults'    => [
                                'action' => 'televerser-signature-convocation',
                            ],
                        ],
                    ],
                    'supprimer-signature-convocation' => [
                        'type'          => Segment::class,
                        'options'       => [
                            'route'       => '/supprimer-signature-convocation/:structure',
                            'defaults'    => [
                                'action' => 'supprimer-signature-convocation',
                            ],
                        ],
                    ],
                ],
            ],
        ],
+43 −0
Original line number Diff line number Diff line
@@ -5,10 +5,13 @@ namespace Application\Controller;
use Application\Entity\Db\Etablissement;
use Application\Entity\Db\Individu;
use Application\Entity\Db\IndividuRole;
use Application\Entity\Db\NatureFichier;
use Application\Entity\Db\Role;
use Application\Entity\Db\TypeStructure;
use Application\Service\Etablissement\EtablissementService;
use Application\Service\Etablissement\EtablissementServiceAwareTrait;
use Application\Service\Fichier\FichierServiceAwareTrait;
use Application\Service\NatureFichier\NatureFichierServiceAwareTrait;
use Application\Service\Role\RoleServiceAwareTrait;
use Application\SourceCodeStringHelperAwareTrait;
use UnicaenApp\Exception\RuntimeException;
@@ -21,6 +24,8 @@ use Zend\View\Model\ViewModel;
class EtablissementController extends StructureConcreteController
{
    use EtablissementServiceAwareTrait;
    use FichierServiceAwareTrait;
    use NatureFichierServiceAwareTrait;
    use RoleServiceAwareTrait;
    use SourceCodeStringHelperAwareTrait;

@@ -65,6 +70,7 @@ class EtablissementController extends StructureConcreteController
    public function informationAction()
    {
        $id = $this->params()->fromRoute('structure');
        /** @var Etablissement $etablissement */
        $etablissement = $this->getStructureConcreteService()->getRepository()->findByStructureId($id);
        if ($etablissement === null) {
            throw new RuntimeException("Aucun établissement ne possède l'identifiant renseigné.");
@@ -104,6 +110,7 @@ class EtablissementController extends StructureConcreteController
            'roleListing'     => $roleListings,
            'individuListing' => $individuListings,
            'logoContent'     => $this->structureService->getLogoStructureContent($etablissement),
            'signatureConvocation' => $this->etablissementService->getSignatureConvocationContent($etablissement),
        ]);
    }

@@ -138,4 +145,40 @@ class EtablissementController extends StructureConcreteController

        return $viewModel;
    }

    /** gestion des signatures */
    public function televerserSignatureConvocationAction()
    {
        $structure = $this->getStructureService()->getRequestedStructure($this);
        $etablissement = $this->getStructureConcreteService()->getRepository()->findByStructureId($structure->getId());
        $nature = $this->natureFichierService->getRepository()->findOneBy(['code' => NatureFichier::CODE_SIGNATURE_CONVOCATION]);
        $request = $this->getRequest();
        if ($request->isPost()) {
                $files = $request->getFiles()->toArray();
                $fichiers = $this->fichierService->createFichiersFromUpload(['files' => $files], $nature);
                $this->fichierService->saveFichiers($fichiers);
                $etablissement->setCheminSignatureConvocation($fichiers[0]);
                $this->getEtablissementService()->update($etablissement);
        }

        $vm =  new ViewModel([
            'title' => "Ajout d'une signature pour les convocation pour l'établissement [".$structure->getLibelle()."]",
            'nature' => 'SIGNATURE_CONVOCATION',
            'action' => $this->url()->fromRoute('etablissement/televerser-signature-convocation', ['structure' => $structure->getId()], [], true),
        ]);
        $vm->setTemplate('application/etablissement/televerser-document');
        return $vm;
    }

    public function supprimerSignatureConvocationAction()
    {
        /** @var Etablissement $etablissement */
        $structure = $this->getStructureService()->getRequestedStructure($this);
        $etablissement = $this->getStructureConcreteService()->getRepository()->findByStructureId($structure->getId());
        $this->fichierService->supprimerFichiers([$etablissement->getSignatureConvocation()]);
        $etablissement->setSignatureConvocation(null);
        $this->etablissementService->update($etablissement);

        return $this->redirect()->toRoute($this->routeName."/information", [], ['query' => ['selected' => $structure->getId()], "fragment" => $structure->getId()], true);
    }
}
 No newline at end of file
+7 −0
Original line number Diff line number Diff line
@@ -5,7 +5,9 @@ namespace Application\Controller\Factory;
use Application\Controller\EtablissementController;
use Application\Form\EtablissementForm;
use Application\Service\Etablissement\EtablissementService;
use Application\Service\Fichier\FichierService;
use Application\Service\Individu\IndividuService;
use Application\Service\NatureFichier\NatureFichierService;
use Application\Service\Role\RoleService;
use Application\Service\Structure\StructureService;
use Application\SourceCodeStringHelper;
@@ -26,16 +28,21 @@ class EtablissementControllerFactory

        /**
         * @var EtablissementService $etablissmentService
         * @var FichierService $fichierService
         * @var IndividuService $individuService
         * @var RoleService $roleService
         * @var StructureService $structureService
         */
        $etablissmentService = $container->get('EtablissementService');
        $fichierService = $container->get(FichierService::class);
        $natureService = $container->get(NatureFichierService::class);
        $roleService = $container->get('RoleService');
        $structureService = $container->get(StructureService::class);

        $controller = new EtablissementController();
        $controller->setEtablissementService($etablissmentService);
        $controller->setFichierService($fichierService);
        $controller->setNatureFichierService($natureService);
        $controller->setRoleService($roleService);
        $controller->setStructureService($structureService);
        $controller->setStructureForm($form);
Loading