Browse Source

prise en compte de l'activity year filter

Vincent 6 tháng trước cách đây
mục cha
commit
490532bb67
1 tập tin đã thay đổi với 63 bổ sung11 xóa
  1. 63 11
      src/Service/Doctrine/FiltersConfigurationService.php

+ 63 - 11
src/Service/Doctrine/FiltersConfigurationService.php

@@ -66,23 +66,52 @@ class FiltersConfigurationService
     public function suspendTimeConstraintFilters(): void
     {
         if ($this->previousTimeConstraintState !== null) {
-            throw new \RuntimeException('date_time_filter is already suspended');
+            throw new \RuntimeException('time constraint is already suspended');
         }
 
-        $filters = $this->entityManager->getFilters();
-
-        if (!$filters->isEnabled('date_time_filter')) {
+        if ($this->timeFiltersAllReadyDisabled()) {
             $this->previousTimeConstraintState = false;
-
             return;
         }
 
-        /** @var AbstractTimeFilter $filter */
-        $filter = $filters->getFilter('date_time_filter');
+        $this->suspendDateTimeConstraintFilters();
+        $this->suspendActivityYearConstraintFilters();
 
-        $this->previousTimeConstraintState = $filter->isDisabled() === false;
+        $this->previousTimeConstraintState = false;
+    }
 
-        $filter->setDisabled(true);
+    /**
+     * Test si les filtres de temps sont déjà désactivés
+     * @return bool
+     */
+    private function timeFiltersAllReadyDisabled(): bool
+    {
+        $filters = $this->entityManager->getFilters();
+        return !$filters->isEnabled('date_time_filter') && !$filters->isEnabled('activity_year_filter');
+    }
+
+    /**
+     * Suspend le filtre date_time_filter
+     * @return void
+     */
+    private function suspendDateTimeConstraintFilters(): void
+    {
+        $filters = $this->entityManager->getFilters();
+        /** @var AbstractTimeFilter $filter */
+        $dateTimeFilter = $filters->getFilter('date_time_filter');
+        $dateTimeFilter->setDisabled(true);
+    }
+
+    /**
+     * Suspend le filtre activity_year_filter
+     * @return void
+     */
+    private function suspendActivityYearConstraintFilters(): void
+    {
+        $filters = $this->entityManager->getFilters();
+        /** @var AbstractTimeFilter $filter */
+        $dateTimeFilter = $filters->getFilter('activity_year_filter');
+        $dateTimeFilter->setDisabled(true);
     }
 
     /**
@@ -94,9 +123,20 @@ class FiltersConfigurationService
     public function restoreTimeConstraintFilters(): void
     {
         if ($this->previousTimeConstraintState === null) {
-            throw new \RuntimeException('date_time_filter has not been suspended, can not be restored');
+            throw new \RuntimeException('time constraint has not been suspended, can not be restored');
         }
 
+        $this->restoreDateTimeFilter();
+        $this->restoreActivityYearFilter();
+
+        $this->previousTimeConstraintState = null;
+    }
+
+    /**
+     * Restaure le filtre date_time_filter
+     * @return void
+     */
+    private function restoreDateTimeFilter(){
         $filters = $this->entityManager->getFilters();
 
         if ($filters->isEnabled('date_time_filter')) {
@@ -104,7 +144,19 @@ class FiltersConfigurationService
             $filter = $filters->getFilter('date_time_filter');
             $filter->setDisabled($this->previousTimeConstraintState);
         }
+    }
 
-        $this->previousTimeConstraintState = null;
+    /**
+     * Restaure le filtre activity_year_filter
+     * @return void
+     */
+    private function restoreActivityYearFilter(){
+        $filters = $this->entityManager->getFilters();
+
+        if ($filters->isEnabled('activity_year_filter')) {
+            /** @var AbstractTimeFilter $filter */
+            $filter = $filters->getFilter('activity_year_filter');
+            $filter->setDisabled($this->previousTimeConstraintState);
+        }
     }
 }