Loading module/Evenementiel/src/Entity/Db/Categorie.php +24 −2 Original line number Diff line number Diff line Loading @@ -2,8 +2,10 @@ namespace Evenementiel\Entity\Db; use DateTime; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use Evenementiel\Provider\Etat\EvenementEtats; use UnicaenUtilisateur\Entity\Db\HistoriqueAwareInterface; use UnicaenUtilisateur\Entity\Db\HistoriqueAwareTrait; Loading Loading @@ -52,9 +54,29 @@ class Categorie implements HistoriqueAwareInterface $this->description = $description; } public function getEvenements(): Collection public function getEvenements(): array { return $this->evenements; $sorted = $this->evenements->toArray(); usort($sorted, function (Evenement $a,Evenement $b) { $da = $a->getDateTimeDebut() ?? PHP_INT_MAX; $db = $b->getDateTimeDebut() ?? PHP_INT_MAX; return $da <=> $db; }); return $sorted; } public function getEvenementsActives(?DateTime $date = null): array { if ($date === null) $date = new DateTime(); $evenements = $this->getEvenements(); $evenements = array_filter($evenements, function (Evenement $e) use ($date) { return $e->estNonHistorise() and $e->getEtatActif() !== null and in_array($e->getEtatActif()->getType()->getCode(), [EvenementEtats::ETAT_INSCRIPTION_OUVERTE]) and $e->getDateTimeFin() > $date; }); return $evenements ; } public function setEvenements(Collection $evenements): void Loading module/Evenementiel/src/Entity/Db/Evenement.php +12 −0 Original line number Diff line number Diff line Loading @@ -184,6 +184,18 @@ class Evenement implements HistoriqueAwareInterface, HasEtatsInterface, Resource return $date; } public function getDateTimeDebut() : ?DateTime { $date = DateTime::createFromFormat('d/m/Y H:i', $this->getJour()->format('d/m/Y') . ' '. $this->getDebut()); return $date; } public function getDateTimeFin() : ?DateTime { $date = DateTime::createFromFormat('d/m/Y H:i', $this->getJour()->format('d/m/Y') . ' '. $this->getFin()); return $date; } /** INSCRIPTION ***************************************************************************************************/ /** Loading module/Evenementiel/view/evenementiel/categorie/courant.phtml +7 −4 Original line number Diff line number Diff line Loading @@ -25,18 +25,21 @@ $canAfficherEvenement = $this->isAllowed(EvenementPrivileges::getResourceId(Even <li> <?php echo $categorie->getLibelle(); ?> <ul> <?php foreach ($categorie->getEvenements() as $evenement) : <?php foreach ($categorie->getEvenementsActives() as $evenement) : /** @var Evenement $evenement */ ?> <li> <?php if ($canAfficherEvenement) : ?> <a href="<?php echo $this->url('evenementiel/evenement/fiche', ['entity' => $evenement->getId()], [], true); ?>" class="ajax-modal"> <?php echo $evenement->getLibelle(); ?> ( <?php echo $evenement->getDateEtHoraire(); ?> ) <?php echo $evenement->getLibelle(); ?> ( <?php echo $evenement->getDateEtHoraire(); ?> ) </a> ( <?php echo $evenement->getLieuLibelle(); ?> ) <?php else: ?> <?php echo $evenement->getLibelle(); ?> ( <?php echo $evenement->getDateEtHoraire(); ?> ) <?php echo $evenement->getLibelle(); ?> ( <?php echo $evenement->getDateEtHoraire(); ?> ) ( <?php echo $evenement->getLieuLibelle(); ?> ) <?php endif; ?> </li> <?php endforeach; ?> Loading module/Evenementiel/view/evenementiel/inscription/auto-inscription.phtml +2 −1 Original line number Diff line number Diff line Loading @@ -3,9 +3,10 @@ use Evenementiel\Entity\Db\Evenement; use Evenementiel\Entity\Db\Inscription; use Evenementiel\Entity\Db\Participant; use Evenementiel\Controller\InscriptionController; /** * @see \Atelier\Controller\InscriptionController::autoInscriptionAction() * @see InscriptionController::autoInscriptionAction() * @var Participant $participant * @var Evenement $evenements */ Loading Loading
module/Evenementiel/src/Entity/Db/Categorie.php +24 −2 Original line number Diff line number Diff line Loading @@ -2,8 +2,10 @@ namespace Evenementiel\Entity\Db; use DateTime; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use Evenementiel\Provider\Etat\EvenementEtats; use UnicaenUtilisateur\Entity\Db\HistoriqueAwareInterface; use UnicaenUtilisateur\Entity\Db\HistoriqueAwareTrait; Loading Loading @@ -52,9 +54,29 @@ class Categorie implements HistoriqueAwareInterface $this->description = $description; } public function getEvenements(): Collection public function getEvenements(): array { return $this->evenements; $sorted = $this->evenements->toArray(); usort($sorted, function (Evenement $a,Evenement $b) { $da = $a->getDateTimeDebut() ?? PHP_INT_MAX; $db = $b->getDateTimeDebut() ?? PHP_INT_MAX; return $da <=> $db; }); return $sorted; } public function getEvenementsActives(?DateTime $date = null): array { if ($date === null) $date = new DateTime(); $evenements = $this->getEvenements(); $evenements = array_filter($evenements, function (Evenement $e) use ($date) { return $e->estNonHistorise() and $e->getEtatActif() !== null and in_array($e->getEtatActif()->getType()->getCode(), [EvenementEtats::ETAT_INSCRIPTION_OUVERTE]) and $e->getDateTimeFin() > $date; }); return $evenements ; } public function setEvenements(Collection $evenements): void Loading
module/Evenementiel/src/Entity/Db/Evenement.php +12 −0 Original line number Diff line number Diff line Loading @@ -184,6 +184,18 @@ class Evenement implements HistoriqueAwareInterface, HasEtatsInterface, Resource return $date; } public function getDateTimeDebut() : ?DateTime { $date = DateTime::createFromFormat('d/m/Y H:i', $this->getJour()->format('d/m/Y') . ' '. $this->getDebut()); return $date; } public function getDateTimeFin() : ?DateTime { $date = DateTime::createFromFormat('d/m/Y H:i', $this->getJour()->format('d/m/Y') . ' '. $this->getFin()); return $date; } /** INSCRIPTION ***************************************************************************************************/ /** Loading
module/Evenementiel/view/evenementiel/categorie/courant.phtml +7 −4 Original line number Diff line number Diff line Loading @@ -25,18 +25,21 @@ $canAfficherEvenement = $this->isAllowed(EvenementPrivileges::getResourceId(Even <li> <?php echo $categorie->getLibelle(); ?> <ul> <?php foreach ($categorie->getEvenements() as $evenement) : <?php foreach ($categorie->getEvenementsActives() as $evenement) : /** @var Evenement $evenement */ ?> <li> <?php if ($canAfficherEvenement) : ?> <a href="<?php echo $this->url('evenementiel/evenement/fiche', ['entity' => $evenement->getId()], [], true); ?>" class="ajax-modal"> <?php echo $evenement->getLibelle(); ?> ( <?php echo $evenement->getDateEtHoraire(); ?> ) <?php echo $evenement->getLibelle(); ?> ( <?php echo $evenement->getDateEtHoraire(); ?> ) </a> ( <?php echo $evenement->getLieuLibelle(); ?> ) <?php else: ?> <?php echo $evenement->getLibelle(); ?> ( <?php echo $evenement->getDateEtHoraire(); ?> ) <?php echo $evenement->getLibelle(); ?> ( <?php echo $evenement->getDateEtHoraire(); ?> ) ( <?php echo $evenement->getLieuLibelle(); ?> ) <?php endif; ?> </li> <?php endforeach; ?> Loading
module/Evenementiel/view/evenementiel/inscription/auto-inscription.phtml +2 −1 Original line number Diff line number Diff line Loading @@ -3,9 +3,10 @@ use Evenementiel\Entity\Db\Evenement; use Evenementiel\Entity\Db\Inscription; use Evenementiel\Entity\Db\Participant; use Evenementiel\Controller\InscriptionController; /** * @see \Atelier\Controller\InscriptionController::autoInscriptionAction() * @see InscriptionController::autoInscriptionAction() * @var Participant $participant * @var Evenement $evenements */ Loading