Commit 012ca1c0 authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

[FIX] Proposition de soutenance > Fichiers associés > Téléversement d'un...

[FIX] Proposition de soutenance > Fichiers associés > Téléversement d'un justificatif : la liste des membres était toujours vide.
parent fc2da423
Loading
Loading
Loading
Loading
+1 −0
Changes for CHANGELOG.md: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ Journal des modifications
- Proposition de soutenance : possibilité de rendre facultative la saisie de la date et heure de soutenance si besoin.
- [FIX] Liste/recherche des utilisateurs : dysfonctionnement des filtres à cocher qui s'appliquait quelle qu'était leur valeur.
- [FIX] Ajout d'une mission d'enseignement : le bouton ne fonctionnait plus à cause d'une erreur de config de la route.
- [FIX] Proposition de soutenance > Fichiers associés > Téléversement d'un justificatif : la liste des membres était toujours vide.

8.0.0
-----
+5 −4
Changes for module/Soutenance/src/Soutenance/Controller/JustificatifController.php: 5 added lines, 4 removed lines.
Original line number Diff line number Diff line
@@ -3,21 +3,22 @@
namespace Soutenance\Controller;

use Application\Controller\AbstractController;
use Depot\Service\FichierThese\FichierTheseServiceAwareTrait;
use Fichier\Entity\Db\Fichier;
use Fichier\Entity\Db\NatureFichier;
use Fichier\Entity\Db\VersionFichier;
use Depot\Service\FichierThese\FichierTheseServiceAwareTrait;
use Laminas\Http\Response;
use Laminas\View\Model\ViewModel;
use Soutenance\Entity\Justificatif;
use Soutenance\Form\Justificatif\JustificatifFormAwareTrait;
use Soutenance\Provider\Parametre\SoutenanceParametres;
use Soutenance\Service\Justificatif\JustificatifServiceAwareTrait;
use Soutenance\Service\Membre\MembreServiceAwareTrait;
use Soutenance\Service\Proposition\PropositionServiceAwareTrait;
use Laminas\View\Model\ViewModel;
use UnicaenParametre\Service\Parametre\ParametreServiceAwareTrait;

class JustificatifController extends AbstractController {
class JustificatifController extends AbstractController
{
    use FichierTheseServiceAwareTrait;
    use JustificatifServiceAwareTrait;
    use MembreServiceAwareTrait;
@@ -78,10 +79,10 @@ class JustificatifController extends AbstractController {
        $justificatif = new Justificatif();
        $justificatif->setProposition($proposition);
        $form = $this->getJustificatifForm();
        $form->setMembresAsOptions($this->propositionService->extractMembresAsOptionsFromProposition($proposition));
        $form->setAttribute('action', $this->url()->fromRoute('soutenance/justificatif/ajouter-justificatif', ['these' => $these->getId()], [], true));
        $form->bind($justificatif);


        $request = $this->getRequest();
        if ($request->isPost()) {
            $data = $request->getPost();
+18 −5
Changes for module/Soutenance/src/Soutenance/Form/Justificatif/JustificatifForm.php: 18 added lines, 5 removed lines.
Original line number Diff line number Diff line
@@ -3,17 +3,22 @@
namespace Soutenance\Form\Justificatif;

use Fichier\Entity\Db\NatureFichier;
use Soutenance\Service\Proposition\PropositionServiceAwareTrait;
use Laminas\Form\Element\Button;
use Laminas\Form\Element\File;
use Laminas\Form\Element\Select;
use Laminas\Form\Form;
use Laminas\InputFilter\Factory;

class JustificatifForm extends Form {
    use PropositionServiceAwareTrait;
class JustificatifForm extends Form
{
    protected array $membresAsOptions = [];

    public function setMembresAsOptions(array $membresAsOptions): void
    {
        $this->membresAsOptions = $membresAsOptions;
    }

    public function init()
    public function init(): void
    {
        //Nature
        $this->add([
@@ -48,7 +53,6 @@ class JustificatifForm extends Form {
            'options' => [
                'label' => 'Associer à un membre du jury :',
                'empty_option' => 'Aucun',
                'value_options' => ($this->getObject()?$this->getPropositionService()->extractMembresAsOptionsFromProposition($this->getObject()->getProposition()):null),
                'attributes' => [
                    'class' => 'bootstrap-selectpicker show-tick',
                    'data-live-search' => 'true',
@@ -95,4 +99,13 @@ class JustificatifForm extends Form {
            ],
        ]));
    }

    public function prepare(): JustificatifForm
    {
        /** @var Select $membresSelect */
        $membresSelect = $this->get('membre');
        $membresSelect->setValueOptions($this->membresAsOptions);

        return parent::prepare();
    }
}
 No newline at end of file
+5 −15
Changes for module/Soutenance/src/Soutenance/Form/Justificatif/JustificatifFormAwareTrait.php: 5 added lines, 15 removed lines.
Original line number Diff line number Diff line
@@ -2,27 +2,17 @@

namespace Soutenance\Form\Justificatif;

trait JustificatifFormAwareTrait {

    /** @var JustificatifForm */
    private $justificatifForm;
trait JustificatifFormAwareTrait
{
    protected JustificatifForm $justificatifForm;

    /**
     * @return JustificatifForm
     */
    public function getJustificatifForm()
    public function getJustificatifForm(): JustificatifForm
    {
        return $this->justificatifForm;
    }

    /**
     * @param JustificatifForm $justificatifForm
     * @return JustificatifForm
     */
    public function setJustificatifForm($justificatifForm)
    public function setJustificatifForm(JustificatifForm $justificatifForm): void
    {
        $this->justificatifForm = $justificatifForm;
        return $this->justificatifForm;
    }

}
 No newline at end of file
+5 −8
Changes for module/Soutenance/src/Soutenance/Form/Justificatif/JustificatifFormFactory.php: 5 added lines, 8 removed lines.
Original line number Diff line number Diff line
@@ -3,24 +3,21 @@
namespace Soutenance\Form\Justificatif;

use Interop\Container\ContainerInterface;
use Soutenance\Service\Proposition\PropositionService;

class JustificatifFormFactory
{

    public function __invoke(ContainerInterface $container)
{
    /**
         * @var PropositionService $propositionService
     * @throws \Psr\Container\ContainerExceptionInterface
     * @throws \Psr\Container\NotFoundExceptionInterface
     */
        $propositionService = $container->get(PropositionService::class);

    public function __invoke(ContainerInterface $container): JustificatifForm
    {
        /** @var JusticatifHydrator $hydrator */
        $hydrator = $container->get('HydratorManager')->get(JusticatifHydrator::class);

        $form = new JustificatifForm();
        $form->setPropositionService($propositionService);
        $form->setHydrator($hydrator);

        return $form;
    }
}
 No newline at end of file