Commit 1290a48b authored by Johnny Leveneur's avatar Johnny Leveneur
Browse files

amélioration de l'affichage de la page catalogue/évènement

parent ed74bf45
Loading
Loading
Loading
Loading
+24 −2
Original line number Diff line number Diff line
@@ -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;

@@ -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
+12 −0
Original line number Diff line number Diff line
@@ -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 ***************************************************************************************************/

    /**
+7 −4
Original line number Diff line number Diff line
@@ -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; ?>
+2 −1
Original line number Diff line number Diff line
@@ -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
*/