Commit 4f406b5b authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Apparition des années universitaires d'inscription : mapping, filtre, page identité.

parent 19b42fb5
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@
        <one-to-many field="rdvBus" target-entity="Application\Entity\Db\RdvBu" mapped-by="these"/>
        <one-to-many field="validations" target-entity="Application\Entity\Db\Validation" mapped-by="these"/>
        <one-to-many field="titreAcces" target-entity="Application\Entity\Db\TitreAcces" mapped-by="these"/>
        <one-to-many field="anneesUnivInscription" target-entity="Application\Entity\Db\TheseAnneeUniv" mapped-by="these"/>

        <many-to-one field="etablissement" target-entity="Application\Entity\Db\Etablissement" fetch="LAZY">
            <join-columns>
+49 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping"
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                  xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">

    <entity name="Application\Entity\Db\TheseAnneeUniv" table="THESE_ANNEE_UNIV">

        <id name="id" type="integer" column="ID">
            <generator strategy="SEQUENCE"/>
        </id>

        <field name="anneeUniv" type="integer" column="ANNEE_UNIV"/>

        <field name="histoCreation" type="datetime" column="HISTO_CREATION"/>
        <field name="histoDestruction" type="datetime" column="HISTO_DESTRUCTION" nullable="true"/>
        <field name="histoModification" type="datetime" column="HISTO_MODIFICATION"/>

        <field name="sourceCode" column="SOURCE_CODE" length="64" nullable="true"/>

        <many-to-one field="these" target-entity="Application\Entity\Db\These">
            <join-columns>
                <join-column name="THESE_ID" referenced-column-name="ID"/>
            </join-columns>
        </many-to-one>

        <many-to-one field="source" target-entity="Application\Entity\Db\Source">
            <join-columns>
                <join-column name="SOURCE_ID" referenced-column-name="ID"/>
            </join-columns>
        </many-to-one>

        <many-to-one field="histoModificateur" target-entity="Application\Entity\Db\Utilisateur">
            <join-columns>
                <join-column name="HISTO_MODIFICATEUR_ID" referenced-column-name="ID"/>
            </join-columns>
        </many-to-one>
        <many-to-one field="histoDestructeur" target-entity="Application\Entity\Db\Utilisateur">
            <join-columns>
                <join-column name="HISTO_DESTRUCTEUR_ID" referenced-column-name="ID"/>
            </join-columns>
        </many-to-one>
        <many-to-one field="histoCreateur" target-entity="Application\Entity\Db\Utilisateur">
            <join-columns>
                <join-column name="HISTO_CREATEUR_ID" referenced-column-name="ID"/>
            </join-columns>
        </many-to-one>

    </entity>
</doctrine-mapping>
+27 −1
Original line number Diff line number Diff line
@@ -2,7 +2,6 @@

namespace Application\Entity\Db;

use UnicaenImport\Entity\Db\Traits\SourceAwareTrait;
use Application\Filter\TitreApogeeFilter;
use Assert\Assertion;
use DateTime;
@@ -12,6 +11,7 @@ use UnicaenApp\Entity\HistoriqueAwareInterface;
use UnicaenApp\Entity\HistoriqueAwareTrait;
use UnicaenApp\Exception\RuntimeException;
use UnicaenApp\Util;
use UnicaenImport\Entity\Db\Traits\SourceAwareTrait;
use Zend\Permissions\Acl\Resource\ResourceInterface;

/**
@@ -228,6 +228,11 @@ class These implements HistoriqueAwareInterface, ResourceInterface
     */
    private $financements;

    /**
     * @var ArrayCollection
     */
    private $anneesUnivInscription;

    /**
     * @return TitreApogeeFilter
     */
