diff --git a/src/views/feature/Feature_list.vue b/src/views/feature/Feature_list.vue
index f5d4b5ba5abd4560312d060de958d326739424b2..8f69f3a1634a4571f2df40efba108ab6c91fb598 100644
--- a/src/views/feature/Feature_list.vue
+++ b/src/views/feature/Feature_list.vue
@@ -87,7 +87,6 @@
       <div class="field wide four column no-margin-mobile">
         <label>Type</label>
         <Dropdown
-          @update:selection="onFilterTypeChange($event)"
           :options="form.type.choices"
           :selected="form.type.selected"
           :selection.sync="form.type.selected"
@@ -99,8 +98,7 @@
         <label>Statut</label>
         <!--  //* giving an object mapped on key name -->
         <Dropdown
-          @update:selection="onFilterStatusChange($event)"
-          :options="form.status.choices"
+          :options="statusChoices"
           :selected="form.status.selected.name"
           :selection.sync="form.status.selected"
           :search="true"
@@ -116,7 +114,7 @@
               type="text"
               name="title"
               v-model="form.title"
-              @input="onFilterChange()"
+              @input="onFilterChange"
             />
             <button
               type="button"
@@ -128,7 +126,7 @@
           </div>
         </div>
       </div>
-      <!-- map params, updated on map move // todo : brancher sur la carte probablement -->
+      <!-- map params, updated on map move -->
       <input type="hidden" name="zoom" v-model="zoom" />
       <input type="hidden" name="lat" v-model="lat" />
       <input type="hidden" name="lng" v-model="lng" />
@@ -255,15 +253,15 @@ export default {
 
     filteredFeatures() {
       let results = this.geojsonFeatures;
-      if (this.filterType) {
+      if (this.form.type.selected) {
         results = results.filter(
-          (el) => el.properties.feature_type.title === this.filterType
+          (el) => el.properties.feature_type.title === this.form.type.selected
         );
       }
-      if (this.filterStatus) {
-        console.log("filter by" + this.filterStatus);
+      if (this.form.status.selected.value) {
+        console.log("filter by" + this.form.status.selected.value);
         results = results.filter(
-          (el) => el.properties.status.value === this.filterStatus
+          (el) => el.properties.status.value === this.form.status.selected.value
         );
       }
       if (this.form.title) {
@@ -278,6 +276,21 @@ export default {
       }
       return results;
     },
+
+    statusChoices() {
+      //* if project is not moderate, remove pending status
+      return this.form.status.choices.filter((el) =>
+        this.project.moderation ? true : el.value !== "pending"
+      );
+    },
+  },
+
+  watch: {
+    filteredFeatures(newValue, oldValue) {
+      if (newValue && newValue !== oldValue) {
+        this.onFilterChange()
+      }
+    }
   },
 
   methods: {
@@ -308,25 +321,6 @@ export default {
       this.modalAllDelete();
     },
 
-    onFilterStatusChange(newvalue) {
-      this.filterStatus = null;
-      if (newvalue) {
-        console.log("filter change", newvalue.value);
-        this.filterStatus = newvalue.value;
-      }
-
-      this.onFilterChange();
-    },
-
-    onFilterTypeChange(newvalue) {
-      this.filterType = null;
-      if (newvalue) {
-        console.log("filter change", newvalue);
-        this.filterType = newvalue;
-      }
-      this.onFilterChange();
-    },
-
     onFilterChange() {
       var features = this.filteredFeatures;
       this.featureGroup.clearLayers();