diff --git a/src/assets/js/utils.js b/src/assets/js/utils.js
new file mode 100644
index 0000000000000000000000000000000000000000..53bcc6106352aeb538f6af7819f85f7dd3f282ef
--- /dev/null
+++ b/src/assets/js/utils.js
@@ -0,0 +1,13 @@
+export function fileConvertSize(aSize){
+	aSize = Math.abs(parseInt(aSize, 10));
+	const def = [[1, 'octets', 0], [1024, 'ko', 0], [1024*1024, 'Mo', 1], [1024*1024*1024, 'Go', 2], [1024*1024*1024*1024, 'To', 2]];
+	for (let i=0; i<def.length; i++) {
+		if (aSize<def[i][0]) return (aSize/def[i-1][0]).toFixed(def[i-1][2]) + ' ' + def[i-1][1];
+	}
+}
+
+export function fileConvertSizeToMo(aSize){
+	aSize = Math.abs(parseInt(aSize, 10));
+	const def = [1024*1024, 'Mo', 1];
+	return (aSize/def[0]).toFixed(def[2]);
+}
diff --git a/src/components/map-layers/SidebarLayers.vue b/src/components/map-layers/SidebarLayers.vue
index 950f41b95854e32a2bdaae7099eaacbb6d5701c4..2988e4e103eac542a17d83b7cb30233f9a7d1b85 100644
--- a/src/components/map-layers/SidebarLayers.vue
+++ b/src/components/map-layers/SidebarLayers.vue
@@ -156,7 +156,6 @@ export default {
     },
 
     updateOpacity(event, layer) {
-      console.log(event.target.value, layer);
       mapUtil.updateOpacity(layer.id, event.target.value);
       layer.opacity = event.target.value;
     },
@@ -166,7 +165,6 @@ export default {
     },
 
     onQueryLayerChange(layer) {
-      console.log(layer);
       this.selectedQueryLayer = layer.name;
     },
 
@@ -175,8 +173,7 @@ export default {
       return queryableLayer.length > 0;
     },
 
