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

Commit

Permalink
feat(démarche): ajoute une description optionnelle sur les démarches (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
vmaubert authored Jan 31, 2022
1 parent 020f5b5 commit cf7d9a6
Show file tree
Hide file tree
Showing 8 changed files with 27 additions and 23 deletions.
5 changes: 5 additions & 0 deletions src/api/graphql/schemas/titres-demarches.graphql
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ type Demarche {
"""
id: ID!

"Description optionnelle de la démarche"
description: String

"""
Slug composé de la concaténation:
- de l'id du titre
Expand Down Expand Up @@ -69,10 +72,12 @@ type Phase {
input InputDemarcheCreation {
typeId: ID!
titreId: ID!
description: String
}

input InputDemarcheModification {
id: ID!
typeId: ID!
titreId: ID!
description: String
}
1 change: 1 addition & 0 deletions src/api/rest/format/titres-demarches.ts
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ const titresDemarchesFormatTable = (titresDemarches: ITitreDemarche[]) =>
titre_statut: titre.statut!.nom,
type: titreDemarche.type!.nom,
statut: titreDemarche.statut!.nom,
description: titreDemarche.description,
titre_references: titre.references
?.map(r => `${r.type?.nom} : ${r.nom}`)
.join(';'),
Expand Down
3 changes: 2 additions & 1 deletion src/database/models/titres-demarches.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ class TitresDemarches extends Model {
titreId: { type: 'string', maxLength: 128 },
typeId: { type: 'string', maxLength: 8 },
statutId: { type: 'string', maxLength: 3 },
ordre: { type: 'integer' }
ordre: { type: 'integer' },
description: { type: ['string', 'null'] }
}
}

Expand Down
16 changes: 2 additions & 14 deletions src/database/queries/permissions/titres-demarches.ts
Original file line number Diff line number Diff line change
Expand Up @@ -112,34 +112,22 @@ const titreDemarcheModificationQuery = (
): void => {
let modificationQuery = raw('false')
if (permissionCheck(user?.permissionId, ['super'])) {
modificationQuery = raw('not exists(?)', [
titreDemarcheEtapesQuery(demarcheAlias)
])
modificationQuery = raw('true')
} else if (
permissionCheck(user?.permissionId, ['admin', 'editeur']) &&
user?.administrations?.length
) {
modificationQuery = titresDemarchesAdministrationsModificationQuery(
user.administrations,
'type'
)
.whereRaw('?? = ??', ['titresModification.id', 'titresDemarches.titreId'])
.whereNotExists(titreDemarcheEtapesQuery(demarcheAlias))
).whereRaw('?? = ??', ['titresModification.id', 'titresDemarches.titreId'])

q.groupBy(`${demarcheAlias}.id`, 'type.travaux')
}

q.select(modificationQuery.as('modification'))
}

const titreDemarcheEtapesQuery = (demarcheAlias: string) =>
TitresEtapes.query()
.alias('titresDemarchesEtapes')
.whereRaw('?? = ??', [
'titresDemarchesEtapes.titreDemarcheId',
`${demarcheAlias}.id`
])

const titreEtapesCreationQuery = (
demarcheAlias: string,
user: IUtilisateur | null | undefined
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
exports.up = knex =>
knex.schema.alterTable('titres_demarches', function (table) {
table.string('description').nullable()
})

exports.down = () => ({})
1 change: 1 addition & 0 deletions src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -773,6 +773,7 @@ interface ITitreEtapeJustificatif {

interface ITitreDemarche {
id: string
description?: string
slug?: string
titreId: string
titre?: ITitre | null
Expand Down
14 changes: 7 additions & 7 deletions tests/administrations-permissions-demarches.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -138,8 +138,8 @@ describe('Création des démarches', () => {
describe('Modification des démarches', () => {
test.each`
administrationId | modifier
${'ope-onf-973-01'} | ${false}
${'min-mtes-dgaln-01'} | ${false}
${'ope-onf-973-01'} | ${true}
${'min-mtes-dgaln-01'} | ${true}
${'min-dajb-01'} | ${false}
`(
"un utilisateur admin de l’administration $administrationId peut modifier des démarches d'un titre ARM : $modifier",
Expand All @@ -150,8 +150,8 @@ describe('Modification des démarches', () => {
test.each`
administrationId | modifier
${'ope-onf-973-01'} | ${false}
${'dea-guyane-01'} | ${false}
${'min-mtes-dgaln-01'} | ${false}
${'dea-guyane-01'} | ${true}
${'min-mtes-dgaln-01'} | ${true}
${'min-dajb-01'} | ${false}
`(
"un utilisateur admin de l’administration $administrationId peut modifier des démarches d'un titre AXM : $modifier",
Expand All @@ -162,7 +162,7 @@ describe('Modification des démarches', () => {
test.each`
administrationId | modifier
${'min-mtes-dgec-01'} | ${false}
${'min-mtes-dgaln-01'} | ${false}
${'min-mtes-dgaln-01'} | ${true}
${'min-dajb-01'} | ${false}
`(
"un utilisateur admin de l’administration $administrationId peut modifier des démarches d'un titre CXM : $modifier",
Expand All @@ -173,7 +173,7 @@ describe('Modification des démarches', () => {
test.each`
administrationId | modifier
${'min-mtes-dgec-01'} | ${false}
${'min-mtes-dgaln-01'} | ${false}
${'min-mtes-dgaln-01'} | ${true}
${'min-dajb-01'} | ${false}
`(
"un utilisateur admin de l’administration $administrationId peut modifier des démarches d'un titre PRM : $modifier",
Expand All @@ -184,7 +184,7 @@ describe('Modification des démarches', () => {
test.each`
administrationId | modifier
${'min-mtes-dgec-01'} | ${false}
${'min-mtes-dgaln-01'} | ${false}
${'min-mtes-dgaln-01'} | ${true}
${'min-dajb-01'} | ${false}
`(
"un utilisateur admin de l’administration $administrationId peut modifier des démarches d'un titre PXM : $modifier",
Expand Down
4 changes: 3 additions & 1 deletion tests/titres-demarches.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,9 @@ describe('demarcheModifier', () => {
)

expect(res.body.errors).toHaveLength(1)
expect(res.body.errors[0].message).toBe('droits insuffisants')
expect(res.body.errors[0].message).toBe(
'impossible de modifier le type d’une démarche si celle-ci a déjà une ou plusieurs étapes'
)
})
})

Expand Down

0 comments on commit cf7d9a6

Please sign in to comment.