Commit c382695a authored by Johnny Leveneur's avatar Johnny Leveneur
Browse files

Rattacher les sites sur les ateliers/sessions

parent 211efbd4
Loading
Loading
Loading
Loading
+20 −6
Original line number Diff line number Diff line
@@ -21,6 +21,8 @@ select *
from individu;

-- modification de la vue v_suac_etudiant
-- octo
create view public.v_suac_etudiant(id, prenom, nom, numero_etudiant, email, login) as
SELECT DISTINCT i.c_individu_chaine                  AS id,
                i.prenom,
                COALESCE(i.nom_usage, i.nom_famille) AS nom,
@@ -86,7 +88,9 @@ create or replace view public.v_suac_ia
                )
as

SELECT ROW_NUMBER() over ()                               AS ID,
SELECT
       ROWNUM                                            AS ID,
       -- ROW_NUMBER() over ()                               AS ID,  -- postgres
       iia.individu_id                                    AS etudiant_id,
       iia.annee_univ,
       E.ETAPE_ID                                         AS etape_id,
@@ -95,8 +99,8 @@ SELECT ROW_NUMBER() over () AS ID,
       D.DIPLOME_ID                                       AS diplome_id,
       D.LIB_COURT                                        AS diplome_lib_court,
       D.LIB_LONG                                         AS diplome,
       -- D.LIB_TYPE_DIPLOME_ETB AS DIPLOME_TYPE,
       SUBSTR(D.LIB_LONG, 1, POSITION(' ' IN D.LIB_LONG)) AS cycle,
       D.LIB_TYPE_DIPLOME_ETB AS DIPLOME_TYPE,
       -- SUBSTR(D.LIB_LONG, 1, POSITION(' ' IN D.LIB_LONG)) AS cycle, -- ad_dummy_octopus
       S.LIBELLE_LONG                                     AS composante,
       ETAB.LIBELLE_COURT                                 AS etablissement_libelle_court,
       ETAB.LIBELLE_LONG                                  AS etablissement
@@ -203,11 +207,12 @@ where ia.annee_univ = '2023';

-- sites
-- octopus
select im.id, isa.ville_code as ville_code, isa.ville_nom as ville_nom, im.LIBELLE_COMMUNICATION as site
create view v_suac_site(id, ville_id, libelle) as
select im.id, isa.ville_code as ville_id, im.LIBELLE_COMMUNICATION as libelle
from immobilier_site im
         left join OCTO.IMMOBILIER_SITE_ADRESSE isa on im.id = isa.SITE_ID
where im.HISTO_DESTRUCTION is null
order by im.LIBELLE_COMMUNICATION;
order by im.LIBELLE_COMMUNICATION
;

/*
@@ -250,7 +255,8 @@ from (values (9, 61143, 'Damigny', 'Alençon-Damigny'),
         as t(id, ville_id, ville_nom, libelle);

-- villes ocotpus
select distinct isa.ville_code as ville_code, isa.ville_nom as ville_nom
create or replace view v_suac_ville(id, nom) as
select distinct isa.ville_code as id, isa.ville_nom as nom
from OCTO.IMMOBILIER_SITE_ADRESSE isa
where isa.ville_code is not null
;
@@ -298,3 +304,11 @@ create table public.site_ville
    source_id     varchar(128)
);

/* ajout d'un site à une session */
alter table public.atelier_session
    add site_id varchar(256);

alter table public.atelier_session
    add constraint atelier_session_site_site_id_fk
        foreign key (site_id) references public.site_site;
+4 −0
Original line number Diff line number Diff line
@@ -42,6 +42,10 @@
        <one-to-many field="seances"       target-entity="Atelier\Entity\Db\Seance"    mapped-by="session"/>
        <one-to-many field="inscriptions"   target-entity="Atelier\Entity\Db\Inscription"    mapped-by="session"/>

        <one-to-one field="site" target-entity="Site\Entity\Db\Site">
            <join-column name="site_id" referenced-column-name="id" />
        </one-to-one>

        <!-- HISTORISATION ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
        <field name="histoCreation"     type="datetime"                 column="histo_creation"     nullable="false"/>
        <field name="histoModification" type="datetime"                 column="histo_modification" nullable="false"/>
+13 −0
Original line number Diff line number Diff line
@@ -11,6 +11,7 @@ use Exception;
use Atelier\Provider\Etat\SessionEtats;
use Laminas\Permissions\Acl\Resource\ResourceInterface;
use RuntimeException;
use Site\Entity\Db\Site;
use UnicaenEtat\Entity\Db\HasEtatsInterface;
use UnicaenEtat\Entity\Db\HasEtatsTrait;
use UnicaenUtilisateur\Entity\Db\HistoriqueAwareInterface;
@@ -37,6 +38,7 @@ class Session implements HistoriqueAwareInterface, HasEtatsInterface, ResourceIn
    private int $nbPlaceComplementaire = 0;
    private ?string $lieu = null;
    private ?string $type = null;
    private ?Site $site = null;

    private Collection $seances;
    private Collection $inscriptions;
@@ -342,6 +344,17 @@ class Session implements HistoriqueAwareInterface, HasEtatsInterface, ResourceIn
        return null;
    }

    public function getSite(): ?Site
    {
        return $this->site;
    }

    public function setSite(?Site $site): void
    {
        $this->site = $site;
    }



    /** Fonctions pour les macros **********************************************************************************/

+19 −1
Original line number Diff line number Diff line
@@ -9,9 +9,11 @@ use Laminas\Form\Element\Text;
use Laminas\Form\Element\Textarea;
use Laminas\Form\Form;
use Laminas\InputFilter\Factory;
use Site\Service\Site\SiteServiceAwareTrait;

class SessionForm extends Form
{
    use SiteServiceAwareTrait;

    public function init(): void
    {
@@ -71,7 +73,7 @@ class SessionForm extends Form
                'id' => 'inscription',
            ],
        ]);
        /** Taille liste complementaire */
        /** lieu */
        $this->add([
            'type' => Text::class,
            'name' => 'lieu',
@@ -84,6 +86,21 @@ class SessionForm extends Form
            ],
        ]);

        /** Site */
        $this->add([
            'type' => Select::class,
            'name' => 'site',
            'options' => [
                'label' => "Site <span class='icon icon-obligatoire' title='Champ obligatoire'></span> :",
                'label_options' => [ 'disable_html_escape' => true, ],
                'empty_option' => "Sélectionner un site ...",
                'value_options' => $this->getSiteService()->getSitesAsOptions(),
            ],
            'attributes' => [
                'id' => 'site',
            ],
        ]);

        //button
        $this->add([
            'type' => Button::class,
@@ -104,6 +121,7 @@ class SessionForm extends Form
            'complementaire' => ['required' => true,],
            'inscription' => ['required' => true,],
            'lieu' => ['required' => true,],
            'site' => ['required' => false,],
        ]));
    }
}
 No newline at end of file
+4 −0
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ namespace Atelier\Form\Session;
use Interop\Container\ContainerInterface;
use Psr\Container\ContainerExceptionInterface;
use Psr\Container\NotFoundExceptionInterface;
use Site\Service\Site\SiteService;

class SessionFormFactory
{
@@ -17,9 +18,12 @@ class SessionFormFactory
    {
        /** @var SessionHydrator $hydrator */
        $hydrator = $container->get('HydratorManager')->get(SessionHydrator::class);
        $serviceSite = $container->get(SiteService::class);

        $form = new SessionForm();
        $form->setHydrator($hydrator);
        $form->setSiteService($serviceSite);

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