diff --git a/src/store/index.js b/src/store/index.js
index 1e65b11f22a19f7ae60fe22e40f035c444a7ee3c..19b8c10447a9b4a9660714a100209321d524018e 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -164,7 +164,7 @@ export default new Vuex.Store({
     GET_PROJECT_INFO({ commit, dispatch }, slug) {
       commit("SET_PROJECT_SLUG", slug);
       dispatch("GET_PROJECT_LAST_MESSAGES", slug);
-      dispatch("GET_PROJECT_FEATURES", slug);
+      dispatch("feature/GET_PROJECT_FEATURES", slug);
       dispatch("GET_PROJECT_FEATURE_TYPES", slug);
     },
 
@@ -177,14 +177,14 @@ export default new Vuex.Store({
         });
     },
 
-    GET_PROJECT_FEATURES({ commit }, project_slug) {
+    /* GET_PROJECT_FEATURES({ commit }, project_slug) {
       axios
         .get(`${DJANGO_API_BASE}projet/${project_slug}/feature`)
         .then((response) => commit("feature/SET_FEATURES", response.data.features))
         .catch((error) => {
           throw error;
         });
-    },
+    }, */
 
     GET_PROJECT_FEATURE_TYPES({ commit }, project_slug) {
       axios
diff --git a/src/store/modules/feature.js b/src/store/modules/feature.js
index dddb64443846abbc9618ef59240b8cc10ec942c5..3b4f8ebb4cffb31c3ed003e75f92e3a2267ffd41 100644
--- a/src/store/modules/feature.js
+++ b/src/store/modules/feature.js
@@ -1,3 +1,6 @@
+const axios = require("axios");
+const DJANGO_API_BASE = process.env.VUE_APP_DJANGO_API_BASE;
+
 const feature = {
   namespaced: true,
   state: {
@@ -82,6 +85,23 @@ const feature = {
 
   },
   actions: {
+    GET_PROJECT_FEATURES({ commit, dispatch }, project_slug) {
+      axios
+        .get(`${DJANGO_API_BASE}projet/${project_slug}/feature`)
+        .then((response) => {
+          const features = response.data.features;
+          commit("SET_FEATURES", features);
+          dispatch("map/ADD_FEATURES", features, { root: true });
+        })
+        .catch((error) => {
+          throw error;
+        });
+    },
+    /* UPDATE_FEATURES({dispatch, commit}, features) {
+      commit("SET_FEATURES", features);
+      dispatch ("map/ADD_FEATURES");
+    }, */
+
     POST_FEATURE({ state }) {
       const data = {
         form: state.form,
@@ -133,7 +153,7 @@ const feature = {
           commit("SET_USER", false)
         }); */
     },
-    EXPORT_FEATURES({state}) {
+    EXPORT_FEATURES({ state }) {
       console.log("Export features", state.features)
     }
   },
diff --git a/src/store/modules/feature_type.js b/src/store/modules/feature_type.js
index 59a0e16e9b0f7de6a72a6a499a3536b91aff974a..fc4bcc2e34d3adbac0515b28c18ca9c76f6b042a 100644
--- a/src/store/modules/feature_type.js
+++ b/src/store/modules/feature_type.js
@@ -102,17 +102,19 @@ const feature_type = {
         let url =
           process.env.VUE_APP_DJANGO_API_BASE +
           'import-tasks/'
-        axios
+        return axios
           .post(url, formData, {
             headers: {
               "Content-Type": "multipart/form-data",
             },
           })
           .then((response) => {
+            console.log(response)
             if (response.status === 200) {
               dispatch("GET_IMPORTS", feature_type_slug);
               // TODO : RELOAD DERNIER SIGNALEMENTS
             }
+            return response
           })
           .catch((err) => {
             // TODO : HANDLER ERROR
diff --git a/src/store/modules/map.js b/src/store/modules/map.js
index 751cb4203ffd9104f9488ad6db6dab51ba3e1609..1ae26cff6ef5ba426997d52332c2eacb9b3d81eb 100644
--- a/src/store/modules/map.js
+++ b/src/store/modules/map.js
@@ -116,7 +116,7 @@ const map = {
   },
 
   actions: {
-    INITIATE_MAP({ state, rootGetters }) {
+    INITIATE_MAP({ state, rootGetters, dispatch }) {
       const project = rootGetters.project
       let mapDefaultViewCenter = [37.7749, -122.4194]; // defaultMapView.center;
       let mapDefaultViewZoom = 13; // defaultMapView.zoom;
@@ -130,7 +130,7 @@ const map = {
       // - if no current active basemap, get the first index
       // - if not, load the default map and service options
 
-      // todo : create endpoints to get : 'baseMaps' ,'project' ,'layers' ,'serviceMap' ,'optionsMap' ,'features'
+      // todo : create endpoints to get : 'baseMaps' ,'layers' ,'serviceMap' ,'optionsMap' 
       let layersToLoad = null;
       if (state.baseMaps && state.baseMaps.length > 0) {
         // Use active one if exists, otherwise index 0 (first basemap in the list)
@@ -154,18 +154,24 @@ const map = {
       }
       mapUtil.addLayers(layersToLoad, state.serviceMap, state.optionsMap);
 
+      // Add the features
+      dispatch("ADD_FEATURES");
+
       // Remove multiple interactions with the map
       mapUtil.getMap().dragging.disable();
       mapUtil.getMap().doubleClickZoom.disable();
       mapUtil.getMap().scrollWheelZoom.disable();
 
-      // Add the features
-      const featureGroup = mapUtil.addFeatures(state.features);
+    },
+
+    ADD_FEATURES({ rootState }, features) {
+      const featuresToAdd = features || rootState.feature.features
+      const featureGroup = mapUtil.addFeatures(featuresToAdd);
       if (featureGroup && featureGroup.getLayers().length > 0) {
         mapUtil.getMap().fitBounds(featureGroup.getBounds());
       }
-
     },
+
     SAVE_BASEMAPS({ state }) {
       const data = JSON.stringify(state.basemaps);
       console.log("SAVE_BASEMAPS", data);
diff --git a/src/views/feature/Feature_list.vue b/src/views/feature/Feature_list.vue
index 8fe46db3c81f2e1a9ee862701a74bf3c86722a19..25dfc8f145cdbaba5de5ef931f27b5e14b8248ca 100644
--- a/src/views/feature/Feature_list.vue
+++ b/src/views/feature/Feature_list.vue
@@ -59,8 +59,8 @@
                       name: 'ajouter-signalement',
                       params: { slug_type_signal: type.title },
                     }"
-                    v-for="type in feature_types"
-                    :key="type.title"
+                    v-for="(type, index) in feature_types"
+                    :key="type.title + index"
                     class="item"
                   >
                     {{ type.title }}
@@ -137,7 +137,10 @@
           </tr>
         </thead>
         <tbody>
-          <tr v-for="feature in filteredFeatures" :key="feature.title">
+          <tr
+            v-for="(feature, index) in filteredFeatures"
+            :key="feature.title + index"
+          >
             <td class="dt-center" :data-order="feature.get_status_display">
               <div v-if="feature.status == 'archived'" data-tooltip="Archivé">
                 <i class="grey archive icon"></i>
diff --git a/src/views/feature_type/Feature_type_detail.vue b/src/views/feature_type/Feature_type_detail.vue
index d95fdec7cbadb3711c0f3860ff18b86d33df8906..a24fff4dd9e4b12cfa04339718d3fda30dd1c6dd 100644
--- a/src/views/feature_type/Feature_type_detail.vue
+++ b/src/views/feature_type/Feature_type_detail.vue
@@ -152,7 +152,9 @@
         </router-link>
         <div class="sub header">
           <div>
-            {{ feature.description.substring(0, 200) }}
+            {{
+              feature.description ? feature.description.substring(0, 200) : "Pas de description disponible"
+            }}
           </div>
           <div>
             Créé le {{ feature.created_on }}
@@ -231,7 +233,10 @@ export default {
       var files = e.target.files || e.dataTransfer.files;
       if (!files.length) return;
       this.filenameToImport = files[0]; // todo : remove this value from state as it stored
-      this.$store.commit("feature_type/SET_FILE_NAME_TO_IMPORT", this.filenameToImport)
+      this.$store.commit(
+        "feature_type/SET_FILE_NAME_TO_IMPORT",
+        this.filenameToImport
+      );
       //console.log(this.filenameToImport)
     },
 
diff --git a/src/views/feature_type/Feature_type_edit.vue b/src/views/feature_type/Feature_type_edit.vue
index 7cae8875c72d7bdc4b115c94abafa13c3f91a498..0f0050f43770aa869ce48f9dc10fe8c913b636a7 100644
--- a/src/views/feature_type/Feature_type_edit.vue
+++ b/src/views/feature_type/Feature_type_edit.vue
@@ -365,11 +365,12 @@ export default {
           feature_type_slug,
         })
         .then((response) => {
-          if (response) {
+          if (response.status === 200) {
             this.goBackToProject();
           } else {
             this.displayMessage(
-              "Une erreur est survenue lors de l'import de signalement."
+              "Une erreur est survenue lors de l'import de signalements.\n " +
+                response.data.detail
             );
           }
         });
@@ -485,6 +486,10 @@ export default {
       }
     } else if (this.geojson) {
       this.importGeoJson();
+      if (this.$store.state.feature_type.filenameToImport.name) {
+        this.form.title.value = // * give the filename as title by default 
+          this.$store.state.feature_type.filenameToImport.name.split(".")[0];
+      }
     }
   },
   beforeDestroy() {
diff --git a/src/views/project/Project_detail.vue b/src/views/project/Project_detail.vue
index 2a516156cff502c437cf10c86bd5c84d599f853f..e50497d7f9528a255affe2cff7174c3a181c343d 100644
--- a/src/views/project/Project_detail.vue
+++ b/src/views/project/Project_detail.vue
@@ -263,7 +263,7 @@
                                 slug_signal: item.feature_id,
                               },
                             }"
-                            >{{ item.title }}</router-link
+                            >{{ item.title || item.feature_id }}</router-link
                           >
                         </div>
                         <div class="description">