Commit cca3bdff authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Mise en place d'une zone de dépot du pv de soutrenance sur la page de présoutenance

parent c3cff74d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ Journal des modifications
6.0.3
-----
- [FIX] Signature de méthode setObject() modifiée en PHP8 dans Doctrine\Laminas\Hydrator\Strategy\AbstractCollectionStrategy.
- Mise en place d'une zone de dépot du pv de soutrenance sur la page de présoutenance

6.0.2
-----
+12 −1
Original line number Diff line number Diff line
@@ -11,7 +11,6 @@ use Soutenance\Form\Justificatif\JustificatifForm;
use Soutenance\Form\Justificatif\JustificatifFormFactory;
use Soutenance\Form\Justificatif\JustificatifHydratorFactory;
use Soutenance\Provider\Privilege\JustificatifPrivileges;
use Soutenance\Provider\Privilege\PresoutenancePrivileges;
use Soutenance\Provider\Privilege\PropositionPrivileges;
use Soutenance\Service\Justificatif\JustificatifService;
use Soutenance\Service\Justificatif\JustificatifServiceFactory;
@@ -74,6 +73,7 @@ return [
                    'action' => [
                        'ajouter-autorisation-soutenance',
                        'ajouter-rapport-soutenance',
                        'ajouter-proces-verbal-soutenance',
                    ],
                    'privileges' => PropositionPrivileges::PROPOSITION_MODIFIER_GESTION,
                ],
@@ -145,6 +145,17 @@ return [
                                    ],
                                ],
                            ],
                            'ajouter-proces-verbal-soutenance' => [
                                'type' => Segment::class,
                                'options' => [
                                    'route' => '/ajouter-proces-verbal-soutenance',
                                    'defaults' => [
                                        /** @see JustificatifController::ajouterProcesVerbalAction() */
                                        'controller' => JustificatifController::class,
                                        'action' => 'ajouter-proces-verbal-soutenance',
                                    ],
                                ],
                            ],
                        ],
                    ],
                ],
+40 −0
Original line number Diff line number Diff line
@@ -204,4 +204,44 @@ class JustificatifController extends AbstractController {
        $vm->setTemplate('soutenance/justificatif/ajouter');
        return $vm;
    }

    public function ajouterProcesVerbalSoutenanceAction() : ViewModel
    {
        $these = $this->requestedThese();
        $proposition = $this->getPropositionService()->findOneForThese($these);

        $fichier = new Fichier();
        $nature = $this->fichierTheseService->fetchNatureFichier(NatureFichier::CODE_PV_SOUTENANCE);
        $fichier->setNature($nature);

        $justificatif = new Justificatif();
        $justificatif->setProposition($proposition);
        $form = $this->getJustificatifForm();
        $form->setAttribute('action', $this->url()->fromRoute('soutenance/justificatif/ajouter-proces-verbal-soutenance', ['these' => $these->getId()], [], true));
        $form->bind($justificatif);
        $form->init();

        $request = $this->getRequest();
        if ($request->isPost()) {
//            $data = $request->getPost();
            $files = ['files' => $request->getFiles()->toArray()];

            if (!empty($files)) {
                $version = $this->fichierTheseService->fetchVersionFichier(VersionFichier::CODE_ORIG);
                $fichiers = $this->fichierTheseService->createFichierThesesFromUpload($these, $files, $nature, $version);
                $justificatif->setFichier($fichiers[0]);
                $this->getJustificatifService()->create($justificatif);
            }
            exit();
        }


        $vm =  new ViewModel([
            'title' => "Téléversement du procès-verbal de soutenance",
            'these' => $these,
            'form' => $form,
        ]);
        $vm->setTemplate('soutenance/justificatif/ajouter');
        return $vm;
    }
}
 No newline at end of file
+2 −0
Original line number Diff line number Diff line
@@ -109,6 +109,7 @@ class PresoutenanceController extends AbstractController

        $autorisation = $proposition->getJustificatif(NatureFichier::CODE_AUTORISATION_SOUTENANCE, null);
        $rapport = $proposition->getJustificatif(NatureFichier::CODE_RAPPORT_SOUTENANCE, null);
        $pv = $proposition->getJustificatif(NatureFichier::CODE_PV_SOUTENANCE, null);

        /** ==> clef: Membre->getActeur()->getIndividu()->getId() <== */
        $engagements = $this->getEngagementImpartialiteService()->getEngagmentsImpartialiteByThese($these);
@@ -134,6 +135,7 @@ class PresoutenanceController extends AbstractController
            'deadline' => $this->getParametreService()->getValeurForParametre(SoutenanceParametres::CATEGORIE, SoutenanceParametres::DELAI_RETOUR),

            'autorisation' => $autorisation,
            'pv' => $pv,
            'rapport' => $rapport,
        ]);
    }
+2 −2
Original line number Diff line number Diff line
@@ -53,7 +53,7 @@ $tousLesAvis = count($rapporteurs) === count($avis) ;

                <?php
                $acteur = $rapporteur->getActeur();
                $avi = ($acteur !== null)?$avis[$acteur->getIndividu()->getId()]:null;
                $avi = ($acteur !== null && isset($avis[$acteur->getIndividu()->getId()]))?$avis[$acteur->getIndividu()->getId()]:null;

                ?>

@@ -101,7 +101,7 @@ $tousLesAvis = count($rapporteurs) === count($avis) ;
                    </td>
                    <td>
                        <?php if ($acteur) : ?>
                            <?php if ($engagements[$acteur->getIndividu()->getId()] && $avis[$acteur->getIndividu()->getId()]) : ?>
                            <?php if (isset($engagements[$acteur->getIndividu()->getId()]) && isset($avis[$acteur->getIndividu()->getId()])) : ?>
                                <a
                                    <?php /** @see TELECHARGER FICHIER */ ?>
                                    href=" <?php echo $this->urlFichierThese->telechargerFichierThese($these, $avis[$acteur->getIndividu()->getId()]->getFichier()); ?>" >
Loading