diff --git a/src/components/project/ProjectMappingContextLayer.vue b/src/components/project/ProjectMappingContextLayer.vue
index 13a1fb07419a6e4bcb2e69474a91a622a71b3ca6..36b587db9d701c69445a3e918c5aa293fa348521 100644
--- a/src/components/project/ProjectMappingContextLayer.vue
+++ b/src/components/project/ProjectMappingContextLayer.vue
@@ -32,11 +32,7 @@
             @click="updateLayer({ ...layer, queryable: !layer.queryable })"
             class="ui checkbox"
           >
-            <input
-              type="checkbox"
-              :checked="layer.queryable"
-              name="queryable"
-            />
+            <input type="checkbox" v-model="layer.queryable" name="queryable" />
             <label for="queryable"> Requêtable</label>
           </div>
           <!-- {{ form.queryable.errors }} -->
@@ -65,25 +61,41 @@ export default {
   components: {
     Dropdown,
   },
+/* 
+  data() {
+    return {
+      matchingLayer: null,
+    };
+  },
+
+  watch: {
+    layer(newVal) {
+      console.log()
+      this.matchingLayer = this.layers.find((el) => el.title === newVal.title);
+    },
+  }, */
 
   computed: {
     ...mapState("map", ["layers", "availableLayers"]),
 
     selectedLayer: {
       get() {
+        const matchingLayer = this.retrieveLayer(this.layer.title);
         return {
-          name: this.layer
-            ? this.layers.find((el) => el.title === this.layer.title).service
-            : "",
+          name: matchingLayer ? matchingLayer.service : "",
           value: this.layer ? this.layer.title : "",
+          // id: matchingLayer ? matchingLayer.id : null, //? what could be the default value ?
         };
       },
 
       set(newValue) {
+        // console.log(newValue)
+        const matchingLayer = this.retrieveLayer(this.layer.title);
         this.updateLayer({
           ...this.layer,
           service: newValue.name,
           title: newValue.value,
+          id: matchingLayer.id,
         });
       },
     },
@@ -111,13 +123,19 @@ export default {
   },
 
   methods: {
+    retrieveLayer(title) {
+     return this.layers.find((el) => el.title === title);
+    },
+
     removeLayer() {
       this.$store.commit("map/DELETE_BASEMAP_LAYER", {
         basemapId: this.basemapid,
         layerId: this.layer.dataKey,
       });
     },
+
     updateLayer(layer) {
+      console.log(layer);
       this.$store.commit("map/UPDATE_BASEMAP_LAYER", {
         basemapId: this.basemapid,
         layerId: this.layer.dataKey,
@@ -125,5 +143,15 @@ export default {
       });
     },
   },
+
+  mounted() {
+    const matchingLayer = this.retrieveLayer(this.layer.title);
+    this.updateLayer({
+      ...this.layer,
+      service: matchingLayer.service,
+      title: matchingLayer.title,
+      id: matchingLayer.id,
+    });
+  },
 };
 </script>
\ No newline at end of file
diff --git a/src/components/project/project_mapping_basemap.vue b/src/components/project/project_mapping_basemap.vue
index 0d9dcd3d3f4973b06b762b5abd48bbcb275c744a..c8302f42fba67c0d3eafd03fe410c8904dedddc0 100644
--- a/src/components/project/project_mapping_basemap.vue
+++ b/src/components/project/project_mapping_basemap.vue
@@ -2,7 +2,14 @@
   <div class="ui segment">
     <div class="field required">
       <label for="basemap-title">Titre</label>
-      <input v-model="title" type="text" name="basemap-title" required />
+      <!-- v-model="title"  -->
+      <input
+        :value="basemap.title"
+        @blur="updateTitle"
+        type="text"
+        name="basemap-title"
+        required
+      />
       <!-- {{ basemapForm.title.errors }} -->
     </div>
 
@@ -68,18 +75,6 @@ export default {
         }
       }, 0);
     },
-
-    title: {
-      get() {
-        return this.basemap.title || `Fond ${this.basemap.id}`;
-      },
-      set(newValue) {
-        this.$store.commit("map/UPDATE_BASEMAP", {
-          id: this.basemap.id,
-          title: newValue,
-        });
-      },
-    },
   },
 
   methods: {
@@ -98,6 +93,15 @@ export default {
       this.$store.commit("map/UPDATE_BASEMAP", {
         layers: [...this.basemap.layers, newLayer],
         id: this.basemap.id,
+        title: this.basemap.title,
+      });
+    },
+
+    updateTitle(evt) {
+      console.log(evt);
+      this.$store.commit("map/UPDATE_BASEMAP", {
+        id: this.basemap.id,
+        title: evt.target.value,
       });
     },
 
@@ -105,6 +109,15 @@ export default {
       this.layers = this.layers.filter((layer) => layer.dataKey !== dataKey);
     },
   },
+
+  // mounted() { //* not present in original
+  //   if (!this.basemap.title) {
+  //     this.$store.commit("map/UPDATE_BASEMAP", {
+  //       id: this.basemap.id,
+  //       title: newValue,
+  //     });
+  //   }
+  // },
 };
 </script>
 
