dashboard done + UI/UX fix

This commit is contained in:
Olivier PARPAILLON
2024-11-26 15:35:11 +01:00
parent 5e5e5e9ca7
commit 119051eef8
16 changed files with 271 additions and 49 deletions

View File

@@ -38,7 +38,7 @@ class AdminController extends AbstractController
{
$token = $tokenStorage->getToken();
$userConnect = $token?->getUser();
return $this->render('admin/index.html.twig', [
return $this->render('admin/list.html.twig', [
'profile' => $userConnect,
'controller_name' => 'AdminController',
]);

View File

@@ -17,7 +17,7 @@ class LieuController extends AbstractController
#[Route('/lieu', name: 'app_lieu')]
public function index(): Response
{
return $this->render('lieu/index.html.twig', [
return $this->render('lieu/list.html.twig', [
'controller_name' => 'LieuController',
]);
}

View File

@@ -22,22 +22,15 @@ class MainController extends AbstractController
$token = $tokenStorage->getToken();
$userConnect = $token?->getUser();
// Récupérer les paramètres de filtre
$search = $request->query->get('search', '');
$siteId = $request->query->get('site', '');
$startDate = $request->query->get('start_date', '');
$endDate = $request->query->get('end_date', '');
$organisateur = $request->query->get('organisateur', false);
$inscrit = $request->query->get('inscrit', false);
$nonInscrit = $request->query->get('non_inscrit', false);
$passees = $request->query->get('passees', false);
$sorties = $sortieRepository->findForDashboard();
$sortiesParticipation = $sortieRepository->findUserParticipation($userConnect);
$sortiesOrganisation = $sortieRepository->findUserOrganisation($userConnect);
$sorties = $sortieRepository->findWithFilters($search, $siteId, $startDate, $endDate, $organisateur, $inscrit, $nonInscrit, $passees, $userConnect);
return $this->render('main/index.html.twig', [
return $this->render('main/dashboard.html.twig', [
'profile' => $userConnect,
'sorties' => $sorties,
'sites' => $sortieRepository->findAllSites(),
'sortiesParticipation' => $sortiesParticipation,
'sortiesOrganisation' => $sortiesOrganisation,
]);
}

View File

@@ -116,6 +116,6 @@ class PasswordResetController extends AbstractController
return $this->redirectToRoute('app_login');
}
return $this->render('password_reset/index.html.twig', ['token' => $token]);
return $this->render('password_reset/list.html.twig', ['token' => $token]);
}
}

View File

@@ -7,6 +7,7 @@ use App\Form\SortieType;
use App\Repository\EtatRepository;
use App\Repository\LieuRepository;
use App\Repository\ParticipantRepository;
use App\Repository\SortieRepository;
use DateTime;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
@@ -18,6 +19,34 @@ use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInt
#[Route('/sortie', name: 'sortie_')]
class SortieController extends AbstractController
{
#[Route('/liste', name: 'list', methods: ['GET'])]
public function index(
TokenStorageInterface $tokenStorage,
SortieRepository $sortieRepository,
Request $request
): Response {
$token = $tokenStorage->getToken();
$userConnect = $token?->getUser();
// Récupérer les paramètres de filtre
$search = $request->query->get('search', '');
$siteId = $request->query->get('site', '');
$startDate = $request->query->get('start_date', '');
$endDate = $request->query->get('end_date', '');
$organisateur = $request->query->get('organisateur', false);
$inscrit = $request->query->get('inscrit', false);
$nonInscrit = $request->query->get('non_inscrit', false);
$passees = $request->query->get('passees', false);
$sorties = $sortieRepository->findWithFilters($search, $siteId, $startDate, $endDate, $organisateur, $inscrit, $nonInscrit, $passees, $userConnect);
return $this->render('sortie/list.html.twig', [
'profile' => $userConnect,
'sorties' => $sorties,
'sites' => $sortieRepository->findAllSites(),
]);
}
#[Route('/creates', name: 'create', methods: ['GET', 'POST'])]
public function create(
Request $request,

View File

@@ -67,6 +67,35 @@ class SortieRepository extends ServiceEntityRepository
return $qb->getQuery()->getResult();
}
public function findForDashboard()
{
return $this->createQueryBuilder('s')
->orderBy('s.dateLimiteInscription', 'ASC')
->andWhere('s.dateHeureDebut >= :lastMonth')
->setParameter('lastMonth', (new \DateTime())->modify('-1 month'))
->getQuery()
->getResult();
}
public function findUserParticipation($userConnect)
{
return $this->createQueryBuilder('s')
->leftJoin('s.participants', 'p')
->where('p.idParticipant = :user')
->setParameter('user', $userConnect->getIdParticipant())
->getQuery()
->getResult();
}
public function findUserOrganisation($userConnect)
{
return $this->createQueryBuilder('s')
->leftJoin('s.organisateur', 'o')
->where('o.idParticipant = :user')
->setParameter('user', $userConnect->getIdParticipant())
->getQuery()
->getResult();
}
public function findAllSites()
{
return $this->getEntityManager()