@@ -250,6 +255,7 @@ class These implements HistoriqueAwareInterface, ResourceInterface
        $this->miseEnLignes = new ArrayCollection();
        $this->acteurs = new ArrayCollection();
        $this->rdvBus = new ArrayCollection();
        $this->anneesUnivInscription = new ArrayCollection();
    }

    /**
@@ -1185,6 +1191,26 @@ class These implements HistoriqueAwareInterface, ResourceInterface
        $this->etablissement = $etablissement;
    }

    /**
     * @return ArrayCollection
     */
    public function getAnneesUnivInscription()
    {
        return $this->anneesUnivInscription;
    }

    /**
     * Retourne les années universitaires d'inscription séparées par une virgule.
     *
     * @param string $glue Séparateur, ex: ' - '
     * @return string Ex: "2015/2016, 2016/2017, 2017/2018"
     */
    public function getAnneesUnivInscriptionToString($glue = ', ')
    {
        return implode($glue, array_map(function(TheseAnneeUniv $tau) {
            return $tau->getAnneeUniv1ereInscriptionToString();
        }, $this->anneesUnivInscription->toArray()));
    }

    /**
     * @return ArrayCollection
+122 −0
Original line number Diff line number Diff line
<?php

namespace Application\Entity\Db;

use UnicaenApp\Entity\HistoriqueAwareInterface;
use UnicaenApp\Entity\HistoriqueAwareTrait;
use UnicaenImport\Entity\Db\Traits\SourceAwareTrait;

/**
 * TheseAnneeUniv
 */
class TheseAnneeUniv implements HistoriqueAwareInterface
{
    use HistoriqueAwareTrait;
    use SourceAwareTrait;

    /**
     * @var integer
     */
    private $id;

    /**
     * @var string
     */
    protected $sourceCode;

    /**
     * @var integer
     */
    protected $anneeUniv;

    /**
     * @var These
     */
    private $these;

    /**
     * @return string
     */
    public function __toString()
    {
        return $this->getAnneeUniv1ereInscriptionToString();
    }

    /**
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set sourceCode
     *
     * @param string $sourceCode
     *
     * @return self
     */
    public function setSourceCode($sourceCode)
    {
        $this->sourceCode = $sourceCode;

        return $this;
    }

    /**
     * Get sourceCode
     *
     * @return string
     */
    public function getSourceCode()
    {
        return $this->sourceCode;
    }

    /**
     * @return int
     */
    public function getAnneeUniv()
    {
        return $this->anneeUniv;
    }

    /**
     * @param int $anneeUniv
     * @return TheseAnneeUniv
     */
    public function setAnneeUniv($anneeUniv)
    {
        $this->anneeUniv = $anneeUniv;

        return $this;
    }

    /**
     * @return int
     */
    public function getAnneeUniv1ereInscriptionToString()
    {
        return $this->anneeUniv . '/' . ($this->anneeUniv + 1);
    }

    /**
     * @return These
     */
    public function getThese()
    {
        return $this->these;
    }

    /**
     * @param These $these
     * @return self
     */
    public function setThese(These $these)
    {
        $this->these = $these;

        return $this;
    }
}
+14 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ class TheseSelectFilter extends TheseFilter
    const NAME_uniteRecherche = 'uniteRecherche';
    const NAME_anneePremiereInscription = 'anneePremiereInscription';
    const NAME_anneeUniv1ereInscription = 'anneeUniv1ereInscription';
    const NAME_anneeUnivInscription = 'anneeUnivInscription';
    const NAME_anneeSoutenance = 'anneeSoutenance';
    const NAME_discipline = 'discipline';
    const NAME_domaineScientifique = 'domaineScientifique';
@@ -115,6 +116,19 @@ class TheseSelectFilter extends TheseFilter
                }
                break;

            case self::NAME_anneeUnivInscription:
                if ($filterValue === 'NULL') {
                    $qb
                        ->leftJoin('t.anneesUnivInscription', 'aui')
                        ->andWhere('aui.anneeUniv IS NULL');
                } else {
                    $qb
                        ->join('t.anneesUnivInscription', 'aui')
                        ->andWhere('aui.anneeUniv = :anneeUniv')
                        ->setParameter('anneeUniv', $filterValue);
                }
                break;

            case self::NAME_anneeSoutenance:
                if ($filterValue === 'NULL') {
                    $qb
Loading