Loading SQL/01_schemas.sql +20 −6 Original line number Diff line number Diff line Loading @@ -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, Loading Loading @@ -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, Loading @@ -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 Loading Loading @@ -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 ; /* Loading Loading @@ -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 ; Loading Loading @@ -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; module/Atelier/src/Entity/Db/Mapping/Atelier.Entity.Db.Session.dcm.xml +4 −0 Original line number Diff line number Diff line Loading @@ -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"/> Loading module/Atelier/src/Entity/Db/Session.php +13 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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 **********************************************************************************/ Loading module/Atelier/src/Form/Session/SessionForm.php +19 −1 Original line number Diff line number Diff line Loading @@ -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 { Loading Loading @@ -71,7 +73,7 @@ class SessionForm extends Form 'id' => 'inscription', ], ]); /** Taille liste complementaire */ /** lieu */ $this->add([ 'type' => Text::class, 'name' => 'lieu', Loading @@ -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, Loading @@ -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 module/Atelier/src/Form/Session/SessionFormFactory.php +4 −0 Original line number Diff line number Diff line Loading @@ -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 { Loading @@ -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
SQL/01_schemas.sql +20 −6 Original line number Diff line number Diff line Loading @@ -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, Loading Loading @@ -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, Loading @@ -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 Loading Loading @@ -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 ; /* Loading Loading @@ -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 ; Loading Loading @@ -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;
module/Atelier/src/Entity/Db/Mapping/Atelier.Entity.Db.Session.dcm.xml +4 −0 Original line number Diff line number Diff line Loading @@ -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"/> Loading
module/Atelier/src/Entity/Db/Session.php +13 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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 **********************************************************************************/ Loading
module/Atelier/src/Form/Session/SessionForm.php +19 −1 Original line number Diff line number Diff line Loading @@ -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 { Loading Loading @@ -71,7 +73,7 @@ class SessionForm extends Form 'id' => 'inscription', ], ]); /** Taille liste complementaire */ /** lieu */ $this->add([ 'type' => Text::class, 'name' => 'lieu', Loading @@ -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, Loading @@ -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
module/Atelier/src/Form/Session/SessionFormFactory.php +4 −0 Original line number Diff line number Diff line Loading @@ -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 { Loading @@ -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