<?php
namespace App\Controller\Adherent;
use App\Controller\AbstractController;
use App\Entity\Section;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\IsGranted;
use Symfony\Component\Routing\Annotation\Route;
class HomeController extends AbstractController
{
#[Route(name: 'home')]
public function home()
{
return $this->redirectToRoute('dashboard');
}
#[Route('/espace-membre', name: 'dashboard')]
#[IsGranted('ROLE_USER')]
public function dashboard()
{
$user = $this->getUser();
$family = $user->getPerson()->getFamily();
if (null === $family) {
return $this->redirectToRoute('registration_family');
}
$persons = $family->getPersons();
$registrations = $family->getActiveRegistrations();
$groupedRegistrations = [];
foreach ($registrations as $registration) {
$section = $registration->getSeason()->getSection();
$sectionId = $section->getId();
if (!isset($groupedRegistrations[$sectionId])) {
$groupedRegistrations[$sectionId] = $section;
$section->registrations = [];
}
$groupedRegistrations[$sectionId]->registrations[] = $registration;
}
ksort($groupedRegistrations);
$noRegistrationsPersons = [];
foreach ($persons as $person) {
if ($person->getActiveRegistrations()->count() === 0) {
$noRegistrationsPersons[] = $person;
}
}
return $this->render('adherent/dashboard/home.html.twig', [
'sections' => $groupedRegistrations,
'no_registration_persons' => $noRegistrationsPersons,
'family' => $family,
'benefactor_section' => $this->em->getRepository(Section::class)->findDefaultBenefactorTunnel(),
]);
}
#[Route('/member', name: 'member')]
#[IsGranted('ROLE_ADHERENT')]
public function member()
{
return $this->render('admin/show_user.html.twig');
}
}