<?php
namespace App\Controller\Admin;
use App\Controller\Admin\CompanyMeceneCrudController;
use App\Controller\Admin\AcceptedMecenatCrudController;
use App\Controller\Admin\CollaboratorVolunteerCrudController;
use App\Entity\Collaborator;
use App\Entity\CommentMecenat;
use App\Entity\Company;
use App\Entity\CompanyMecene;
use App\Entity\Consultant;
use App\Entity\Mecenat;
use App\Entity\Offer;
use App\Entity\SectorActivity;
use App\Entity\SkillCollaborator;
use App\Entity\User;
use App\Repository\CollaboratorRepository;
use App\Repository\CompanyMeceneRepository;
use App\Repository\CompanyRepository;
use App\Repository\ConsultantRepository;
use App\Repository\MecenatRepository;
use EasyCorp\Bundle\EasyAdminBundle\Config\Dashboard;
use EasyCorp\Bundle\EasyAdminBundle\Config\MenuItem;
use EasyCorp\Bundle\EasyAdminBundle\Controller\AbstractDashboardController;
use App\Repository\OfferRepository;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class DashboardController extends AbstractDashboardController
{
private $companyMeceneRepo,$collaboratorRepo,$companyQpvRepo,$mecenatRepo;
public function __construct(
CompanyMeceneRepository $companyMeceneRepo,
CollaboratorRepository $collaboratorRepo,
CompanyRepository $companyQpvRepo,
MecenatRepository $mecenatRepo,
ConsultantRepository $consultantRepo,
OfferRepository $offerRepo
)
{
$this->companyMeceneRepo = $companyMeceneRepo;
$this->collaboratorRepo = $collaboratorRepo;
$this->companyQpvRepo = $companyQpvRepo;
$this->consultantRepo =$consultantRepo;
$this->mecenatRepo =$mecenatRepo;
$this->offerRepo = $offerRepo;
}
#[Route('/', name: 'admin')]
public function index(): Response
{
// $adminUrlGenerator = $this->container->get(AdminUrlGenerator::class);
// return $this->redirect($adminUrlGenerator->setController(MecenatCrudController::class)->generateUrl());
$companiesMecene = $this->companyMeceneRepo->findAll();
$collaborators = $this->collaboratorRepo->findAll();
$companiesQpv = $this->companyQpvRepo->findAll();
$consultants = $this->consultantRepo->findAll();
$mecenats = $this->mecenatRepo->findAll();
$mecenatsEncours = $this->mecenatRepo->MecenatEncours();
$nombreOffers = $this->offerRepo->findAll();
$nombreFinalisedOffers = $this->offerRepo->findFinalisedOffers();
$pendingOffers = $this->offerRepo->findPendingOffers();
return $this->render('bundles/EasyAdminBundle/welcome.html.twig',[
'companiesMecene'=>$companiesMecene,
'collaborators'=>$collaborators,
'companiesQpv'=>$companiesQpv,
'mecenats'=> $mecenats,
'consultants'=> $consultants,
'mecenatsEncours'=> $mecenatsEncours,
'nombreOffers' => $nombreOffers,
'nombreFinalisedOffers' => $nombreFinalisedOffers,
"pendingOffre" => $pendingOffers
]);
return parent::index();
//return parent::index();
// Option 1. You can make your dashboard redirect to some common page of your backend
//
// $adminUrlGenerator = $this->container->get(AdminUrlGenerator::class);
// return $this->redirect($adminUrlGenerator->setController(OneOfYourCrudController::class)->generateUrl());
// Option 2. You can make your dashboard redirect to different pages depending on the user
//
// if ('jane' === $this->getUser()->getUsername()) {
// return $this->redirect('...');
// }
// Option 3. You can render some custom template to display a proper dashboard with widgets, etc.
// (tip: it's easier if your template extends from @EasyAdmin/page/content.html.twig)
//
// return $this->render('some/path/my-dashboard.html.twig');
}
public function configureDashboard(): Dashboard
{
return Dashboard::new()
->setTitle('<img width="130px" style="margin:10px 0 0 40px;" src="assets/images/logo.png" />
</br>
<div class="badge badge-primary text-center d-block mt-2 " style="font-weight: 600;" >ADMIN</div>
')
->setTranslationDomain("admin")
;
}
public function configureMenuItems(): iterable
{
yield MenuItem::linkToDashboard('Dashboard', 'fa fa-home');
yield MenuItem::section('Gestion Mecenats');
yield MenuItem::linkToCrud('Entreprises mécènes', 'fas fa-file-invoice', CompanyMecene::class)->setController(CompanyMeceneCrudController::class);
yield MenuItem::linkToCrud('Collaborateurs mécènes', 'fas fa-hand-holding-usd', Collaborator::class)->setController(CollaboratorCrudController::class);
yield MenuItem::linkToCrud('Collaborateurs bénévoles', 'fas fa-hand-holding-usd', '#')->setController(CollaboratorVolunteerCrudController::class);
yield MenuItem::linkToCrud('Entreprise QPV', 'fas fa-building', Company::class)->setController(CompanyCrudController::class);
yield MenuItem::linkToCrud('Liste des demandes de mécénat', 'fas fa-file-invoice',Mecenat::class)->setController(MecenatCrudController::class);
yield MenuItem::linkToCrud('Missions mécénats en cours', 'fas fa-user-tie', Mecenat::class)->setController(AcceptedMecenatCrudController::class);
yield MenuItem::linkToCrud('Missions mécénat finalisés', 'fas fa-user-tie', Mecenat::class)->setController(FinishedMecenatCrudController::class);
yield MenuItem::linkToCrud('Commentaires', 'fas fa-building', CommentMecenat::class);
yield MenuItem::linkToCrud('Attestations de mécénat', 'fas fa-user-tie', Mecenat::class)->setController(FinishedMecenatCrudController::class);
yield MenuItem::section("Consultation de spécialistes");
yield MenuItem::linkToCrud('Les spécialistes', 'fas fa-users', Consultant::class)->setController(ConsultantCrudController::class);
yield MenuItem::linktoRoute('Spécialistes', 'fas fa-users', 'specialists_company');
yield MenuItem::linkToCrud('Liste des consultations', 'fas fa-file-invoice', Offer::class)->setController(OfferCrudController::class);
yield MenuItem::linkToCrud('Devis émis', 'fas fa-file-invoice', Devis::class)->setController(DevisCrudController::class);
yield MenuItem::linkToCrud('Factures émises', 'fas fa-file-invoice', Invoice::class)->setController(InvoiceCrudController::class);
yield MenuItem::linkToCrud('Gérer et modifier des spécialistes', 'fas fa-user-check', Consultant::class)->setController(ConsultantCrudController::class);
yield MenuItem::section('Systeme');
yield MenuItem::linkToUrl('Paramètres', 'fas fa-gears', '#');
yield MenuItem::linkToCrud('Compétences', 'fas fa-building', SkillCollaborator::class);
yield MenuItem::linkToCrud('Secteurs d\'activités', 'fas fa-building', SectorActivity::class);
yield MenuItem::linkToCrud('Utilisateurs', 'fas fa-user-shield', User::class)->setController(UserCrudController::class);
yield MenuItem::linktoRoute('Vidéo Centre d’aide', 'fa fa-video', 'video_Centre_daide');
yield MenuItem::linkToUrl('QPV Liste', "fas fa-link", "https://qpvlist.gebanalysis.cloud")->setLinkTarget('_blanc');
// yield MenuItem::linkToCrud('QPV', 'fas fa-users', Consultant::class)->setController(Consultant2CrudController::class);
}}