From 6211713fb00533f70aecb043fa5eaece5dcd0a91 Mon Sep 17 00:00:00 2001
From: florent <flavelle@neogeo.fr>
Date: Thu, 28 Apr 2022 17:42:18 +0200
Subject: [PATCH] fetch features if import finished

---
 src/components/ImportTask.vue               |  1 +
 src/store/modules/feature-type.store.js     | 23 ++++++++++++++++++++-
 src/store/modules/feature.store.js          |  4 +++-
 src/views/FeatureType/FeatureTypeDetail.vue |  1 -
 src/views/FeatureType/FeatureTypeEdit.vue   |  1 -
 5 files changed, 26 insertions(+), 4 deletions(-)

diff --git a/src/components/ImportTask.vue b/src/components/ImportTask.vue
index 755a1658..026b7cbf 100644
--- a/src/components/ImportTask.vue
+++ b/src/components/ImportTask.vue
@@ -131,6 +131,7 @@ export default {
     fetchImports() {
       this.$store.dispatch(
         'feature-type/GET_IMPORTS', {
+          project_slug:  this.$route.params.slug,
           feature_type: this.$route.params.feature_type_slug
         });
       this.$store.dispatch('feature/GET_PROJECT_FEATURES', {
diff --git a/src/store/modules/feature-type.store.js b/src/store/modules/feature-type.store.js
index 5eb1b790..49921f01 100644
--- a/src/store/modules/feature-type.store.js
+++ b/src/store/modules/feature-type.store.js
@@ -248,7 +248,7 @@ const feature_type = {
         });
     },
 
-    GET_IMPORTS({ commit }, { project_slug, feature_type }) {
+    GET_IMPORTS({ state, commit, dispatch }, { project_slug, feature_type }) {
       let url = `${this.state.configuration.VUE_APP_DJANGO_API_BASE}import-tasks/`;
       if (project_slug) {
         url = url.concat('', `${url.includes('?') ? '&' : '?'}project_slug=${project_slug}`);
@@ -260,6 +260,27 @@ const feature_type = {
         .get(url)
         .then((response) => {
           if (response) {
+            const diffStatus = [];
+            if (state.importFeatureTypeData) {
+              for (const data of response.data) {
+                const index =
+                  state.importFeatureTypeData
+                    .findIndex(el => el.geojson_file_name === data.geojson_file_name);
+                if (index !== -1 && state.importFeatureTypeData[index].status !== data.status && data.status === 'finished') {
+                  diffStatus.push(data);
+                }
+              }
+            }
+            if (diffStatus.length > 0) {
+              dispatch(
+                'feature/GET_PROJECT_FEATURES',
+                {
+                  project_slug: project_slug,
+                  feature_type__slug: feature_type,
+                },
+                { root: true }
+              );
+            }
             commit('SET_IMPORT_FEATURE_TYPES_DATA', response.data);
           }
           return response;
diff --git a/src/store/modules/feature.store.js b/src/store/modules/feature.store.js
index b652e834..7e78b47a 100644
--- a/src/store/modules/feature.store.js
+++ b/src/store/modules/feature.store.js
@@ -163,7 +163,9 @@ const feature = {
         }
         return response;
       } catch (error) {
-        console.error(error);
+        if (error.message) {
+          console.error(error);
+        }
         return error;
       }
     },
diff --git a/src/views/FeatureType/FeatureTypeDetail.vue b/src/views/FeatureType/FeatureTypeDetail.vue
index 5f5db777..3f81020e 100644
--- a/src/views/FeatureType/FeatureTypeDetail.vue
+++ b/src/views/FeatureType/FeatureTypeDetail.vue
@@ -702,7 +702,6 @@ export default {
         } else {
           jsonValidity = true;
         }
-        console.log(jsonValidity);
 
         if (jsonValidity) {
           this.geojsonFileToImport = files[0]; // todo : remove this value from state as it stored (first attempt didn't work)
diff --git a/src/views/FeatureType/FeatureTypeEdit.vue b/src/views/FeatureType/FeatureTypeEdit.vue
index 09f6b34e..303f3d2f 100644
--- a/src/views/FeatureType/FeatureTypeEdit.vue
+++ b/src/views/FeatureType/FeatureTypeEdit.vue
@@ -645,7 +645,6 @@ export default {
     },
 
     transformProperties(prop) {
-      console.log(prop);
       const type = typeof prop;
       const date = new Date(prop);
       if (type === 'boolean') {
-- 
GitLab