Commit 7ca2d3ed authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Module Rapport d'activité : utilisation des années universitaires...

Module Rapport d'activité : utilisation des années universitaires d'inscription pour calculer la liste des années sélectionnables dans le formulaire
parent 0428b54d
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -6,7 +6,7 @@ use Application\Filter\AnneeUnivFormatter;
use DateInterval;
use DateTime;

class AnneeUniv
class AnneeUniv implements AnneeUnivInterface
{
    /**
     * Spécification pour calculer la date de bascule d'une année universitaire sur la suivante.
@@ -114,6 +114,11 @@ class AnneeUniv
        return $this->formatter->filter($this->premiereAnnee, $separator);
    }

    public function getAnneeUnivToString(): string
    {
        return $this->toString();
    }

    /**
     * @return string
     */
+10 −0
Original line number Diff line number Diff line
<?php

namespace Application\Entity;

interface AnneeUnivInterface
{
    public function getPremiereAnnee(): int;

    public function getAnneeUnivToString(): string;
}
 No newline at end of file
+4 −0
Original line number Diff line number Diff line
@@ -25,6 +25,7 @@ use RapportActivite\Service\Fichier\RapportActiviteFichierServiceAwareTrait;
use RapportActivite\Service\RapportActiviteServiceAwareTrait;
use SplObjectStorage;
use These\Entity\Db\These;
use These\Service\TheseAnneeUniv\TheseAnneeUnivServiceAwareTrait;
use UnicaenApp\Exception\RuntimeException;

class RapportActiviteController extends AbstractController
@@ -36,6 +37,7 @@ class RapportActiviteController extends AbstractController
    use RapportActiviteCreationRuleAwareTrait;
    use RapportActiviteOperationRuleAwareTrait;
    use ValidationServiceAwareTrait;
    use TheseAnneeUnivServiceAwareTrait;

    private RapportActiviteAnnuelForm $annuelForm;
    private RapportActiviteFinContratForm $finContratForm;
@@ -294,6 +296,8 @@ class RapportActiviteController extends AbstractController
    private function initForm(RapportActiviteAbstractForm $form, RapportActivite $rapportActivite)
    {
        if ($rapportActivite->getId() === null) {
            $anneesUnivs = $rapportActivite->getThese()->getAnneesUnivInscription();
            $this->rapportActiviteCreationRule->setAnneesUnivs($anneesUnivs->toArray());
            $anneesUnivsPossibles = $this->rapportActiviteCreationRule
                ->setRapportsExistants($this->rapportActiviteService->findRapportsForThese($rapportActivite->getThese()))
                ->getAnneesUnivsDisponibles();
+0 −7
Original line number Diff line number Diff line
@@ -12,7 +12,6 @@ use RapportActivite\Rule\Creation\RapportActiviteCreationRule;
use RapportActivite\Rule\Operation\RapportActiviteOperationRule;
use RapportActivite\Service\Fichier\RapportActiviteFichierService;
use RapportActivite\Service\RapportActiviteService;
use These\Service\TheseAnneeUniv\TheseAnneeUnivService;

class RapportActiviteControllerFactory
{
@@ -53,14 +52,8 @@ class RapportActiviteControllerFactory
        $controller->setFinContratForm($rapportActiviteFinContratForm);

        // rules
        /** @var \These\Service\TheseAnneeUniv\TheseAnneeUnivService $theseAnneeUnivService */
        $theseAnneeUnivService = $container->get(TheseAnneeUnivService::class);
        /** @var \RapportActivite\Rule\Creation\RapportActiviteCreationRule $rapportActiviteCreationRule */
        $rapportActiviteCreationRule = $container->get(RapportActiviteCreationRule::class);
        $rapportActiviteCreationRule->setAnneesUnivs([
            $theseAnneeUnivService->anneeUnivCourante(),
            $theseAnneeUnivService->anneeUnivPrecedente(),
        ]);
        $controller->setRapportActiviteCreationRule($rapportActiviteCreationRule);

        /** @var \RapportActivite\Rule\Operation\RapportActiviteOperationRule $rapportActiviteOperationRule */
+5 −14
Original line number Diff line number Diff line
@@ -2,7 +2,6 @@

namespace RapportActivite\Form;

use Application\Entity\AnneeUniv;
use Laminas\Filter\StringTrim;
use Laminas\Form\Element\Csrf;
use Laminas\Form\Element\Hidden;
@@ -17,7 +16,6 @@ use RapportActivite\Fieldset\ActionDiffusionCultureScientifiqueFieldset;
use RapportActivite\Fieldset\AutreActiviteFieldset;
use RapportActivite\Fieldset\FormationFieldset;
use SplObjectStorage;
use These\Entity\Db\TheseAnneeUniv;
use UnicaenApp\Form\Element\Collection;

/**
@@ -51,20 +49,13 @@ abstract class RapportActiviteAbstractForm extends Form implements InputFilterPr
    {
        $valuesOptions = [];

        /** @var \Application\Entity\AnneeUnivInterface $anneeUniv */
        while ($anneeUniv = $this->anneesUnivs->current()) {
            $infos = $this->anneesUnivs->getInfo();

            if ($anneeUniv instanceof TheseAnneeUniv) {
                $data = [
                    'value' => $anneeUniv->getAnneeUniv(),
                    'label' => $anneeUniv->getAnneeUnivToString()
                ];
            } elseif ($anneeUniv instanceof AnneeUniv) {
            $data = [
                'value' => $anneeUniv->getPremiereAnnee(),
                    'label' => (string)$anneeUniv
                'label' => $anneeUniv->getAnneeUnivToString()
            ];
            }
            $data['attributes'] = $infos;
            $valuesOptions[] = $data;

Loading