diff --git a/documentation/SQL/release_1.1.0.sql b/documentation/SQL/release_1.1.0.sql index 41edf3deaba3acd4c9f87d7e00636611a9a35152..941964945317937161ba61e822b209f84e6d0d2b 100644 --- a/documentation/SQL/release_1.1.0.sql +++ b/documentation/SQL/release_1.1.0.sql @@ -6,4 +6,29 @@ WITH d(code, libelle, icone, couleur, ordre) AS ( ) SELECT cp.id, d.code, d.libelle, d.icone, d.couleur, d.ordre FROM d - JOIN unicaen_etat_categorie cp ON cp.CODE = 'DEMANDE_EXTERNE'; \ No newline at end of file + JOIN unicaen_etat_categorie cp ON cp.CODE = 'DEMANDE_EXTERNE'; + + +-- Pour Rouen + +INSERT INTO unicaen_parametre_categorie (code, libelle, ordre, description) VALUES +('CHARTE', 'Gestion de la charte', 1000, null); +INSERT INTO unicaen_parametre_parametre(CATEGORIE_ID, CODE, LIBELLE, DESCRIPTION, VALEURS_POSSIBLES, ORDRE) +WITH d(CODE, LIBELLE, DESCRIPTION, VALEURS_POSSIBLES, ORDRE) AS ( + SELECT 'CHARTE_ACTIVE', 'Charte obligatoire', null, 'Boolean', 10 UNION + SELECT 'CHARTE_TEMPLATE', 'Template de la charte',null, 'String', 20 + +) +SELECT cp.id, d.CODE, d.LIBELLE, d.DESCRIPTION, d.VALEURS_POSSIBLES, d.ORDRE +FROM d +JOIN unicaen_parametre_categorie cp ON cp.CODE = 'CHARTE'; + +INSERT INTO unicaen_parametre_parametre(CATEGORIE_ID, CODE, LIBELLE, DESCRIPTION, VALEURS_POSSIBLES, ORDRE) +WITH d(CODE, LIBELLE, DESCRIPTION, VALEURS_POSSIBLES, ORDRE) AS ( + SELECT 'APP_LOGO', 'Logo de l''application', null, 'String', 100 +) +SELECT cp.id, d.CODE, d.LIBELLE, d.DESCRIPTION, d.VALEURS_POSSIBLES, d.ORDRE +FROM d + JOIN unicaen_parametre_categorie cp ON cp.CODE = 'GLOBAL'; + + diff --git a/module/DemandeExterne/src/Service/DemandeExterne/DemandeExterneService.php b/module/DemandeExterne/src/Service/DemandeExterne/DemandeExterneService.php index ab54ade38d74397a7f105d1d97b6534c874642d9..7c86da3d27bfd35a85a2621300fa519f6bb4c95d 100644 --- a/module/DemandeExterne/src/Service/DemandeExterne/DemandeExterneService.php +++ b/module/DemandeExterne/src/Service/DemandeExterne/DemandeExterneService.php @@ -199,6 +199,21 @@ class DemandeExterneService return $result; } + /** + * @param Agent[] $agents + * @param string[]$etatTypeCodes + * @return DemandeExterne[] + */ + public function getDemandesExternesByAgentsAndEtats(array $agents, array $etatTypeCodes): array + { + $qb = $this->createQueryBuilder() + ->andWhere('demande.agent = (:agents)')->setParameter('agents', $agents) + ->andWhere('demande.histoDestruction IS NULL'); + $qb = DemandeExterne::decorateWithEtatsCodes($qb, 'demande', $etatTypeCodes); + $result = $qb->getQuery()->getResult(); + return $result; + } + /** * @var Agent[] $agents diff --git a/module/Formation/src/Formation/Controller/FormationInstanceInscritController.php b/module/Formation/src/Formation/Controller/FormationInstanceInscritController.php index 07fab4bdb6348f570767cd761d56a6c4525d471f..2d668c937853d0f5ede1ecb62f82239b6abf3162 100644 --- a/module/Formation/src/Formation/Controller/FormationInstanceInscritController.php +++ b/module/Formation/src/Formation/Controller/FormationInstanceInscritController.php @@ -7,6 +7,7 @@ use DemandeExterne\Service\DemandeExterne\DemandeExterneServiceAwareTrait; use Agent\Form\SelectionAgent\SelectionAgentFormAwareTrait; use Application\Provider\Parametre\MailParametres; use DemandeExterne\Entity\Db\DemandeExterne; +use Formation\Entity\Db\Inscription; use Formation\Form\Inscription\InscriptionFormAwareTrait; use DemandeExterne\Provider\Etat\DemandeExterneEtats; use Formation\Provider\Etat\InscriptionEtats; @@ -124,26 +125,32 @@ class FormationInstanceInscritController extends AbstractActionController $utilisateur = $this->getUserService()->getConnectedUser(); $agent = $this->getAgentService()->getAgentByUser($utilisateur); - $inscriptions = $this->getInscriptionService()->getInscriptionsByAgent($agent); + $inscriptionsAttentes = $this->getInscriptionService()->getInscriptionsByAgentsAndEtats([$agent],[InscriptionEtats::ETAT_DEMANDE, InscriptionEtats::ETAT_VALIDER_RESPONSABLE], null); + $inscriptionsAttentes = array_filter($inscriptionsAttentes, function (Inscription $inscription) { return !in_array($inscription->getSession()->getEtatActif()->getType()->getCode(), SessionEtats::ETATS_FINAUX);}); + $inscriptionsValidees = $this->getInscriptionService()->getInscriptionsByAgentsAndEtats([$agent],[InscriptionEtats::ETAT_VALIDER_DRH], null); + $inscriptionsValidees = array_filter($inscriptionsValidees, function (Inscription $inscription) { return !in_array($inscription->getSession()->getEtatActif()->getType()->getCode(), SessionEtats::ETATS_FINAUX);}); $inscriptionsRefusees = $this->getInscriptionService()->getInscriptionsByAgentsAndEtats([$agent],[InscriptionEtats::ETAT_REFUSER], null); + //$inscriptionsRefusees = array_filter($inscriptionsRefusees, function (Inscription $inscription) { return !in_array($inscription->getSession()->getEtatActif()->getType()->getCode(), SessionEtats::ETATS_FINAUX);}); + $inscriptionsDesistements = $this->getInscriptionService()->getInscriptionsByAgentsAndEtats([$agent],[InscriptionEtats::ETAT_DESISTEMENT], null); + //$inscriptionsDesistements = array_filter($inscriptionsDesistements, function (Inscription $inscription) { return !in_array($inscription->getSession()->getEtatActif()->getType()->getCode(), SessionEtats::ETATS_FINAUX);}); - $demandes = $this->getDemandeExterneService()->getDemandesExternesByAgent($agent); - $demandes = array_filter($demandes, - function (DemandeExterne $d) { - return $d->estNonHistorise() - && !$d->isEtatActif(DemandeExterneEtats::ETAT_REJETEE) - && !$d->isEtatActif(DemandeExterneEtats::ETAT_TERMINEE); - }); - $demandesValidees = array_filter($demandes, function (DemandeExterne $d) { - return !$d->isEtatActif(DemandeExterneEtats::ETAT_CREATION_EN_COURS); - }); + + $demandesAttentes = $this->getDemandeExterneService()->getDemandesExternesByAgentsAndEtats([$agent], DemandeExterneEtats::ETATS_OUVERTS); + $demandesValidees = $this->getDemandeExterneService()->getDemandesExternesByAgentsAndEtats([$agent], [DemandeExterneEtats::ETAT_TERMINEE]); + $demandesValidees = array_filter($demandesValidees, function (DemandeExterne $demandeExterne) { return empty($demandeExterne->getSessions());}); + $demandesRefusees = $this->getDemandeExterneService()->getDemandesExternesByAgentsAndEtats([$agent], [DemandeExterneEtats::ETAT_REJETEE]); return new ViewModel([ 'agent' => $agent, - 'inscriptions' => $inscriptions, + 'inscriptionsAttentes' => $inscriptionsAttentes, + 'inscriptionsValidees' => $inscriptionsValidees, 'inscriptionsRefusees' => $inscriptionsRefusees, - 'demandes' => $demandesValidees, + 'inscriptionsDesistements' => $inscriptionsDesistements, + + 'demandesAttentes' => $demandesAttentes, + 'demandesValidees' => $demandesValidees, + 'demandesRefusees' => $demandesRefusees, ]); } diff --git a/module/Formation/view/formation/formation-instance-inscrit/inscriptions.phtml b/module/Formation/view/formation/formation-instance-inscrit/inscriptions.phtml index 714140a9b4ad9d0341c4f4eeea036f544e90f57d..124ddf903fe51a7fd986f6470241cd5be87a5ad5 100644 --- a/module/Formation/view/formation/formation-instance-inscrit/inscriptions.phtml +++ b/module/Formation/view/formation/formation-instance-inscrit/inscriptions.phtml @@ -2,163 +2,280 @@ /** * @see \Formation\Controller\FormationInstanceInscritController::inscriptionsAction() - * @var Session[] $sessions - * @var Inscription[] $inscriptions + * @var Inscription[] $inscriptionsAttentes + * @var Inscription[] $inscriptionsValidees * @var Inscription[] $inscriptionsRefusees - * @var DemandeExterne[] $demandes + * @var Inscription[] $inscriptionsDesistements + * + * @var DemandeExterne[] $demandesAttentes, + * @var DemandeExterne[] $demandesValidees, + * @var DemandeExterne[] $demandesRefusees, + * * @var Agent $agent */ use Agent\Entity\Db\Agent; use DemandeExterne\Entity\Db\DemandeExterne; use Formation\Entity\Db\Inscription; -use Formation\Entity\Db\Session; -use DemandeExterne\Provider\Etat\DemandeExterneEtats; -use Formation\Provider\Etat\InscriptionEtats; use Formation\Provider\Etat\SessionEtats; -$canInscrire = true; - -$formationValidees = []; -foreach ($inscriptions as $inscription) { - if (!$inscription->isEtatActif(InscriptionEtats::ETAT_DESISTEMENT) - AND ! $inscription->getSession()->isEtatActif(SessionEtats::ETAT_SESSION_ANNULEE) - AND $inscription->getListe() !== null - AND !$inscription->getSession()->estRealisee() - ) - $formationValidees[] = $inscription; -} -$demandesValidees = []; -$demandesAttentes = []; -foreach ($demandes as $demande) { - if ($demande->isEtatActif(DemandeExterneEtats::ETAT_VALIDATION_DRH)) { - $demandesValidees[] = $demande; - } else { - $demandesAttentes[] = $demande; - } -} - -$formationsAttentes = []; -foreach ($inscriptions as $inscription) { - if (!$inscription->isEtatActif(InscriptionEtats::ETAT_DESISTEMENT)) { - if ($inscription->isEtatActif(InscriptionEtats::ETAT_DEMANDE) - OR $inscription->isEtatActif(InscriptionEtats::ETAT_VALIDER_RESPONSABLE)) - $formationsAttentes[] = $inscription; - } -} - ?> -<h1> - Mes inscriptions en cours + +<h1 class="page-header"> + Mes inscriptions </h1> <?php echo $this->messenger()->addMessagesFromFlashMessenger(); ?> -<?php if (empty($formationValidees) and empty($demandesValidees)) : ?> - <em> Aucune formation validée </em> -<?php else : ?> - <?php foreach ($formationValidees as $inscription) : ?> - <?php - $instance = $inscription->getSession(); - $nbPlace = ($instance->getNbPlacePrincipale() + $instance->getNbPlaceComplementaire()) - (count($instance->getListePrincipale()) + count($instance->getListeComplementaire())); - ?> - <div class="row formation-inscription"> - <div class="col-md-8 description"> - <?php echo $this->sessionInformations($instance, 'bloc'); ?> - <br/> - <strong> Inscrit en liste <?php echo $inscription->getListe(); ?></strong> +<!-- ONGLET :: TAB ------------------------------------------------------------------------------------------------> +<div class="nav nav-tabs" id="nav-tab" role="tablist"> + <button class="nav-link active" id="interne-tab" + data-bs-toggle="tab" data-bs-target="#interne" + type="button" role="tab" aria-controls="interne" aria-selected="true"> + Formations au plan de formation + </button> + <button class="nav-link" id="externe-tab" + data-bs-toggle="tab" data-bs-target="#externe" + type="button" role="tab" aria-controls="externe" aria-selected="true"> + Formations hors plan de formation + </button> +</div> +<div class="tab-content"> + <div id="interne" class="tab-pane " role="tabpanel"> + + <h2> Inscriptions validées</h2> + + <?php if (empty($inscriptionsValidees)) : ?> + <div class="alert alert-info"> + Vous n'avez aucune inscription validée en cours + </div> + <?php else : ?> + <?php foreach ($inscriptionsValidees as $inscription) : ?> + <?php + $instance = $inscription->getSession(); + $nbPlace = ($instance->getNbPlacePrincipale() + $instance->getNbPlaceComplementaire()) - (count($instance->getListePrincipale()) + count($instance->getListeComplementaire())); + ?> + <div class="row formation-inscription"> + <div class="col-md-8"> + <strong>Action de formation :</strong> <?php echo $instance->getFormation()->getLibelle(); ?> <br> + <strong>État de la session :</strong> <?php echo $this->etatinstance($instance->getEtatActif(),['display-libelle' => true, 'display-categorie' => false]); ?> <br> + <strong>Période :</strong> <?php echo $instance->getPeriode(); ?> <br> + <strong>État de l'inscription :</strong> <?php echo $this->etatinstance($inscription->getEtatActif(),['display-libelle' => true, 'display-categorie' => false]); ?> <br> + <strong>Inscrit en liste <?php echo $inscription->getListe(); ?></strong> + </div> + <div class="col-md-4"> + <a + <?php /** @see \Formation\Controller\FormationInstanceInscritController::desinscriptionAction() */ ?> + href="<?php echo $this->url('inscription/annuler-inscription', ['inscription' => $inscription->getId()], [], true); ?>" + class="btn btn-danger ajax-modal" data-event="modification" + > + <span class="icon icon-unchecked"> J'annule mon inscription </span> + </a> + <?php if ($instance->isEtatActif(SessionEtats::ETAT_FORMATION_CONVOCATION) && $inscription->getListe() === Inscription::PRINCIPALE) : ?> + <br/> + <a + <?php /** @see \Formation\Controller\FormationInstanceDocumentController::genererConvocationAction() */ ?> + href="<?php echo $this->url('session/generer-convocation', ['inscription' => $inscription->getId()], [], true); ?>" + class="btn btn-primary" + > + <span class="icon icon-pdf"> Je télécharge ma convocation</span> + </a> + <?php endif; ?> + </div> + </div> + <?php endforeach; ?> + <?php endif; ?> + + <h2> Inscriptions en attente de validation</h2> + + <?php if (empty($inscriptionsAttentes)) : ?> + <div class="alert alert-info"> + Vous n'avez aucune inscription en attente de validation </div> - <div class="col-md-4"> - <a - <?php /** @see \Formation\Controller\FormationInstanceInscritController::desinscriptionAction() */ ?> - href="<?php echo $this->url('inscription/annuler-inscription', ['inscription' => $inscription->getId()], [], true); ?>" - class="btn btn-danger ajax-modal" data-event="modification" - > - <span class="icon icon-unchecked"> J'annule mon inscription </span> - </a> - <?php if ($instance->isEtatActif(SessionEtats::ETAT_FORMATION_CONVOCATION) && $inscription->getListe() === Inscription::PRINCIPALE) : ?> - <br/> - <a - <?php /** @see \Formation\Controller\FormationInstanceDocumentController::genererConvocationAction() */ ?> - href="<?php echo $this->url('session/generer-convocation', ['inscription' => $inscription->getId()], [], true); ?>" - class="btn btn-primary" - > - <span class="icon icon-pdf"> Je télécharge ma convocation</span> - </a> - <?php endif; ?> + <?php else : ?> + <?php foreach ($inscriptionsAttentes as $inscription) : ?> + <?php + $instance = $inscription->getSession(); + $nbPlace = ($instance->getNbPlacePrincipale() + $instance->getNbPlaceComplementaire()) - (count($instance->getListePrincipale()) + count($instance->getListeComplementaire())); + ?> + <div class="row formation-inscription"> + <div class="col-md-8"> + <strong>Action de formation :</strong> <?php echo $instance->getFormation()->getLibelle(); ?> <br> + <strong>État de la session :</strong> <?php echo $this->etatinstance($instance->getEtatActif(),['display-libelle' => true, 'display-categorie' => false]); ?> <br> + <strong>Période :</strong> <?php echo $instance->getPeriode(); ?> <br> + <strong>État de l'inscription :</strong> <?php echo $this->etatinstance($inscription->getEtatActif(),['display-libelle' => true, 'display-categorie' => false]); ?> <br> + <?php if ($inscription->getListe()): ?> + <strong>Inscrit en liste <?php echo $inscription->getListe(); ?></strong> + <?php else: ?> + Inscription pas encore classée + <?php endif; ?> + </div> + <div class="col-md-4"> + <a + <?php /** @see \Formation\Controller\InscriptionController::desinscriptionAction() */ ?> + href="<?php echo $this->url('inscription/annuler-inscription', ['inscription' => $inscription->getId()], [], true); ?>" + class="btn btn-danger ajax-modal" data-event="modification" + > + <span class="icon icon-unchecked"> J'annule mon inscription </span> + </a> + </div> + </div> + <?php endforeach; ?> + <?php endif; ?> + + <h2> Inscriptions dont vous vous êtes désisté·e</h2> + + <?php if (empty($inscriptionsDesistements)) : ?> + <div class="alert alert-info"> + Vous n'avez aucune inscription en attente de validation </div> - </div> - <br/> - <?php endforeach; ?> - <?php foreach ($demandesValidees as $demande) : ?> - <?php echo $this->demandeExterne($demande); ?> - <?php endforeach; ?> -<?php endif; ?> - -<?php if (!empty($inscriptionsRefusees)) : ?> - <h2> - Mes inscriptions refusées <span class="badge"><?php echo count($inscriptionsRefusees); ?></span> - </h2> - - <?php usort($inscriptionsRefusees, function (Inscription $a, Inscription $b) { return $a->getHistoCreation() <=> $b->getHistoCreation(); }); ?> - - <?php foreach ($inscriptionsRefusees as $inscription) : ?> - <div class="row formation-inscription"> - <div class="col-md-8 description"> - <?php echo $this->inscription($inscription, ['display-session-etat' => false]); ?> + <?php else : ?> + <?php foreach ($inscriptionsDesistements as $inscription) : ?> + <?php + $instance = $inscription->getSession(); + $nbPlace = ($instance->getNbPlacePrincipale() + $instance->getNbPlaceComplementaire()) - (count($instance->getListePrincipale()) + count($instance->getListeComplementaire())); + ?> + <div class="row formation-inscription"> + <div class="col-md-8 "> + <strong>Action de formation :</strong> <?php echo $instance->getFormation()->getLibelle(); ?> <br> + <strong>État de la session :</strong> <?php echo $this->etatinstance($instance->getEtatActif(),['display-libelle' => true, 'display-categorie' => false]); ?> <br> + <strong>Période :</strong> <?php echo $instance->getPeriode(); ?> <br> + <strong>État de l'inscription :</strong> <?php echo $this->etatinstance($inscription->getEtatActif(),['display-libelle' => true, 'display-categorie' => false]); ?> + <br> + </div> + <div class="col-md-4"> + <strong>Motif du désistement :</strong> <?php echo $inscription->getJustificationDesistement(); ?> + </div> + </div> + <?php endforeach; ?> + <?php endif; ?> + + <h2> Inscriptions refusées</h2> + + <?php if (empty($inscriptionsRefusees)) : ?> + <div class="alert alert-info"> + Vous n'avez aucune inscription refusée </div> - </div> - <?php endforeach; ?> -<?php endif; ?> + <?php else : ?> + <?php foreach ($inscriptionsRefusees as $inscription) : ?> + <?php + $instance = $inscription->getSession(); + $nbPlace = ($instance->getNbPlacePrincipale() + $instance->getNbPlaceComplementaire()) - (count($instance->getListePrincipale()) + count($instance->getListeComplementaire())); + ?> + <div class="row formation-inscription"> + <div class="col-md-8 "> + <strong>Action de formation :</strong> <?php echo $instance->getFormation()->getLibelle(); ?> <br> + <strong>État de la session :</strong> <?php echo $this->etatinstance($instance->getEtatActif(),['display-libelle' => true, 'display-categorie' => false]); ?> <br> + <strong>Période :</strong> <?php echo $instance->getPeriode(); ?> <br> + <strong>État de l'inscription :</strong> <?php echo $this->etatinstance($inscription->getEtatActif(),['display-libelle' => true, 'display-categorie' => false]); ?> + </div> + <div class="col-md-4"> + <strong>Motif du refus :</strong> <?php echo $inscription->getJustificationRefus(); ?> + </div> + </div> + <?php endforeach; ?> + <?php endif; ?> + </div> -<h1> - Mes inscriptions en attente de validation -</h1> -<?php if (empty($formationsAttentes) and empty($demandesAttentes)) : ?> - <em> Aucune formation en attente de validation </em> -<?php else : ?> - <?php foreach ($formationsAttentes as $inscription) : ?> - <?php - $instance = $inscription->getSession(); - $nbPlace = ($instance->getNbPlacePrincipale() + $instance->getNbPlaceComplementaire()) - (count($instance->getListePrincipale()) + count($instance->getListeComplementaire())); - ?> - <div class="row formation-inscription"> - <div class="col-md-7 description"> - <?php echo $this->sessionInformations($instance, 'bloc'); ?> - <br/> + <div id="externe" class="tab-pane " role="tabpanel"> + + <h2> Demandes hors plan de formation validées</h2> + + <?php if (empty($demandesValidees)) : ?> + <div class="alert alert-info"> + Aucune demande hors plan de formation de validée </div> - <div class="col-md-5"> - <a - <?php /** @see \Formation\Controller\InscriptionController::desinscriptionAction() */ ?> - href="<?php echo $this->url('inscription/annuler-inscription', ['inscription' => $inscription->getId()], [], true); ?>" - class="btn btn-danger ajax-modal" data-event="modification" - > - <span class="icon icon-unchecked"> J'annule mon inscription </span> - </a> - <?php if ($instance->isEtatActif(SessionEtats::ETAT_FORMATION_CONVOCATION) && $inscription->getListe() === Inscription::PRINCIPALE) : ?> - <br/> - <a - <?php /** @see \Formation\Controller\InscriptionController::genererConvocationAction() */ ?> - href="<?php echo $this->url('formation/inscripitoninstance/generer-convocation', ['inscrit' => $inscription->getId()], [], true); ?>" - class="btn btn-primary" - > - <span class="icon icon-pdf"> Je télécharge ma convocation</span> - </a> - <?php endif; ?> + <?php else : ?> + <?php foreach ($demandesValidees as $demande) : ?> + <div class="row formation-inscription"> + <div class="col-md-8 "> + <strong>Action de formation :</strong> <?php echo $demande->getLibelle(); ?> <br> + <strong>Période :</strong> <?php echo $demande->getPeriode(); ?> <br> + <strong>État de l'inscription :</strong> <?php echo $this->etatinstance($demande->getEtatActif(),['display-libelle' => true, 'display-categorie' => false]); ?> + </div> + <div class="col-md-4"> + </div> + </div> + <?php endforeach; ?> + <?php endif; ?> + + <h2> Demandes hors plan de formation en attente</h2> + + <?php if (empty($demandesAttentes)) : ?> + <div class="alert alert-info"> + Aucune demande hors plan de formation en attente + </div> + <?php else : ?> + <?php foreach ($demandesAttentes as $demande) : ?> + <div class="row formation-inscription"> + <div class="col-md-8 "> + <strong>Action de formation :</strong> <?php echo $demande->getLibelle(); ?> <br> + <strong>Période :</strong> <?php echo $demande->getPeriode(); ?> <br> + <strong>État de l'inscription :</strong> <?php echo $this->etatinstance($demande->getEtatActif(),['display-libelle' => true, 'display-categorie' => false]); ?> + </div> + <div class="col-md-4"> + </div> + </div> + <?php endforeach; ?> + <?php endif; ?> + + <h2> Demandes hors plan de formation refusée</h2> + + <?php if (empty($demandesRefusees)) : ?> + <div class="alert alert-info"> + Aucune demande hors plan de formation refusée </div> - </div> - <br/> - <?php endforeach; ?> - <?php foreach ($demandesAttentes as $demande) : ?> - <?php echo $this->demandeExterne($demande); ?> - <?php endforeach; ?> -<?php endif; ?> + <?php else : ?> + <?php foreach ($demandesRefusees as $demande) : ?> + <div class="row formation-inscription"> + <div class="col-md-8 "> + <strong>Action de formation :</strong> <?php echo $demande->getLibelle(); ?> <br> + <strong>Période :</strong> <?php echo $demande->getPeriode(); ?> <br> + <strong>État de l'inscription :</strong> <?php echo $this->etatinstance($demande->getEtatActif(),['display-libelle' => true, 'display-categorie' => false]); ?> + </div> + <div class="col-md-4"> + </div> + </div> + <?php endforeach; ?> + <?php endif; ?> + </div> +</div> + +<style> + div.formation-inscription { + background: #f0f0f0; + margin-bottom: 0.5rem; + border-radius: 0.5rem; + padding: 0.5rem; + + } +</style> <script> $(function () { + let hash = $(location).attr('hash'); + let name = hash.substring(1); + if (name === undefined || name === "") name = "interne"; + + $('button').removeClass('active'); + $('button#' + name + '-tab').addClass('active'); + $('div.tab-pane').hide().removeClass('active'); + $('div#' + name).show().addClass('active'); + + //$('#' + name + '-tab').tab("show"); + $('button.nav-link').on('click', function (e) { + let anchor = $(this).attr('aria-controls'); + $('div.tab-pane').hide().removeClass('active'); + $('div#' + anchor).show().addClass('active'); + $('button').removeClass('active'); + $('button#' + anchor + '-tab').addClass('active'); + // console.log(anchor); + e.preventDefault(); // >> bloque le scrolling, mais aussi la ré-écriture de l'url "#info" ... + history.replaceState(null, null, "#" + anchor); + }); $("body").on("modification", function (event) { event.div.modal('hide'); window.location.reload();