No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

181 líneas
6.9KB

  1. <?php
  2. namespace App\Controller\Admin;
  3. use App\Controller\Admin\IndividualData\IndividualDataAdminController;
  4. use App\Entity\Site\Block;
  5. use App\Entity\CollectifData\CollectifData;
  6. use App\Entity\Dream\Dream;
  7. use App\Entity\ProjectBoost\ProjectBoost;
  8. use App\Entity\ProjectInspiring\ProjectInspiring;
  9. use App\Entity\Revolt\Revolt;
  10. use App\Entity\Site\Page;
  11. use App\Entity\Thematic\Subthematic;
  12. use App\Entity\Territory\Territory;
  13. use App\Entity\Thematic\Thematic;
  14. use App\Entity\User\User;
  15. use EasyCorp\Bundle\EasyAdminBundle\Config\Action;
  16. use EasyCorp\Bundle\EasyAdminBundle\Config\Assets;
  17. use EasyCorp\Bundle\EasyAdminBundle\Config\MenuItem;
  18. use EasyCorp\Bundle\EasyAdminBundle\Router\AdminUrlGenerator;
  19. use Lc\SovBundle\Controller\Dashboard\DashboardAdminController as SovDashboardController;
  20. use Symfony\Component\HttpFoundation\Response;
  21. class DashboardController extends SovDashboardController
  22. {
  23. const ROLE_ADMIN = "ROLE_ADMIN";
  24. const ROLE_SUPER_ADMIN = "ROLE_SUPER_ADMIN";
  25. const ROLE_ANIMATOR = "ROLE_ANIMATOR";
  26. private $adminUrlGenerator;
  27. public function __construct(AdminUrlGenerator $adminUrlGenerator)
  28. {
  29. $this->adminUrlGenerator = $adminUrlGenerator;
  30. }
  31. public function index(): Response
  32. {
  33. $repoCollectifData = $this->getDoctrine()->getRepository(CollectifData::class);
  34. $repoDream = $this->getDoctrine()->getRepository(Dream::class);
  35. $repoRevolt = $this->getDoctrine()->getRepository(Revolt::class);
  36. $repoProjectBoost = $this->getDoctrine()->getRepository(ProjectBoost::class);
  37. $repoProjectsInsp = $this->getDoctrine()->getRepository(ProjectInspiring::class);
  38. $repoUser = $this->getDoctrine()->getRepository(User::class);
  39. $formUnvalid = $repoCollectifData->findByStatus(0);
  40. $formValid = $repoCollectifData->findByStatus(1);
  41. $dream = $repoDream->findAll();
  42. $revolt = $repoRevolt->findAll();
  43. $projectBoost = $repoProjectBoost->findAll();
  44. $projectsInsp = $repoProjectsInsp->findAll();
  45. $animators = $repoUser->findByRole(self::ROLE_ANIMATOR);
  46. return $this->render(
  47. '/adminlte/dashboard.html.twig',
  48. [
  49. 'nbFormUnvalid' => count($formUnvalid),
  50. 'nbFormValid' => count($formValid),
  51. 'nbDream' => count($dream),
  52. 'nbRevolt' => count($revolt),
  53. 'nbProjectBoost' => count($projectBoost),
  54. 'nbProjectsInsp' => count($projectsInsp),
  55. 'nbAnimator' => count($animators)
  56. ]
  57. );
  58. }
  59. public function configureAssets(): Assets
  60. {
  61. $assets = parent::configureAssets();
  62. $assets->addWebpackEncoreEntry('app-backend');
  63. return $assets;
  64. }
  65. public function configureMenuItems(): iterable
  66. {
  67. $urlNewCollectif = $this->adminUrlGenerator
  68. ->unsetAll()
  69. ->setController(CollectifDataCrudController::class)
  70. ->setAction(Action::NEW)
  71. ->set('menuIndex', 4)
  72. ->set('submenuIndex', 0)
  73. ->generateUrl();
  74. $urlOfflineCollectif = $this->adminUrlGenerator
  75. ->unsetAll()
  76. ->setController(CollectifDataCrudController::class)
  77. ->setAction(Action::INDEX)
  78. ->set('status', 0)
  79. ->set('menuIndex', 4)
  80. ->set('submenuIndex', 0)
  81. ->generateUrl();
  82. $urlOnlineCollectif = $this->adminUrlGenerator
  83. ->unsetAll()
  84. ->setController(CollectifDataCrudController::class)
  85. ->setAction(Action::INDEX)
  86. ->set('status', 1)
  87. ->set('menuIndex', 4)
  88. ->set('submenuIndex', 1)
  89. ->generateUrl();
  90. $urlNewIndividuel = $this->adminUrlGenerator
  91. ->unsetAll()
  92. ->setController(IndividualDataAdminController::class)
  93. ->setAction(Action::NEW)
  94. ->set('menuIndex', 3)
  95. ->set('submenuIndex', 0)
  96. ->generateUrl();
  97. $urlOfflineIndividuel = $this->adminUrlGenerator
  98. ->unsetAll()
  99. ->setController(IndividualDataAdminController::class)
  100. ->setAction(Action::INDEX)
  101. ->set('status', 0)
  102. ->set('menuIndex', 3)
  103. ->set('submenuIndex', 0)
  104. ->generateUrl();
  105. $urlOnlineIndividuel = $this->adminUrlGenerator
  106. ->unsetAll()
  107. ->setController(IndividualDataAdminController::class)
  108. ->setAction(Action::INDEX)
  109. ->set('status', 1)
  110. ->set('menuIndex', 3)
  111. ->set('submenuIndex', 1)
  112. ->generateUrl();
  113. $menuItems = [
  114. MenuItem::linkToDashboard('dashboard', 'far fa-circle'),
  115. MenuItem::subMenu('account', 'fas fa-user')
  116. ->setSubItems(
  117. [
  118. MenuItem::linkToRoute('account_profile', 'fas fa-user-cog', 'sov_admin_account_profile'),
  119. MenuItem::linkToRoute('account_password', 'fas fa-key', 'sov_admin_account_password'),
  120. ]
  121. ),
  122. MenuItem::linkToCrud('user', 'fas fa-users', User::class)
  123. ->setPermission(self::ROLE_ADMIN),
  124. MenuItem::subMenu('data_individual', 'fas fa-database')
  125. ->setPermission(self::ROLE_ADMIN)
  126. ->setSubItems(
  127. [
  128. //MenuItem::linkToUrl('data_individual_new', 'fas fa-plus', $urlNewIndividuel),
  129. MenuItem::linkToUrl('data_individual_waiting', 'fas fa-hourglass-half', $urlOfflineIndividuel),
  130. MenuItem::linkToUrl('data_individual_validate', 'fas fa-check', $urlOnlineIndividuel),
  131. ]
  132. ),
  133. MenuItem::subMenu('data_collectif', 'fas fa-database')
  134. ->setPermission(self::ROLE_ADMIN)
  135. ->setSubItems(
  136. [
  137. ///MenuItem::linkToUrl('data_collectif_new', 'fas fa-plus', $urlNewCollectif),
  138. MenuItem::linkToUrl('data_collectif_waiting', 'fas fa-hourglass-half', $urlOfflineCollectif),
  139. MenuItem::linkToUrl('data_collectif_validate', 'fas fa-check', $urlOnlineCollectif),
  140. ]
  141. ),
  142. MenuItem::linkToCrud('thematic', 'fas fa-book', Thematic::class)
  143. ->setPermission(self::ROLE_ADMIN),
  144. MenuItem::linkToCrud('subthematic', 'fas fa-book', Subthematic::class)
  145. ->setPermission(self::ROLE_ADMIN),
  146. MenuItem::linkToCrud('territory', 'far fa-copy', Territory::class)
  147. ->setPermission(self::ROLE_SUPER_ADMIN),
  148. MenuItem::linkToCrud('page', 'far fa-copy', Page::class)
  149. ->setPermission(self::ROLE_ADMIN),
  150. MenuItem::linkToCrud('blocs', 'fas fa-tags', Block::class)
  151. ->setPermission(self::ROLE_ADMIN),
  152. ];
  153. /*$this->setMenuIndexes($menuItems);*/
  154. return $menuItems;
  155. }
  156. }