creating clones of map_item for duplicates superposition concernement couples

This commit is contained in:
2023-09-11 11:57:38 +02:00
parent 8e9941c1d1
commit c4dd253b98
4 changed files with 100 additions and 12 deletions

View File

@@ -22,6 +22,7 @@ export const ConcernementsStore = defineStore({
allEntitesById: {},
allBesoinsById: {},
allSuperpositions: [],
allSuperpositions_byid: {},
allProximites: [],
opened_concernement: false,
opened_entite_id: null,
@@ -92,13 +93,16 @@ export const ConcernementsStore = defineStore({
// SUPERPOSITIONS
if (entite.entite.superposition.length) {
concernement.has_superpositions = true;
// concernement.superpositions = [];
concernement.superposition_constraints_id = [];
concernement.superposed_concernements_id = [];
concernement.superposed_concernements_id = [];
entite.entite.superposition.forEach(entite_superpose => {
// console.log(`superposition eid:${entite.entite.id}, teid:${entite_superpose.id}`);
let already_recorded = false;
// loop through all already recorded superposition to complete the array instead of create duplicates
// TODO check if target cid and eid are accessible before recording the superposition
// check if half of the superpositions is already recorded, if yes complete it (add the missing concernement id)
for(let superposition of this.allSuperpositions) {
for(let superposition_item of superposition) {
if (superposition_item.eid === entite.entite.id && !superposition_item.cid) {
@@ -112,10 +116,10 @@ export const ConcernementsStore = defineStore({
break;
}
}
// if not already recorded, add it to the array
// if not already recorded, add it to the array. It is incomplete has it's missing one concernement id wich will be filled in next loops
if (!already_recorded) {
console.log(`NOT already_recorded, eid:${entite.entite.id}, teid:${entite_superpose.id}`, entite.entite.title);
this.allSuperpositions.push([
let s = [
{
cid: concernement.id,
eid: entite.entite.id
@@ -124,7 +128,10 @@ export const ConcernementsStore = defineStore({
cid: null,
eid: entite_superpose.id
}
])
];
// concernement.superpositions.push(s);
this.allSuperpositions.push(s);
}
})
}
@@ -161,7 +168,19 @@ export const ConcernementsStore = defineStore({
this.concernementsByID[concernement.id] = concernement;
});
console.log('this.allSuperpositions', this.allSuperpositions);
// Handle multiple superpositions accross two concernements
for(let superposition of this.allSuperpositions){
let superposition_id = `${superposition[0].cid}-${superposition[1].cid}`
if (!this.allSuperpositions_byid[superposition_id]) {
this.allSuperpositions_byid[superposition_id] = [];
}
this.allSuperpositions_byid[superposition_id].push(superposition);
}
console.log('this.allSuperpositions_byid', this.allSuperpositions_byid);
this.concernements_loaded = true;
})
.catch(error => {