Commit 6c81d760 authored by Stephane Bouvry's avatar Stephane Bouvry
Browse files

Filtre sur les Jalons

Filtre sur les dates
Affichage des jalons simple dans la recherche avancées
Ajout d'un Filtre "Actif l'année X" (à améliorer)
Fix : Nombre résultats
(Travaux toujours en cours)
parent 405ce24c
Loading
Loading
Loading
Loading
Loading
+35 −25
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ use Elasticsearch\Common\Exceptions\BadRequest400Exception;
use Exception;
use Laminas\Http\Response;
use Oscar\Entity\Activity;
use Oscar\Entity\ActivityDate;
use Oscar\Entity\ActivityOrganization;
use Oscar\Entity\ActivityPayment;
use Oscar\Entity\ActivityPerson;
@@ -51,6 +52,7 @@ use Oscar\Provider\Privileges;
use Oscar\Service\ActivityAvenantsService;
use Oscar\Service\ActivityRequestService;
use Oscar\Service\ActivityTypeService;
use Oscar\Service\administration\AdministrationConfigService;
use Oscar\Service\DocumentFormatterService;
use Oscar\Service\OrganizationService;
use Oscar\Service\ProjectGrantApiService;
@@ -119,6 +121,20 @@ class ProjectGrantController extends AbstractOscarController implements UseNotif

    private $projectGrantApiService;

    /** @var AdministrationConfigService */
    private $administrationConfigService;

    public function getAdministrationConfigService(): AdministrationConfigService
    {
        return $this->administrationConfigService;
    }

    public function setAdministrationConfigService(AdministrationConfigService $administrationConfigService): void
    {
        $this->administrationConfigService = $administrationConfigService;
    }


    /**
     * @return ProjectGrantApiService
     */
@@ -2742,28 +2758,7 @@ class ProjectGrantController extends AbstractOscarController implements UseNotif
    public function advancedSearch2Action(): array|ViewModel
    {
        // Type de filtre
        $filters = [
            "at" => [
                "key" => 'at',
                "label" => $this->oscarText("Activité - Type"),
                "raw" => 'at;;;'
            ],
            "ap" => [
                "key" => 'ap',
                "label" => $this->oscarText("Personne impliquée"),
                "raw" => 'ap;;;'
            ],
            "ao" => [
                "key" => 'ao',
                "label" => $this->oscarText("Organisation impliquée"),
                "raw" => 'ao;;;'
            ],
            "orp" => [
                "key" => 'orp',
                "label" => $this->oscarText("Orphelin"),
                "raw" => 'orp;;;'
            ]
        ];
        $filters = $this->getProjectGrantService()->getFiltersAvailables($this->oscarText);

        $sorts = [
            'hit' => 'Pertinence de la recherche (textuelle)',
@@ -2796,10 +2791,25 @@ class ProjectGrantController extends AbstractOscarController implements UseNotif
            return $response;
        }

        /*
        'countries'              => $this->getFilterOptionsCountries(),
            'numerotations'          => $this->getFilterOptionsActivityNumbers(),
            'accounts'               => $this->getFilterOptionsAccountsUsed(),
            'types'                  => $this->getFilterOptionsActivityTypes(),
            'documentsTypes'         => $this->getFilterOptionsDocumentTypes(),
            'disciplines'            => $this->getFilterOptionsDisciplines(),
         */

        $milestonesType = $this->getProjectGrantSearchService()->getFilterOptionsMilestones();
        $milestonesProgressions = ActivityDate::progressLabels();
        // Données pour la vue
        $filtersOptions = [
            'activityTypes' => $this->getActivityTypeService()->getActivityTypesTree(true),
            'activityDocumentTypes' => $this->getProjectGrantSearchService()->getFilterOptionsMilestones(),
            //'activityDocumentTypes' => $this->getProjectGrantSearchService()->getFilterOptionsMilestones(),
            //'countries' => $this->getProjectGrantSearchService()->getFilterOptionsCountries(),
            'status' => $this->getAdministrationConfigService()->activityStatusSelect(true, true, false),
            'milestones' => $milestonesType,
            'milestonesProgressions' => $milestonesProgressions,
            'rolesPersons' => $rolesPersons,
            'rolesOrganizations' => $rolesOrganizations,
            'filters' => $filters,
+2 −0
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@ use Interop\Container\ContainerInterface;
use Oscar\Service\ActivityLogService;
use Oscar\Service\ActivityRequestService;
use Oscar\Service\ActivityTypeService;
use Oscar\Service\administration\AdministrationConfigService;
use Oscar\Service\ContractDocumentService;
use Oscar\Service\DocumentFormatterService;
use Oscar\Service\NotificationService;
@@ -57,6 +58,7 @@ class ProjectGrantControllerFactory implements FactoryInterface
        $c->setSignatureService($container->get(SignatureService::class));
        $c->setProjectGrantSearchService($container->get(ProjectGrantSearchService::class));
        $c->setProjectGrantApiService($container->get(ProjectGrantApiService::class));
        $c->setAdministrationConfigService($container->get(AdministrationConfigService::class));
        $c->setServiceContainer($container);
        return $c;
    }
+5 −0
Original line number Diff line number Diff line
@@ -532,4 +532,9 @@ class ActivityDate implements ITrackable
        }
        return $out;
    }

    public function getFinishedInt() :int
    {
        return intval($this->getFinished());
    }
}
 No newline at end of file
+4 −0
Original line number Diff line number Diff line
@@ -459,6 +459,7 @@ class MilestoneService implements UseLoggerService, UseEntityManager, UseOscarUs
                LogActivity::CONTEXT_ACTIVITY,
                $milestone->getActivity()->getId()
            );
            $this->getProjectGrantService()->getGearmanJobLauncherService()->triggerUpdateSearchIndexActivity($milestone->getActivity());
            $this->getNotificationService()->jobUpdateNotificationsActivity($milestone->getActivity());

            return $milestone;
@@ -502,6 +503,7 @@ class MilestoneService implements UseLoggerService, UseEntityManager, UseOscarUs
            LogActivity::CONTEXT_ACTIVITY,
            $milestone->getActivity()->getId()
        );
        $this->getProjectGrantService()->getGearmanJobLauncherService()->triggerUpdateSearchIndexActivity($milestone->getActivity());
        $this->getNotificationService()->jobUpdateNotificationsActivity($milestone->getActivity());

        return $milestone;
@@ -651,6 +653,8 @@ class MilestoneService implements UseLoggerService, UseEntityManager, UseOscarUs
            LogActivity::CONTEXT_ACTIVITY,
            $milestone->getActivity()->getId()
        );

        $this->getProjectGrantService()->getGearmanJobLauncherService()->triggerUpdateSearchIndexActivity($milestone->getActivity());
        $this->getNotificationService()->jobUpdateNotificationsActivity($milestone->getActivity());

        return $milestone;
+4 −0
Original line number Diff line number Diff line
@@ -163,6 +163,10 @@ class ProjectGrantSearchService implements UseEntityManager, UsePersonService, U
        return $defaultValue;
    }

    public function getFilterOptionsStatus()
    {
    }


    /**
     * Retourne $input si cette valeur est bien présente comme clef dans le tableau $arrayRef. Sinon, retourne la
Loading