Skip to content
This repository has been archived by the owner on Apr 7, 2022. It is now read-only.

Commit

Permalink
fix: renomme les id d'étapes dans les propriétés du titre (#647)
Browse files Browse the repository at this point in the history
  • Loading branch information
francoisromain committed Feb 10, 2021
1 parent 75691e3 commit dcdef31
Show file tree
Hide file tree
Showing 5 changed files with 53 additions and 58 deletions.
1 change: 1 addition & 0 deletions knex/migrations/20180522000005_titres_etapes_points.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ exports.up = knex => {
.string('titrePointId')
.index()
.references('titresPoints.id')
.onUpdate('CASCADE')
.onDelete('CASCADE')
table.string('geoSystemeId', 5).notNullable()
table.specificType('coordonnees', 'POINT').notNullable()
Expand Down
3 changes: 1 addition & 2 deletions src/business/processes/titres-ids-update.ts
Original file line number Diff line number Diff line change
Expand Up @@ -130,8 +130,7 @@ const titresIdsUpdate = async (titresIds?: string[]) => {
substances: { id: {} },
communes: { id: {} },
forets: { id: {} },
justificatifs: { id: {} },
incertitudes: { id: {} }
justificatifs: { id: {} }
},
phase: { id: {} }
},
Expand Down
16 changes: 8 additions & 8 deletions src/business/utils/ids-update.js
Original file line number Diff line number Diff line change
Expand Up @@ -51,38 +51,38 @@ const idsUpdate = (
}

