Loading module/Atelier/src/Controller/AtelierController.php +5 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,11 @@ class AtelierController extends AbstractActionController $archivageAsOptions = ['0' => 'Non historisés', '1' => 'Historisés']; $anneeUnivAsOptions = $this->getProgrammeService()->getAnneesUnivOptions(); // si anneeUniv nest pas défini on utilise la derniere année universitaire disponible if (!array_key_exists('anneeuniv', $params)) { $params['anneeuniv'] = array_key_last($anneeUnivAsOptions); } $ateliers = $this->getAtelierService()->getAteliersWithFiltre($params, 'libelle','asc', true); return new ViewModel([ Loading module/Atelier/src/Controller/SessionController.php +7 −0 Original line number Diff line number Diff line Loading @@ -91,15 +91,22 @@ class SessionController extends AbstractActionController public function indexAction(): ViewModel { $anneeUnivAsOptions = $this->getSeanceService()->getAnneesUnivOptions(); $groupes = $this->getGroupeService()->getGroupes(); $types = $this->getEtatTypeService()->getEtatsTypesByCategorieCode(SessionEtats::TYPE); $villeAsOptions = $this->getVilleService()->getVillesAsOptions(); $siteAsOptions = $this->getSiteService()->getSitesAsOptions(); $params = $this->params()->fromQuery(); // si anneeUniv nest pas défini on utilise la derniere année universitaire disponible if (!array_key_exists('anneeuniv', $params)) { $params['anneeuniv'] = array_key_last($anneeUnivAsOptions); } $sessions = $this->getSessionService()->getSessionsWithFiltre($params); return new ViewModel([ 'anneeUnivAsOptions' => $anneeUnivAsOptions, 'sessions' => $sessions, 'params' => $params, 'groupes' => $groupes, Loading module/Atelier/src/Entity/Db/Session.php +18 −0 Original line number Diff line number Diff line Loading @@ -146,6 +146,24 @@ class Session implements HistoriqueAwareInterface, HasEtatsInterface, HasEveneme return $this->seances->toArray(); } public function getAnneesUnivProgrammes(): array { $anneesUniv = []; foreach($this->getSeances() as $seance){ $anneesUniv[] = $seance->getAnneeUniv(); } $anneesUniv = array_filter(array_unique($anneesUniv)); sort($anneesUniv); return $anneesUniv; } public function getStringAnneesUnivProgrammes(): string { $anneesUniv = $this->getAnneesUnivProgrammes(); return implode(', ', $anneesUniv); } public function getDebut(bool $datetime = false): string|DateTime|null { $minimum = null; Loading module/Atelier/src/Service/Seance/SeanceService.php +24 −1 Original line number Diff line number Diff line Loading @@ -70,10 +70,15 @@ class SeanceService } /** @return Seance[] */ public function getSeances(string $champ = 'id', string $ordre = 'ASC'): array public function getSeances(string $champ = 'id', string $ordre = 'ASC', bool $withHisto = false): array { $qb = $this->createQueryBuilder() ->orderBy('seance.' . $champ, $ordre); if (!$withHisto) { $qb = $qb->andWhere('seance.histoDestruction IS NULL'); } return $qb->getQuery()->getResult(); } Loading Loading @@ -197,4 +202,22 @@ class SeanceService if ($seance->isPremiereSeance() OR $seance->isDerniereSeance()) $flashMessenger?->addInfoMessage($message); } public function getAnneesUnivOptions(): array { $seances = $this->getSeances(); // extraire les annees universitaires $annees = []; foreach ($seances as $seance) { $annee = $seance->getAnneeUniv(); if ($annee) { $annees[$annee] = $annee; } } // trier les annees universitaires par ordre croissant ksort($annees); return $annees; } } No newline at end of file module/Atelier/src/Service/Session/SessionService.php +20 −1 Original line number Diff line number Diff line Loading @@ -169,7 +169,26 @@ class SessionService $qb = $qb->andWhere('ville.id = :ville')->setParameter('ville', $params['ville']); } return $qb->getQuery()->getResult(); $sessions = $qb->getQuery()->getResult(); if (array_key_exists('anneeuniv', $params)) { $anneeUniv = $params['anneeuniv']; if ($anneeUniv != '' ) { // filtrer sur l'année universitaire $sessions = array_filter($sessions, function ($session) use ($anneeUniv) { /** @var Session $session */ foreach ($session->getSeances() as $seance) { if ( $seance->estNonHistorise() && $seance->getAnneeUniv() == $anneeUniv ) { return true; } } return false; }); } $sessions = array_values($sessions); // réindexer le tableau } return $sessions; } /** FACADE *******************************************************************************************************/ Loading Loading
module/Atelier/src/Controller/AtelierController.php +5 −0 Original line number Diff line number Diff line Loading @@ -55,6 +55,11 @@ class AtelierController extends AbstractActionController $archivageAsOptions = ['0' => 'Non historisés', '1' => 'Historisés']; $anneeUnivAsOptions = $this->getProgrammeService()->getAnneesUnivOptions(); // si anneeUniv nest pas défini on utilise la derniere année universitaire disponible if (!array_key_exists('anneeuniv', $params)) { $params['anneeuniv'] = array_key_last($anneeUnivAsOptions); } $ateliers = $this->getAtelierService()->getAteliersWithFiltre($params, 'libelle','asc', true); return new ViewModel([ Loading
module/Atelier/src/Controller/SessionController.php +7 −0 Original line number Diff line number Diff line Loading @@ -91,15 +91,22 @@ class SessionController extends AbstractActionController public function indexAction(): ViewModel { $anneeUnivAsOptions = $this->getSeanceService()->getAnneesUnivOptions(); $groupes = $this->getGroupeService()->getGroupes(); $types = $this->getEtatTypeService()->getEtatsTypesByCategorieCode(SessionEtats::TYPE); $villeAsOptions = $this->getVilleService()->getVillesAsOptions(); $siteAsOptions = $this->getSiteService()->getSitesAsOptions(); $params = $this->params()->fromQuery(); // si anneeUniv nest pas défini on utilise la derniere année universitaire disponible if (!array_key_exists('anneeuniv', $params)) { $params['anneeuniv'] = array_key_last($anneeUnivAsOptions); } $sessions = $this->getSessionService()->getSessionsWithFiltre($params); return new ViewModel([ 'anneeUnivAsOptions' => $anneeUnivAsOptions, 'sessions' => $sessions, 'params' => $params, 'groupes' => $groupes, Loading
module/Atelier/src/Entity/Db/Session.php +18 −0 Original line number Diff line number Diff line Loading @@ -146,6 +146,24 @@ class Session implements HistoriqueAwareInterface, HasEtatsInterface, HasEveneme return $this->seances->toArray(); } public function getAnneesUnivProgrammes(): array { $anneesUniv = []; foreach($this->getSeances() as $seance){ $anneesUniv[] = $seance->getAnneeUniv(); } $anneesUniv = array_filter(array_unique($anneesUniv)); sort($anneesUniv); return $anneesUniv; } public function getStringAnneesUnivProgrammes(): string { $anneesUniv = $this->getAnneesUnivProgrammes(); return implode(', ', $anneesUniv); } public function getDebut(bool $datetime = false): string|DateTime|null { $minimum = null; Loading
module/Atelier/src/Service/Seance/SeanceService.php +24 −1 Original line number Diff line number Diff line Loading @@ -70,10 +70,15 @@ class SeanceService } /** @return Seance[] */ public function getSeances(string $champ = 'id', string $ordre = 'ASC'): array public function getSeances(string $champ = 'id', string $ordre = 'ASC', bool $withHisto = false): array { $qb = $this->createQueryBuilder() ->orderBy('seance.' . $champ, $ordre); if (!$withHisto) { $qb = $qb->andWhere('seance.histoDestruction IS NULL'); } return $qb->getQuery()->getResult(); } Loading Loading @@ -197,4 +202,22 @@ class SeanceService if ($seance->isPremiereSeance() OR $seance->isDerniereSeance()) $flashMessenger?->addInfoMessage($message); } public function getAnneesUnivOptions(): array { $seances = $this->getSeances(); // extraire les annees universitaires $annees = []; foreach ($seances as $seance) { $annee = $seance->getAnneeUniv(); if ($annee) { $annees[$annee] = $annee; } } // trier les annees universitaires par ordre croissant ksort($annees); return $annees; } } No newline at end of file
module/Atelier/src/Service/Session/SessionService.php +20 −1 Original line number Diff line number Diff line Loading @@ -169,7 +169,26 @@ class SessionService $qb = $qb->andWhere('ville.id = :ville')->setParameter('ville', $params['ville']); } return $qb->getQuery()->getResult(); $sessions = $qb->getQuery()->getResult(); if (array_key_exists('anneeuniv', $params)) { $anneeUniv = $params['anneeuniv']; if ($anneeUniv != '' ) { // filtrer sur l'année universitaire $sessions = array_filter($sessions, function ($session) use ($anneeUniv) { /** @var Session $session */ foreach ($session->getSeances() as $seance) { if ( $seance->estNonHistorise() && $seance->getAnneeUniv() == $anneeUniv ) { return true; } } return false; }); } $sessions = array_values($sessions); // réindexer le tableau } return $sessions; } /** FACADE *******************************************************************************************************/ Loading