Commit 492f7b10 authored by Stephane Bouvry's avatar Stephane Bouvry
Browse files

- Ajout d'un filtre sur les types de documents (recherche des activités)

parent e0cdde56
Loading
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1750,8 +1750,8 @@ class AdministrationController extends AbstractOscarController implements
                        if (array_key_exists($t->getId(), $infos)) {
                            $dt['documents_total'] = $infos[$t->getId()];
                            if ($hasSearchAccess) {
                                $dt['documents_view'] = $this->url()->fromRoute('contract/advancedsearch')
                                    . '?q=&criteria[]=td%3B' . $t->getId() . '%3B0';
                                $dt['documents_view'] = $this->url()->fromRoute('contract/search-global')
                                    . '?q=&f[]=dt%3B' . $t->getId() . '%3B0';
                            }
                        }
                        $out['types'][] = $dt;
+1 −0
Original line number Diff line number Diff line
@@ -2898,6 +2898,7 @@ class ProjectGrantController extends AbstractOscarController implements UseNotif
        $filtersOptions['disciplines'] = $this->getProjectGrantSearchService()->getFilterOptionsDisciplines();
        $filtersOptions['keywords'] = $this->getProjectGrantSearchService()->getFilterOptionsKeywords();
        $filtersOptions['status'] = $this->getAdministrationConfigService()->activityStatusSelect(true, true, false);
        $filtersOptions['documentsTypes'] = $this->getProjectGrantSearchService()->getFilterOptionsDocumentTypes();
        $filtersOptions['milestones'] = $milestonesType;
        $filtersOptions['milestonesProgressions'] = $milestonesProgressions;
        $filtersOptions['rolesPersons'] = $rolesPersons;
+30 −1
Original line number Diff line number Diff line
@@ -2702,6 +2702,11 @@ class ProjectGrantService implements UseGearmanJobLauncherService, UseOscarConfi
                "label" => $this->getOscarConfigurationService()->oscarText("Type"),
                "raw" => 'at;;;'
            ],
            "dt" => [
                "key" => 'dt',
                "label" => $this->getOscarConfigurationService()->oscarText("Type de document"),
                "raw" => 'dt;;;'
            ],
            "ap" => [
                "key" => 'ap',
                "label" => $this->getOscarConfigurationService()->oscarText("Personne impliquée"),
@@ -3018,7 +3023,31 @@ class ProjectGrantService implements UseGearmanJobLauncherService, UseOscarConfi

                        break;

                    ///////////////////////////////////////////// STATUS
                    ////////////////////////////////////////////// TYPE de DOCUMENT
                    case 'dt':
                        $idsDoc = "";
                        $value1 = explode(',', $value1);
                        try {
                            $reverse = $value2 == "1";
                            $filteredIds = $this->getActivitiesIdsWithTypeDocument(
                                $value1,
                                $reverse
                            );
                        } catch (Exception $e) {
                            $this->getLoggerService()->warning($e->getMessage());
                            throw new OscarException("Un problème est survenu en filtrant sur les types de documents");
                        }
                        if (!array_key_exists('dt', $filterES)) {
                            $filterES['dt'] = [];
                        }
                        $filterES['dt'][] = [
                            'terms' => [
                                'id' => $filteredIds
                            ]
                        ];
                        break;

                    ///////////////////////////////////////////// DISCIPLINE
                    case 'dis':
                        if( !$value1 ){
                            $error = "Aucune discipline";
+9 −1
Original line number Diff line number Diff line
@@ -98,7 +98,6 @@
      <option value="">Ajouter un filtre</option>
      <option :value="f.key" v-for="(f,k) in filtersOptions.filters">{{ k +" : " + f.label }}</option>
    </select>

    <section class="activity-filters">
      <div v-for="filter in filters">
        <activity-search-filter-type
@@ -178,6 +177,14 @@
            @filter-update="handlerUpdateFilter(filter, $event)"
            @remove="handlerRemoveFilter(filter)"
        />
        <activity-search-filter-multi-select-value
            v-else-if="filter.type == 'dt'"
            :values="filtersOptions.documentsTypes"
            :filter="filter"
            @filter-update="handlerUpdateFilter(filter, $event)"
            @remove="handlerRemoveFilter(filter)"
        />

        <activity-search-filter-generic
            v-else
            :filter="filter"
@@ -450,6 +457,7 @@ export default {
    handlerAddFilter(evt){
      try {
        let filter = this.filtersOptions.filters[evt.target.value];
        console.log(filter);
        this.handlerAddFilterFromRaw(filter.raw);
        evt.target.value = "";
      } catch (err) {