// met à jour les propriétés de propsTitreEtapesIds
if (relation.props && parent && relation.depth === '1') {
if (relation.props && parent && relation.depth === 1) {
relation.props.forEach(prop => {
if (!element[prop]) return

Object.keys(element[prop]).forEach(elementId => {
const elementPropOld = element[prop][elementId]
Object.keys(element[prop]).forEach(propId => {
const elementPropOld = element[prop][propId]

if (!elementPropOld || !elementPropOld.match(parentOldId)) return

const elementPropNew = elementPropOld.replace(parentOldId, parent.id)

element[prop][elementId] = elementPropNew
element[prop][propId] = elementPropNew
})
})
}

// met à jour les contenus s'ils font référence à des ids
if (relation.props && parent && relation.depth === '2') {
if (relation.props && parent && relation.depth === 2) {
relation.props.forEach(prop => {
if (!element[prop]) return

Object.keys(element[prop]).forEach(sectionId => {
if (!element[prop][sectionId]) return

Object.keys(element[prop][sectionId]).forEach(elementId => {
const elementPropOld = element[prop][sectionId][elementId]
Object.keys(element[prop][sectionId]).forEach(propId => {
const elementPropOld = element[prop][sectionId][propId]

if (!elementPropOld || !elementPropOld.match(parentOldId)) return

const elementPropNew = elementPropOld.replace(parentOldId, parent.id)

element[prop][sectionId][elementId] = elementPropNew
element[prop][sectionId][propId] = elementPropNew
})
})
})
Expand Down
16 changes: 1 addition & 15 deletions src/business/utils/titre-id-and-relations-update.ts
Original file line number Diff line number Diff line change
Expand Up @@ -102,14 +102,6 @@ const titreRelation = {
props: ['id', 'titrePointId']
}
]
},
{
name: 'documents',
props: ['id', 'titreEtapeId']
},
{
name: 'incertitudes',
props: ['id', 'titreEtapeId']
}
]
},
Expand All @@ -135,13 +127,7 @@ const titreRelation = {
{
name: 'etapes',
props: ['titreTravauxId'],
idFind: titreEtapeIdFind,
relations: [
{
name: 'documents',
props: ['id', 'titreTravauxEtapeId']
}
]
idFind: titreEtapeIdFind
}
]
}
Expand Down
75 changes: 42 additions & 33 deletions src/database/queries/_options.ts
Original file line number Diff line number Diff line change
@@ -1,48 +1,47 @@
const documentsRelateTrue = ['type']
const documentsRelateFalse = [...documentsRelateTrue]

const documents = {
graph: `[type, etapesAssociees]`,
update: {
insertMissing: true,
relate: ['type'],
unrelate: ['type']
relate: documentsRelateTrue,
unrelate: documentsRelateFalse
}
}

const entreprisesEtablissements = {
update: {
insertMissing: true
}
update: { insertMissing: true }
}

const entreprisesRelateTrue = [] as string[]
const entreprisesRelateFalse = [
...entreprisesRelateTrue,
...documentsRelateFalse.map(k => `documents.${k}`)
]

const entreprises = {
graph: `[utilisateurs.permission, etablissements(orderDesc), documents.${documents.graph}]`,
update: {
insertMissing: true,
relate: [...documents.update.relate.map(k => `documents.${k}`)],
unrelate: [...documents.update.unrelate.map(k => `documents.${k}`)]
relate: entreprisesRelateTrue,
unrelate: entreprisesRelateTrue
}
}

const utilisateursRelateTrue = ['permission', 'administrations', 'entreprises']

const utilisateursRelateFalse = [
...utilisateursRelateTrue,
...entreprisesRelateFalse.map(k => `entreprises.${k}`)
]

const utilisateurs = {
graph: `[permission, administrations.[titresTypes, activitesTypes], entreprises.etablissements]`,
update: {
relate: [
'permission',
'administrations',
'entreprises',
...entreprises.update.relate.map(k => `entreprises.${k}`)
],
unrelate: [
'permission',
'administrations',
'entreprises',
...entreprises.update.unrelate.map(k => `entreprises.${k}`)
],
noDelete: [
'permission',
'administrations',
'entreprises',
...entreprises.update.relate
]
relate: utilisateursRelateTrue,
unrelate: utilisateursRelateTrue,
noDelete: utilisateursRelateFalse
}
}

Expand Down Expand Up @@ -86,12 +85,18 @@ const titresTypes = {
graph: `[demarchesTypes(orderAsc).${demarchesTypes.graph}, type, autorisationsTitresStatuts]`
}

const administrationsRelateTrue = [
'administrationsTypes',
'departement',
'region'
]

const administrations = {
graph: `[utilisateurs.permission, titresTypes.${titresTypes.graph}, titresTypesTitresStatuts, titresTypesEtapesTypes, type, departement, region]`,
update: {
insertMissing: true,
relate: ['administrationsTypes', 'departement', 'region'],
unrelate: ['administrationsTypes', 'departement', 'region']
relate: administrationsRelateTrue,
unrelate: administrationsRelateTrue
}
}

Expand Down Expand Up @@ -124,8 +129,8 @@ const titresEtapesRelateFalse = [
'substances.legales',
'points.references.geoSysteme',
'points.references.geoSysteme.unite',
...documents.update.relate.map(k => `documents.${k}`),
...documents.update.relate.map(k => `justificatifs.${k}`)
...documentsRelateFalse.map(k => `documents.${k}`),
...documentsRelateFalse.map(k => `justificatifs.${k}`)
]

const titresEtapes = {
Expand Down Expand Up @@ -153,10 +158,11 @@ const titresEtapes = {
}
}

const titresTravauxEtapesRelateTrue = [
'type',
'statut',
...documents.update.relate.map(k => `documents.${k}`)
const titresTravauxEtapesRelateTrue = ['type', 'statut']

const titreTravauxEtapesRelateFalse = [
...titresTravauxEtapesRelateTrue,
...documentsRelateFalse.map(k => `documents.${k}`)
]

const titresTravauxEtapes = {
Expand All @@ -169,6 +175,9 @@ const titresTravauxEtapes = {
update: {
relate: titresTravauxEtapesRelateTrue,
unrelate: titresTravauxEtapesRelateTrue,
noInsert: titreTravauxEtapesRelateFalse,
noUpdate: titreTravauxEtapesRelateFalse,
noDelete: titreTravauxEtapesRelateFalse,
insertMissing: true
}
}
Expand Down

0 comments on commit dcdef31

Please sign in to comment.