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

Possibilité de saisir le Numéro National des Thèses (NNT) sur le formulaire du rendez-vous BU.

parent 1d9d3360
Loading
Loading
Loading
Loading
+1 −0
Changes for CHANGELOG.md: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@ Journal des modifications
4.2.2
-----
- Changement de séparateur de mots-clés libres et RAMEAU (; remplacé par *).
- Possibilité de saisir le Numéro National des Thèses (NNT) sur le formulaire du rendez-vous BU.

4.2.1
-----
+3 −2
Changes for doc/release-notes/v4.2.2.md: 3 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ git fetch --tags && git checkout --force 4.2.2 && bash ./install.sh
```sql
update metadonnee_these set mots_cles_libres_fr = replace(mots_cles_libres_fr, ';', '*'),
                            mots_cles_libres_ang = replace(mots_cles_libres_ang, ';', '*'),
                            mots_cles_rameau = replace(mots_cles_rameau, ';', '*')
;
                            mots_cles_rameau = replace(mots_cles_rameau, ';', '*');

alter table diffusion add if not exists nnt varchar(32);
```
+6 −6
Changes for module/Application/src/Application/Entity/Db/Diffusion.php: 6 added lines, 6 removed lines.
Original line number Diff line number Diff line
@@ -80,9 +80,9 @@ class Diffusion implements HistoriqueAwareInterface
    private $halId;

    /**
     * @var string
     * @var string|null
     */
    private $nnt;
    private ?string $nnt = null;

    /**
     * @var integer
@@ -379,18 +379,18 @@ class Diffusion implements HistoriqueAwareInterface
    }

    /**
     * @return string
     * @return ?string
     */
    public function getNNT()
    public function getNNT(): ?string
    {
        return $this->nnt;
    }

    /**
     * @param string $nnt
     * @param string|null $nnt
     * @return Diffusion
     */
    public function setNNT($nnt)
    public function setNNT(?string $nnt = null): self
    {
        $this->nnt = $nnt;
        return $this;
+9 −7
Changes for module/Application/src/Application/Form/Hydrator/RdvBuHydrator.php: 9 added lines, 7 removed lines.
Original line number Diff line number Diff line
@@ -6,9 +6,9 @@ use Application\Entity\Db\Diffusion;
use Application\Entity\Db\RdvBu;
use Application\Entity\Db\VersionFichier;
use Application\Service\FichierThese\FichierTheseServiceAwareTrait;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\OptimisticLockException;
use Doctrine\Laminas\Hydrator\DoctrineObject;
use Doctrine\ORM\EntityManager;
use Doctrine\ORM\ORMException;
use UnicaenApp\Exception\RuntimeException;

/**
@@ -20,7 +20,7 @@ class RdvBuHydrator extends DoctrineObject
{
    use FichierTheseServiceAwareTrait;

    private function existeVersionArchivable(RdvBu $rdvBu)
    private function existeVersionArchivable(RdvBu $rdvBu): int
    {
        return (int) $this->fichierTheseService->getRepository()->existeVersionArchivable($rdvBu->getThese());
    }
@@ -39,6 +39,7 @@ class RdvBuHydrator extends DoctrineObject
        if ($diffusion = $this->getDiffusion($rdvBu)) {
            $data['idOrcid'] = $diffusion->getOrcid();
            $data['halId'] = $diffusion->getHalId();
            $data['nnt'] = $diffusion->getNNT();
        }

        return $data;
@@ -46,10 +47,10 @@ class RdvBuHydrator extends DoctrineObject

    /**
     * @param array $data
     * @param object $rdvBu
     * @param RdvBu $rdvBu
     * @return RdvBu
     */
    public function hydrate(array $data, $rdvBu)
    public function hydrate(array $data, $rdvBu): RdvBu
    {
        // la case à cocher "version archivable fournie" est grisée
        if (!isset($data['versionArchivableFournie'])) {
@@ -62,9 +63,10 @@ class RdvBuHydrator extends DoctrineObject
        if ($diffusion = $this->getDiffusion($rdvBu)) {
            $diffusion->setOrcid($data['idOrcid']);
            $diffusion->setHalId($data['halId']);
            $diffusion->setNNT($data['nnt'] ?? null);
            try {
                $this->objectManager->flush($diffusion);
            } catch (OptimisticLockException $e) {
            } catch (ORMException $e) {
                throw new RuntimeException("Impossible d'enregistrer la Diffusion", null, $e);
            }
        }
@@ -76,7 +78,7 @@ class RdvBuHydrator extends DoctrineObject
     * @param RdvBu $rdvBu
     * @return Diffusion|null
     */
    private function getDiffusion(RdvBu $rdvBu)
    private function getDiffusion(RdvBu $rdvBu): ?Diffusion
    {
        // le RDV BU ne concerne que le dépôt de la version initiale
        $version = $this->fichierTheseService->fetchVersionFichier(VersionFichier::CODE_ORIG);
+15 −0
Changes for module/Application/src/Application/Form/RdvBuTheseForm.php: 15 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -116,6 +116,17 @@ class RdvBuTheseForm extends Form
            ],
        ]);

        $this->add([
            'type' => 'Text',
            'name' => 'nnt',
            'options' => [
                'label' => 'NNT (facultatif)',
            ],
            'attributes' => [
                'title' => "Numéro National des Thèses",
            ],
        ]);

        $this->add((new Submit('submit'))
            ->setValue("Enregistrer")
            ->setAttribute('class', 'btn btn-primary')
@@ -160,6 +171,10 @@ class RdvBuTheseForm extends Form
                'name' => 'halId',
                'required' => false,
            ],
            'nnt' => [
                'name' => 'nnt',
                'required' => false,
            ],
            'divers' => [
                'name' => 'divers',
                'required' => false,
Loading