From c73af19f09ce27805d77fa0495bb963a54ca7464 Mon Sep 17 00:00:00 2001
From: leandro <leandroalmada86@gmail.com>
Date: Mon, 27 Sep 2021 10:00:12 +0200
Subject: [PATCH] add filter status feature

---
 src/views/feature/Feature_edit.vue | 35 ++++++++++++++++++++++++++----
 1 file changed, 31 insertions(+), 4 deletions(-)

diff --git a/src/views/feature/Feature_edit.vue b/src/views/feature/Feature_edit.vue
index 900bb1b0..42ba0792 100644
--- a/src/views/feature/Feature_edit.vue
+++ b/src/views/feature/Feature_edit.vue
@@ -41,7 +41,7 @@
               form.status.label
             }}</label>
             <Dropdown
-              :options="statusChoices"
+              :options="statusChoicesFilter"
               :selected="selected_status.name"
               :selection.sync="selected_status"
             />
@@ -272,13 +272,24 @@ export default {
       erreurUploadMessage: null,
       attachmentDataKey: 0,
       linkedDataKey: 0,
+      statusChoicesFilter:[],
       statusChoices: [
         {
           name: "Brouillon",
           value: "draft",
         },
-        { name: "Publié", value: "published" },
-        { name: "Archivé", value: "archived" },
+         { 
+          name: "Publié",
+          value: "published"
+        },
+        { 
+          name: "Archivé",
+          value: "archived"
+        },
+        { 
+          name: "En attente de publication",
+          value: "pending" 
+        },
       ],
       form: {
         title: {
@@ -317,7 +328,7 @@ export default {
   },
 
   computed: {
-    ...mapState(["project"]),
+    // ...mapState(["project"]),
     ...mapState("map", ["basemaps"]),
     ...mapState("feature", [
       "attachmentFormset",
@@ -372,6 +383,20 @@ export default {
   },
 
   methods: {
+    makeStatusChoicesFilter(){
+      let newStatusChoices = this.statusChoices
+      if (this.project){
+        if (!this.project.moderation){
+          newStatusChoices = []
+          this.statusChoices.forEach(function(status) {
+            if (status.value !== 'pending') {
+              newStatusChoices.push(status)
+            }
+          });
+        }
+      }
+      this.statusChoicesFilter =  newStatusChoices
+    },
     initForm() {
       if (this.currentRouteName === "editer-signalement") {
         for (let key in this.feature) {
@@ -858,6 +883,8 @@ export default {
 
   created() {
     if (!this.project) {
+      this.project = this.$store.state.projects.find((project) => project.slug === this.$store.state.project_slug);
+      this.makeStatusChoicesFilter();
       this.$store.dispatch("GET_PROJECT_INFO", this.$route.params.slug);
     }
     this.$store.commit(
-- 
GitLab