diff --git a/src/store/modules/map.js b/src/store/modules/map.js
index 043bf48136ad202dcfa5f4cf5af6d961c9f2028d..0a27231774adde3aa2217c8d91e47d2439804c7e 100644
--- a/src/store/modules/map.js
+++ b/src/store/modules/map.js
@@ -33,6 +33,7 @@ const map = {
       state.basemaps = basemaps;
     },
     UPDATE_BASEMAP(state, { title, id, layers }) {
+      console.log(title, id, layers)
       const index = state.basemaps.findIndex((el) => el.id === id);
       if (index !== -1) {
         if (title) {
@@ -41,6 +42,7 @@ const map = {
         if (layers) {
           state.basemaps[index].layers = layers
         }
+        console.log(state.basemaps[index])
       }
     },
     DELETE_BASEMAP(state, basemapId) {
@@ -142,11 +144,12 @@ const map = {
     },
 
 
-    SAVE_BASEMAPS({ state, dispatch }) {
+    SAVE_BASEMAPS({ state, rootState, dispatch }) {
       console.log("SAVE_BASEMAPS", state.basemaps);
       for (let basemap of state.basemaps) {
+        basemap["project"] = rootState.project_slug
         console.log("BASEMAP", basemap);
-        // TODO: À transformer en PUT dès que dispo
+        // TODO: différencier PUT & POST
         axios
           .post(`${DJANGO_API_BASE}base-maps/`, basemap)
           .then((response) => (console.log(response.data)))
diff --git a/src/views/project/Project_edit.vue b/src/views/project/Project_edit.vue
index e56e70093590451ef2eef31e9b13c92710cf09e4..e1f13fa5c3e24ca81eb1d905ce635313da7627a6 100644
--- a/src/views/project/Project_edit.vue
+++ b/src/views/project/Project_edit.vue
@@ -23,7 +23,7 @@
             id="title"
             v-model="form.title"
           />
-          <!-- {{ form.title.errors }} // ? des erreurs possibles ? -->
+          <!-- {{ form.title.errors }} -->
         </div>
         <div class="field">
           <label>Illustration du projet</label>
@@ -36,8 +36,7 @@
                 : DJANGO_BASE_URL + form.thumbnail
             "
           />
-          <label class="ui icon button" for="thumbnail"
-            ><!-- // todo : send image to the backend and display it after -->
+          <label class="ui icon button" for="thumbnail">
             <i class="file icon"></i>
             <span class="label">{{
               form.thumbnail_name ? form.thumbnail_name : fileToImport.name
@@ -124,7 +123,7 @@
         <div class="ui checkbox">
           <input
             type="checkbox"
-            :checked="form.moderation"
+            v-model="form.moderation"
             name="moderation"
             id="moderation"
           />
@@ -137,7 +136,7 @@
         <div class="ui checkbox">
           <input
             type="checkbox"
-            :checked="form.is_project_type"
+            v-model="form.is_project_type"
             name="is_project_type"
             id="is_project_type"
           />
@@ -201,7 +200,7 @@ export default {
         nb_contributors: 0,
         is_project_type: false,
       },
-      thumbnailFileSrc: require('@/assets/img/default.png'),
+      thumbnailFileSrc: "",
     };
   },
 
@@ -303,7 +302,14 @@ export default {
 
       if (this.action === "create" || this.action === "duplicate") {
         await axios
+<<<<<<< Updated upstream
           .post(`${this.$store.state.configuration.VUE_APP_DJANGO_API_BASE}projects/`, projectData)
+=======
+          .post(
+            `${configuration.VUE_APP_DJANGO_API_BASE}projects/`,
+            projectData
+          )
+>>>>>>> Stashed changes
           .then((response) => {
             if (response && response.status === 201 && response.data) {
               //* send thumbnail after feature_type was created
@@ -340,7 +346,9 @@ export default {
 
   created() {
     this.definePageType();
-    if (this.action !== "create") {
+    if (this.action === "create") {
+      this.thumbnailFileSrc = require("@/assets/img/default.png");
+    } else if (this.action === "edit") {
       if (!this.project) {
         this.$store.dispatch("GET_PROJECT_INFO", this.$route.params.slug);
       }
diff --git a/src/views/project/Project_mapping.vue b/src/views/project/Project_mapping.vue
index 6331c2f960ca76f8b0f54c9748a5795a570d05b6..56d1be7177c42125d9af5a8dc7d45d7b6d168257 100644
--- a/src/views/project/Project_mapping.vue
+++ b/src/views/project/Project_mapping.vue
@@ -24,7 +24,7 @@
       <div class="ui">
         <ProjectMappingBasemap
           v-for="basemap in basemaps"
-          :key="basemap.dataKey"
+          :key="basemap.id"
           :basemap="basemap"
         />
       </div>
@@ -62,6 +62,8 @@ export default {
     },
 
     saveChanges() {
+
+      // ToDo : check if values are filled
       this.$store.dispatch("map/SAVE_BASEMAPS");
     },
   },