-    onlayerMove(event) {
-      console.log(event);
+    onlayerMove() {
       // Get the names of the current layers in order.
       const currentLayersNamesInOrder = Array.from(
         document.getElementsByClassName("layer-item transition visible")
@@ -200,7 +197,6 @@ export default {
       });
       document.dispatchEvent(eventOrder);
       // Save the basemaps options into the localstorage
-      console.log(this.baseMaps);
       this.setLocalstorageMapOptions(this.baseMaps);
     },
 
@@ -307,7 +303,6 @@ export default {
     addLayers(baseMap) {
       baseMap.layers.forEach((layer) => {
         var layerOptions = this.availableLayers.find((l) => l.id === layer.id);
-        console.log(layerOptions);
         layer = Object.assign(layer, layerOptions);
         layer.options.basemapId = baseMap.id;
       });
diff --git a/src/views/feature/Feature_detail.vue b/src/views/feature/Feature_detail.vue
index 86b2dfc155475b6b866f3b7ffb046a975ca13113..e5a8eb37067bae2351240c004e8af5a904ed48ee 100644
--- a/src/views/feature/Feature_detail.vue
+++ b/src/views/feature/Feature_detail.vue
@@ -718,7 +718,7 @@ export default {
 };
 </script>
 
-<style>
+<style scoped>
 #map {
   width: 100%;
   height: 100%;
diff --git a/src/views/feature/Feature_edit.vue b/src/views/feature/Feature_edit.vue
index 769d558c2ab5d454b3bf1464a5b8832c25b0b960..183929cbf0ff5a4c567a724442353ceb5440fdd1 100644
--- a/src/views/feature/Feature_edit.vue
+++ b/src/views/feature/Feature_edit.vue
@@ -1050,7 +1050,7 @@ export default {
 };
 </script>
 
-<style>
+<style scoped>
 #map {
   height: 70vh;
   width: 100%;
diff --git a/src/views/feature_type/Feature_type_detail.vue b/src/views/feature_type/Feature_type_detail.vue
index 795b704925fb5f4fa0793b52396e4af197200273..7e74e6aa5c6e973acefe9d8666909a179f229c36 100644
--- a/src/views/feature_type/Feature_type_detail.vue
+++ b/src/views/feature_type/Feature_type_detail.vue
@@ -66,7 +66,11 @@
             Importer des signalements
           </div>
           <div :class="['content', { active: showImport }]">
-            <div id="form-import-features" class="ui form">
+            <div
+              id="form-import-features"
+              class="ui form"
+              :class="loadingImportFile ? 'loading' : ''"
+            >
               <div class="field">
                 <label class="ui icon button" for="json_file">
                   <i class="file icon"></i>
@@ -222,6 +226,8 @@ import { mapGetters, mapState } from "vuex";
 import ImportTask from "@/components/ImportTask";
 import featureAPI from "@/services/feature-api";
 
+import { fileConvertSizeToMo } from '@/assets/js/utils';
+
 export default {
   name: "Feature_type_detail",
   components: {
@@ -237,6 +243,7 @@ export default {
       },
       showImport: false,
       featuresLoading: true,
+      loadingImportFile: false
     };
   },
 
@@ -351,18 +358,31 @@ export default {
     },
 
     onFileChange(e) {
+      this.loadingImportFile = true;
       const files = e.target.files || e.dataTransfer.files;
-      if (!files.length) return;
+      if (!files.length) {
+        this.loadingImportFile = false;
+        return;
+      }
 
       let reader = new FileReader();
       reader.addEventListener("load", (e) => {
-        if (this.checkJsonValidity(JSON.parse(e.target.result))) {
+        // bypass json check for files larger then 10 Mo
+        let jsonValidity;
+        if (parseFloat(fileConvertSizeToMo(files[0])) <= 10) {
+          jsonValidity = this.checkJsonValidity(JSON.parse(e.target.result));
+        } else {
+          jsonValidity = true;
+        }
+
+        if (jsonValidity) {
           this.fileToImport = files[0]; // todo : remove this value from state as it stored (first attempt didn't work)
           this.$store.commit(
             "feature_type/SET_FILE_TO_IMPORT",
             this.fileToImport
           );
         }
+        this.loadingImportFile = false;
       });
       reader.readAsText(files[0]);
     },
diff --git a/src/views/project/Project_detail.vue b/src/views/project/Project_detail.vue
index 4896111441784368797d30ca752faa0b2de367f6..f702da8c5137f7bc55f5a43b458f68a22c13e7da 100644
--- a/src/views/project/Project_detail.vue
+++ b/src/views/project/Project_detail.vue
@@ -561,6 +561,34 @@
         </div>
       </div>
     </div>
+    <div
+      :class="isFileSizeModalOpen ? 'active' : ''"
+      class="ui dimmer"
+    >
+      <div
+        :class="isFileSizeModalOpen ? 'active' : ''"
+        class="ui modal tiny"
+        style="top: 20%"
+      >
+        <div class="header">
+          Fichier trop grand!
+        </div>
+        <div class="content">
+          <p>
+            Impossible de créer un type de signalement à partir d'un fichier GeoJSON 
+            de plus de 10Mo (celui importé fait {{ fileSize }} Mo).
+          </p>
+        </div>
+        <div class="actions">
+          <div
+            class="ui button teal"
+            @click="closeFileSizeModal"
+          >
+            Fermer
+          </div>
+        </div>
+      </div>
+    </div>
   </div>
 </template>
 
@@ -573,6 +601,8 @@ import featureAPI from "@/services/feature-api";
 
 import axios from "@/axios-client.js";
 
+import { fileConvertSizeToMo } from '@/assets/js/utils';
+
 export default {
   name: "Project_details",
 
@@ -608,7 +638,8 @@ export default {
       tempMessage: null,
       featureTypeLoading: true,
       featureTypeImporting: false,
-      featuresLoading: true
+      featuresLoading: true,
+      isFileSizeModalOpen: false
     };
   },
 
@@ -634,6 +665,9 @@ export default {
     },
     API_BASE_URL() {
       return this.$store.state.configuration.VUE_APP_DJANGO_API_BASE;
+    },
+    fileSize() {
+      return fileConvertSizeToMo(this.fileToImport.size);
     }
   },
 
@@ -781,13 +815,13 @@ export default {
     onFileChange(e) {
       this.featureTypeImporting = true;
       var files = e.target.files || e.dataTransfer.files;
-      console.log(files);
       if (!files.length) return;
       this.fileToImport = files[0];
       // TODO : VALIDATION IF FILE IS JSON
-      if (this.fileToImport.size > 0) {
+      if (parseFloat(fileConvertSizeToMo(this.fileToImport.size)) > 10) {
+        this.isFileSizeModalOpen = true;
+      } else if (this.fileToImport.size > 0) {
         const fr = new FileReader();
-
         try {
           fr.onload = (e) => {
             this.geojsonImport = JSON.parse(e.target.result);
@@ -808,6 +842,12 @@ export default {
       }
     },
 
+    closeFileSizeModal() {
+      this.fileToImport = { name: "", size: 0 };
+      this.featureTypeImporting = false;
+      this.isFileSizeModalOpen = false;
+    },
+
     subscribeProject() {
       projectAPI
         .subscribeProject({