diff --git a/src/signals/incident/definitions/__tests__/wizard-step-4-summary.test.js b/src/signals/incident/definitions/__tests__/wizard-step-4-summary.test.js index 397d472cc2..efaf05f254 100644 --- a/src/signals/incident/definitions/__tests__/wizard-step-4-summary.test.js +++ b/src/signals/incident/definitions/__tests__/wizard-step-4-summary.test.js @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MPL-2.0 -// Copyright (C) 2020 - 2023 Gemeente Amsterdam +// Copyright (C) 2020 - 2024 Gemeente Amsterdam import configuration from 'shared/services/configuration/configuration' import PreviewComponents from '../../components/IncidentPreview/components' @@ -149,25 +149,6 @@ describe('Wizard summary', () => { optional: true, render: PreviewComponents.DateTime, }, - extra_afval_handhaving: { - label: 'Welk afval is verkeerd neergezet?', - optional: true, - render: Label, - canBeNull: false, - }, - extra_afval_handhaving_owner: { - label: - 'Weet u wie de eigenaar is van het verkeerd geplaatste afval? Bijvoorbeeld omdat u dat ziet aan een adressticker of iets anders?', - optional: true, - render: ObjectLabel, - canBeNull: false, - }, - extra_afval_handhaving_owner_confirmation: { - canBeNull: false, - label: undefined, - optional: true, - render: Null, - }, extra_afval: { label: 'Waar komt het afval vandaan, denkt u?', optional: true, diff --git a/src/signals/incident/definitions/wizard-step-2-vulaan.js b/src/signals/incident/definitions/wizard-step-2-vulaan.js index 8ec63c684e..135d19bd2e 100644 --- a/src/signals/incident/definitions/wizard-step-2-vulaan.js +++ b/src/signals/incident/definitions/wizard-step-2-vulaan.js @@ -1,11 +1,12 @@ // SPDX-License-Identifier: MPL-2.0 -// Copyright (C) 2018 - 2023 Gemeente Amsterdam +// Copyright (C) 2018 - 2024 Gemeente Amsterdam import memoize from 'lodash/memoize' import configuration from 'shared/services/configuration/configuration' import afval from './wizard-step-2-vulaan/afval' import afvalContainer from './wizard-step-2-vulaan/afval-container' +import afvalThor from './wizard-step-2-vulaan/afval-thor' import boomIllegaleKap from './wizard-step-2-vulaan/boom-illegale-kap' import bouwSloopOverlast from './wizard-step-2-vulaan/bouw-sloop-overlast' import civieleConstructies from './wizard-step-2-vulaan/civieleConstructies' @@ -15,9 +16,11 @@ import locatie from './wizard-step-2-vulaan/locatie' import overlastBedrijvenEnHoreca from './wizard-step-2-vulaan/overlast-bedrijven-en-horeca' import overlastInDeOpenbareRuimte from './wizard-step-2-vulaan/overlast-in-de-openbare-ruimte' import overlastOpHetWater from './wizard-step-2-vulaan/overlast-op-het-water' +import overlastOpHetWaterThor from './wizard-step-2-vulaan/overlast-op-het-water-thor' import overlastVanDieren from './wizard-step-2-vulaan/overlast-van-dieren' import overlastPersonenEnGroepen from './wizard-step-2-vulaan/overlast-van-en-door-personen-of-groepen' import straatverlichtingKlokken from './wizard-step-2-vulaan/straatverlichting-klokken' +import verkeersoverlast from './wizard-step-2-vulaan/verkeersoverlast' import wegenVerkeerStraatmeubilair from './wizard-step-2-vulaan/wegen-verkeer-straatmeubilair' import wonen from './wizard-step-2-vulaan/wonen' import FormComponents from '../components/form' @@ -107,6 +110,9 @@ export default { if (subcategory.startsWith('container')) { return expandQuestions(afvalContainer, category, subcategory) } + if (['asbest-accu', 'handhaving-op-afval'].includes(subcategory)) { + return expandQuestions(afvalThor, category, subcategory) + } return expandQuestions(afval, category, subcategory) } @@ -141,6 +147,18 @@ export default { } case 'overlast-op-het-water': + if ( + [ + 'blokkade-van-de-vaarweg', + 'overig-boten', + 'overlast-op-het-water-geluid', + 'overlast-op-het-water-snel-varen', + 'scheepvaart-nautisch-toezicht', + ].includes(subcategory) + ) { + return expandQuestions(overlastOpHetWaterThor, category, subcategory) + } + return expandQuestions(overlastOpHetWater, category, subcategory) case 'overlast-van-dieren': @@ -150,13 +168,23 @@ export default { return expandQuestions(overlastPersonenEnGroepen, category, subcategory) case 'wegen-verkeer-straatmeubilair': { - const config = ['klok', 'lantaarnpaal-straatverlichting'].includes( + if (['klok', 'lantaarnpaal-straatverlichting'].includes(subcategory)) { + return expandQuestions( + straatverlichtingKlokken, + category, + subcategory + ) + } + + if (subcategory === 'verkeersoverlast') { + return expandQuestions(verkeersoverlast, category, subcategory) + } + + return expandQuestions( + wegenVerkeerStraatmeubilair, + category, subcategory ) - ? straatverlichtingKlokken - : wegenVerkeerStraatmeubilair - - return expandQuestions(config, category, subcategory) } case 'wonen': diff --git a/src/signals/incident/definitions/wizard-step-2-vulaan/afval-thor.test.ts b/src/signals/incident/definitions/wizard-step-2-vulaan/afval-thor.test.ts new file mode 100644 index 0000000000..d15ec6d71b --- /dev/null +++ b/src/signals/incident/definitions/wizard-step-2-vulaan/afval-thor.test.ts @@ -0,0 +1,17 @@ +// SPDX-License-Identifier: MPL-2.0 +// Copyright (C) 2024 Gemeente Amsterdam +import afvalThor from './afval-thor' + +describe('definition afvalThor', () => { + it('has a defined set of controls', () => { + const keys = Object.keys(afvalThor) + + expect(keys).toStrictEqual([ + 'locatie', + 'dateTime', + 'extra_afval_handhaving', + 'extra_afval_handhaving_owner', + 'extra_afval_handhaving_owner_confirmation', + ]) + }) +}) diff --git a/src/signals/incident/definitions/wizard-step-2-vulaan/afval-thor.ts b/src/signals/incident/definitions/wizard-step-2-vulaan/afval-thor.ts new file mode 100644 index 0000000000..e3db404382 --- /dev/null +++ b/src/signals/incident/definitions/wizard-step-2-vulaan/afval-thor.ts @@ -0,0 +1,57 @@ +// SPDX-License-Identifier: MPL-2.0 +// Copyright (C) 2024 Gemeente Amsterdam +import { inPast } from 'signals/incident/services/custom-validators' +import { QuestionFieldType } from 'types/question' + +import locatie from './locatie' + +export const controls = { + locatie, + dateTime: { + meta: { + label: 'Wanneer is of was de overlast?', + }, + options: { + validators: [inPast, 'required'], + }, + render: QuestionFieldType.DateTimeInput, + }, + extra_afval_handhaving: { + meta: { + label: 'Welk afval is verkeerd neergezet?', + subtitle: + 'U helpt ons door zoveel mogelijk informatie te geven over het soort afval: huisafval, bedrijfsafval, grofvuil of dozen en papier.', + shortLabel: 'Welk afval', + pathMerge: 'extra_properties', + }, + render: QuestionFieldType.TextareaInput, + }, + extra_afval_handhaving_owner: { + meta: { + label: + 'Weet u wie de eigenaar is van het verkeerd geplaatste afval? Bijvoorbeeld omdat u dat ziet aan een adressticker of iets anders?', + shortLabel: 'Welke eigenaar', + pathMerge: 'extra_properties', + values: { + ja: 'Ja', + nee: 'Nee', + }, + }, + options: { + validators: ['required'], + }, + render: QuestionFieldType.RadioInput, + }, + extra_afval_handhaving_owner_confirmation: { + meta: { + ifOneOf: { + extra_afval_handhaving_owner: 'ja', + }, + value: + 'Wij willen graag telefonisch contact met u hierover. Als u dat goed vindt, vul dan uw telefoonnummer in op de volgende pagina.', + type: 'info', + }, + render: QuestionFieldType.PlainText, + }, +} +export default controls diff --git a/src/signals/incident/definitions/wizard-step-2-vulaan/afval.test.ts b/src/signals/incident/definitions/wizard-step-2-vulaan/afval.test.ts index 1e99eb6f7d..ca1d73535f 100644 --- a/src/signals/incident/definitions/wizard-step-2-vulaan/afval.test.ts +++ b/src/signals/incident/definitions/wizard-step-2-vulaan/afval.test.ts @@ -1,16 +1,11 @@ +// SPDX-License-Identifier: MPL-2.0 +// Copyright (C) 2018 - 2024 Gemeente Amsterdam import afval from './afval' describe('definition afval', () => { it('has a defined set of controls', () => { const keys = Object.keys(afval) - expect(keys).toStrictEqual([ - 'locatie', - 'dateTime', - 'extra_afval_handhaving', - 'extra_afval_handhaving_owner', - 'extra_afval_handhaving_owner_confirmation', - 'extra_afval', - ]) + expect(keys).toStrictEqual(['locatie', 'dateTime', 'extra_afval']) }) }) diff --git a/src/signals/incident/definitions/wizard-step-2-vulaan/afval.ts b/src/signals/incident/definitions/wizard-step-2-vulaan/afval.ts index 5d89cc87d2..cb6dadae1e 100644 --- a/src/signals/incident/definitions/wizard-step-2-vulaan/afval.ts +++ b/src/signals/incident/definitions/wizard-step-2-vulaan/afval.ts @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MPL-2.0 -// Copyright (C) 2018 - 2023 Gemeente Amsterdam +// Copyright (C) 2018 - 2024 Gemeente Amsterdam import { falsyOrNumberOrNow, inPast, @@ -12,11 +12,7 @@ export const controls = { locatie, dateTime: { meta: { - ifOneOf: { - subcategory: ['asbest-accu', 'handhaving-op-afval'], - }, label: 'Wanneer was het?', - ignoreVisibility: true, canBeNull: true, }, options: { @@ -24,49 +20,6 @@ export const controls = { }, render: QuestionFieldType.DateTimeInput, }, - extra_afval_handhaving: { - meta: { - ifOneOf: { - subcategory: ['asbest-accu', 'handhaving-op-afval'], - }, - label: 'Welk afval is verkeerd neergezet?', - subtitle: - 'U helpt ons door zoveel mogelijk informatie te geven over het soort afval: huisafval, bedrijfsafval, grofvuil of dozen en papier.', - shortLabel: 'Welk afval', - pathMerge: 'extra_properties', - }, - render: QuestionFieldType.TextareaInput, - }, - extra_afval_handhaving_owner: { - meta: { - ifOneOf: { - subcategory: ['asbest-accu', 'handhaving-op-afval'], - }, - label: - 'Weet u wie de eigenaar is van het verkeerd geplaatste afval? Bijvoorbeeld omdat u dat ziet aan een adressticker of iets anders?', - shortLabel: 'Welke eigenaar', - pathMerge: 'extra_properties', - values: { - ja: 'Ja', - nee: 'Nee', - }, - }, - options: { - validators: ['required'], - }, - render: QuestionFieldType.RadioInput, - }, - extra_afval_handhaving_owner_confirmation: { - meta: { - ifOneOf: { - extra_afval_handhaving_owner: 'ja', - }, - value: - 'Wij willen graag telefonisch contact met u hierover. Als u dat goed vindt, vul dan uw telefoonnummer in op de volgende pagina.', - type: 'info', - }, - render: QuestionFieldType.PlainText, - }, extra_afval: { meta: { ifOneOf: { diff --git a/src/signals/incident/definitions/wizard-step-2-vulaan/boom-illegale-kap.ts b/src/signals/incident/definitions/wizard-step-2-vulaan/boom-illegale-kap.ts index a3015d1ae6..41455bda7c 100644 --- a/src/signals/incident/definitions/wizard-step-2-vulaan/boom-illegale-kap.ts +++ b/src/signals/incident/definitions/wizard-step-2-vulaan/boom-illegale-kap.ts @@ -1,9 +1,21 @@ -import dateTime from './dateTime' +// SPDX-License-Identifier: MPL-2.0 +// Copyright (C) 2018 - 2024 Gemeente Amsterdam +import { inPast } from 'signals/incident/services/custom-validators' +import { QuestionFieldType } from 'types/question' + import locatie from './locatie' const boomIllegaleKap = { locatie, - dateTime, + dateTime: { + meta: { + label: 'Wanneer is of was de overlast?', + }, + options: { + validators: [inPast, 'required'], + }, + render: QuestionFieldType.DateTimeInput, + }, } export default boomIllegaleKap diff --git a/src/signals/incident/definitions/wizard-step-2-vulaan/bouw-sloop-overlast.ts b/src/signals/incident/definitions/wizard-step-2-vulaan/bouw-sloop-overlast.ts index cb91ed54ad..c5d9844aa1 100644 --- a/src/signals/incident/definitions/wizard-step-2-vulaan/bouw-sloop-overlast.ts +++ b/src/signals/incident/definitions/wizard-step-2-vulaan/bouw-sloop-overlast.ts @@ -1,9 +1,21 @@ -import dateTime from './dateTime' +// SPDX-License-Identifier: MPL-2.0 +// Copyright (C) 2018 - 2024 Gemeente Amsterdam +import { inPast } from 'signals/incident/services/custom-validators' +import { QuestionFieldType } from 'types/question' + import locatie from './locatie' const bouwSloopOverlast = { locatie, - dateTime, + dateTime: { + meta: { + label: 'Wanneer is of was de overlast?', + }, + options: { + validators: [inPast, 'required'], + }, + render: QuestionFieldType.DateTimeInput, + }, } export default bouwSloopOverlast diff --git a/src/signals/incident/definitions/wizard-step-2-vulaan/dateTime.ts b/src/signals/incident/definitions/wizard-step-2-vulaan/dateTime.ts deleted file mode 100644 index 3f8116812d..0000000000 --- a/src/signals/incident/definitions/wizard-step-2-vulaan/dateTime.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { - falsyOrNumberOrNow, - inPast, -} from 'signals/incident/services/custom-validators' -import { QuestionFieldType } from 'types/question' - -const dateTime = { - meta: { - ignoreVisibility: true, - label: 'Wanneer was het?', - canBeNull: true, - }, - options: { - validators: [falsyOrNumberOrNow, inPast], - }, - render: QuestionFieldType.DateTimeInput, -} - -export default dateTime diff --git a/src/signals/incident/definitions/wizard-step-2-vulaan/overlast-bedrijven-en-horeca.ts b/src/signals/incident/definitions/wizard-step-2-vulaan/overlast-bedrijven-en-horeca.ts index 6e1dbc9f48..11f1506d23 100644 --- a/src/signals/incident/definitions/wizard-step-2-vulaan/overlast-bedrijven-en-horeca.ts +++ b/src/signals/incident/definitions/wizard-step-2-vulaan/overlast-bedrijven-en-horeca.ts @@ -7,7 +7,6 @@ import locatie from './locatie' const overlastBedrijvenEnHoreca = { locatie, - dateTime: { meta: { ifOneOf: { @@ -15,20 +14,19 @@ const overlastBedrijvenEnHoreca = { 'geluidsoverlast-installaties', 'geluidsoverlast-muziek', 'overig-horecabedrijven', + 'overlast-door-bezoekers-niet-op-terras', 'overlast-evenementen', 'overlast-terrassen', 'stankoverlast', ], }, - label: 'Wanneer heeft u de overlast?', - canBeNull: true, + label: 'Wanneer is of was de overlast?', }, options: { validators: [inPast, 'required'], }, render: QuestionFieldType.DateTimeInput, }, - extra_bedrijven_horeca_frequentie: { meta: { ifOneOf: { diff --git a/src/signals/incident/definitions/wizard-step-2-vulaan/overlast-in-de-openbare-ruimte.ts b/src/signals/incident/definitions/wizard-step-2-vulaan/overlast-in-de-openbare-ruimte.ts index f132e9a895..c0171964c9 100644 --- a/src/signals/incident/definitions/wizard-step-2-vulaan/overlast-in-de-openbare-ruimte.ts +++ b/src/signals/incident/definitions/wizard-step-2-vulaan/overlast-in-de-openbare-ruimte.ts @@ -1,13 +1,21 @@ // SPDX-License-Identifier: MPL-2.0 -// Copyright (C) 2018 - 2023 Gemeente Amsterdam +// Copyright (C) 2018 - 2024 Gemeente Amsterdam +import { inPast } from 'signals/incident/services/custom-validators' import { QuestionFieldType } from 'types/question' -import dateTime from './dateTime' import locatie from './locatie' export const overlastInDeOpenbareRuimte = { locatie, - dateTime, + dateTime: { + meta: { + label: 'Wanneer is of was de overlast?', + }, + options: { + validators: [inPast, 'required'], + }, + render: QuestionFieldType.DateTimeInput, + }, extra_auto_scooter_bromfietswrak: { meta: { ifAllOf: { diff --git a/src/signals/incident/definitions/wizard-step-2-vulaan/overlast-op-het-water-thor.test.ts b/src/signals/incident/definitions/wizard-step-2-vulaan/overlast-op-het-water-thor.test.ts new file mode 100644 index 0000000000..3241c1bc29 --- /dev/null +++ b/src/signals/incident/definitions/wizard-step-2-vulaan/overlast-op-het-water-thor.test.ts @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: MPL-2.0 +// Copyright (C) 2018 - 2024 Gemeente Amsterdam +import overlastOpHetWaterThor from './overlast-op-het-water-thor' + +describe('definition overlast-op-het-water', () => { + it('has a defined set of controls', () => { + const keys = Object.keys(overlastOpHetWaterThor) + + expect(keys).toStrictEqual([ + 'locatie', + 'dateTime', + 'extra_boten_frequentie', + 'extra_boten_moment', + 'extra_boten_beweging', + 'extra_boten_soort', + 'extra_boten_open_gesloten', + 'extra_boten_meer', + ]) + }) +}) diff --git a/src/signals/incident/definitions/wizard-step-2-vulaan/overlast-op-het-water-thor.ts b/src/signals/incident/definitions/wizard-step-2-vulaan/overlast-op-het-water-thor.ts new file mode 100644 index 0000000000..a6d1e8f15b --- /dev/null +++ b/src/signals/incident/definitions/wizard-step-2-vulaan/overlast-op-het-water-thor.ts @@ -0,0 +1,114 @@ +// SPDX-License-Identifier: MPL-2.0 +// Copyright (C) 2021 - 2024 Gemeente Amsterdam +import { inPast } from 'signals/incident/services/custom-validators' +import { QuestionFieldType } from 'types/question' + +import locatie from './locatie' + +export const overlastOpHetWaterThor = { + locatie, + dateTime: { + meta: { + label: 'Wanneer is of was de overlast?', + }, + options: { + validators: [inPast, 'required'], + }, + render: QuestionFieldType.DateTimeInput, + }, + extra_boten_frequentie: { + meta: { + values: { + ja: 'Ja, het gebeurt vaker', + nee: 'Nee, het is de eerste keer', + }, + label: 'Heeft u deze overlast al eerder gehad?', + shortLabel: 'Eerder overlast', + pathMerge: 'extra_properties', + }, + render: QuestionFieldType.RadioInput, + }, + extra_boten_moment: { + meta: { + ifAllOf: { + extra_boten_frequentie: 'ja', + }, + label: 'Op welke momenten van de dag hebt u de overlast?', + shortLabel: 'Overlast momenten', + pathMerge: 'extra_properties', + }, + options: { validators: ['required'] }, + render: QuestionFieldType.TextInput, + }, + extra_boten_beweging: { + meta: { + values: { + ja: 'Ja, de boot ligt stil', + nee: 'Nee, de boot vaart', + }, + label: 'Ligt de boot stil?', + shortLabel: 'Beweging boot', + pathMerge: 'extra_properties', + }, + render: QuestionFieldType.RadioInput, + }, + extra_boten_soort: { + meta: { + ifOneOf: { + subcategory: [ + 'overig-boten', + 'overlast-op-het-water-geluid', + 'overlast-op-het-water-snel-varen', + 'overlast-op-het-water-vaargedrag', + ], + }, + values: { + plezier: '(Plezier)boot in privé-eigendom', + rondvaart: 'Rondvaartboot of salonboot van rederij', + vracht: 'Vrachtschip of binnenvaartschip', + huur: 'Huurboot', + overig: 'Overig', + weetniet: 'Weet ik niet', + }, + label: 'Wat voor soort boot is het?', + shortLabel: 'Soort boot', + pathMerge: 'extra_properties', + }, + options: { validators: ['required'] }, + render: QuestionFieldType.RadioInput, + }, + extra_boten_open_gesloten: { + meta: { + ifOneOf: { + subcategory: [ + 'overig-boten', + 'overlast-op-het-water-geluid', + 'overlast-op-het-water-snel-varen', + 'overlast-op-het-water-vaargedrag', + ], + }, + values: { + ja: 'Ja, het is een open boot (bijvoorbeeld een sloep, roeiboot, rondvaartboot met dak open)', + nee: 'Nee, het is een gesloten boot (bijvoorbeeld een rondvaartboot, salonboot, kajuitboot)', + onduidelijk: 'Ik kan het niet zien', + }, + label: 'Is het een open of een gesloten boot?', + shortLabel: 'Open boot', + pathMerge: 'extra_properties', + }, + options: { validators: ['required'] }, + render: QuestionFieldType.RadioInput, + }, + extra_boten_meer: { + meta: { + label: 'Wat weet u nog meer over deze situatie?', + shortLabel: 'Extra informatie', + subtitle: + 'Bijvoorbeeld: waar de boot naar toe vaart, naam boot, kleur van de boot, lengte en andere dingen die u opvallen, aantal passagiers', + pathMerge: 'extra_properties', + }, + render: QuestionFieldType.TextareaInput, + }, +} + +export default overlastOpHetWaterThor diff --git a/src/signals/incident/definitions/wizard-step-2-vulaan/overlast-op-het-water.test.ts b/src/signals/incident/definitions/wizard-step-2-vulaan/overlast-op-het-water.test.ts index ec63e4006a..f9a910988e 100644 --- a/src/signals/incident/definitions/wizard-step-2-vulaan/overlast-op-het-water.test.ts +++ b/src/signals/incident/definitions/wizard-step-2-vulaan/overlast-op-het-water.test.ts @@ -1,3 +1,5 @@ +// SPDX-License-Identifier: MPL-2.0 +// Copyright (C) 2018 - 2024 Gemeente Amsterdam import overlastOpHetWater from './overlast-op-het-water' describe('definition overlast-op-het-water', () => { @@ -7,15 +9,9 @@ describe('definition overlast-op-het-water', () => { expect(keys).toStrictEqual([ 'locatie', 'dateTime', - 'extra_boten_frequentie', - 'extra_boten_moment', - 'extra_boten_beweging', - 'extra_boten_soort', - 'extra_boten_open_gesloten', 'extra_boten_drijfkracht', 'extra_boten_vast', 'extra_boten_lekken', - 'extra_boten_meer', ]) }) }) diff --git a/src/signals/incident/definitions/wizard-step-2-vulaan/overlast-op-het-water.ts b/src/signals/incident/definitions/wizard-step-2-vulaan/overlast-op-het-water.ts index 2f57f578db..3dcee2bc86 100644 --- a/src/signals/incident/definitions/wizard-step-2-vulaan/overlast-op-het-water.ts +++ b/src/signals/incident/definitions/wizard-step-2-vulaan/overlast-op-het-water.ts @@ -1,9 +1,6 @@ // SPDX-License-Identifier: MPL-2.0 -// Copyright (C) 2021 - 2023 Gemeente Amsterdam -import { - falsyOrNumberOrNow, - inPast, -} from 'signals/incident/services/custom-validators' +// Copyright (C) 2021 - 2024 Gemeente Amsterdam +import { inPast } from 'signals/incident/services/custom-validators' import { QuestionFieldType } from 'types/question' import locatie from './locatie' @@ -12,123 +9,13 @@ export const overlastOpHetWater = { locatie, dateTime: { meta: { - ignoreVisibility: true, label: 'Wanneer heeft u de overlast?', - canBeNull: true, }, options: { - validators: [falsyOrNumberOrNow, inPast, 'required'], + validators: [inPast, 'required'], }, render: QuestionFieldType.DateTimeInput, }, - - extra_boten_frequentie: { - meta: { - ifOneOf: { - subcategory: [ - 'blokkade-van-de-vaarweg', - 'overig-boten', - 'overlast-op-het-water-geluid', - 'overlast-op-het-water-gezonken-boot', - 'overlast-op-het-water-snel-varen', - 'overlast-op-het-water-vaargedrag', - ], - }, - values: { - ja: 'Ja, het gebeurt vaker', - nee: 'Nee, het is de eerste keer', - }, - label: 'Heeft u deze overlast al eerder gehad?', - shortLabel: 'Eerder overlast', - pathMerge: 'extra_properties', - }, - render: QuestionFieldType.RadioInput, - }, - - extra_boten_moment: { - meta: { - ifAllOf: { - extra_boten_frequentie: 'ja', - }, - label: 'Op welke momenten van de dag hebt u de overlast?', - shortLabel: 'Overlast momenten', - pathMerge: 'extra_properties', - }, - options: { validators: ['required'] }, - render: QuestionFieldType.TextInput, - }, - - extra_boten_beweging: { - meta: { - ifOneOf: { - subcategory: [ - 'blokkade-van-de-vaarweg', - 'overig-boten', - 'overlast-op-het-water-geluid', - 'overlast-op-het-water-snel-varen', - 'overlast-op-het-water-vaargedrag', - ], - }, - values: { - ja: 'Ja, de boot ligt stil', - nee: 'Nee, de boot vaart', - }, - label: 'Ligt de boot stil?', - shortLabel: 'Beweging boot', - pathMerge: 'extra_properties', - }, - render: QuestionFieldType.RadioInput, - }, - - extra_boten_soort: { - meta: { - ifOneOf: { - subcategory: [ - 'overig-boten', - 'overlast-op-het-water-geluid', - 'overlast-op-het-water-snel-varen', - 'overlast-op-het-water-vaargedrag', - ], - }, - values: { - plezier: '(Plezier)boot in privé-eigendom', - rondvaart: 'Rondvaartboot of salonboot van rederij', - vracht: 'Vrachtschip of binnenvaartschip', - huur: 'Huurboot', - overig: 'Overig', - weetniet: 'Weet ik niet', - }, - label: 'Wat voor soort boot is het?', - shortLabel: 'Soort boot', - pathMerge: 'extra_properties', - }, - options: { validators: ['required'] }, - render: QuestionFieldType.RadioInput, - }, - - extra_boten_open_gesloten: { - meta: { - ifOneOf: { - subcategory: [ - 'overig-boten', - 'overlast-op-het-water-geluid', - 'overlast-op-het-water-snel-varen', - 'overlast-op-het-water-vaargedrag', - ], - }, - values: { - ja: 'Ja, het is een open boot (bijvoorbeeld een sloep, roeiboot, rondvaartboot met dak open)', - nee: 'Nee, het is een gesloten boot (bijvoorbeeld een rondvaartboot, salonboot, kajuitboot)', - onduidelijk: 'Ik kan het niet zien', - }, - label: 'Is het een open of een gesloten boot?', - shortLabel: 'Open boot', - pathMerge: 'extra_properties', - }, - options: { validators: ['required'] }, - render: QuestionFieldType.RadioInput, - }, - extra_boten_drijfkracht: { meta: { ifOneOf: { @@ -144,7 +31,6 @@ export const overlastOpHetWater = { }, render: QuestionFieldType.RadioInput, }, - extra_boten_vast: { meta: { ifOneOf: { @@ -161,7 +47,6 @@ export const overlastOpHetWater = { }, render: QuestionFieldType.RadioInput, }, - extra_boten_lekken: { meta: { ifOneOf: { @@ -178,26 +63,6 @@ export const overlastOpHetWater = { }, render: QuestionFieldType.RadioInput, }, - - extra_boten_meer: { - meta: { - ifOneOf: { - subcategory: [ - 'blokkade-van-de-vaarweg', - 'overig-boten', - 'overlast-op-het-water-geluid', - 'overlast-op-het-water-snel-varen', - 'overlast-op-het-water-vaargedrag', - ], - }, - label: 'Wat weet u nog meer over deze situatie?', - shortLabel: 'Extra informatie', - subtitle: - 'Bijvoorbeeld: waar de boot naar toe vaart, naam boot, kleur van de boot, lengte en andere dingen die u opvallen, aantal passagiers', - pathMerge: 'extra_properties', - }, - render: QuestionFieldType.TextareaInput, - }, } export default overlastOpHetWater diff --git a/src/signals/incident/definitions/wizard-step-2-vulaan/overlast-van-en-door-personen-of-groepen.ts b/src/signals/incident/definitions/wizard-step-2-vulaan/overlast-van-en-door-personen-of-groepen.ts index 114052804f..4dae6ec4ca 100644 --- a/src/signals/incident/definitions/wizard-step-2-vulaan/overlast-van-en-door-personen-of-groepen.ts +++ b/src/signals/incident/definitions/wizard-step-2-vulaan/overlast-van-en-door-personen-of-groepen.ts @@ -1,9 +1,6 @@ // SPDX-License-Identifier: MPL-2.0 -// Copyright (C) 2018 - 2023 Gemeente Amsterdam -import { - falsyOrNumberOrNow, - inPast, -} from 'signals/incident/services/custom-validators' +// Copyright (C) 2018 - 2024 Gemeente Amsterdam +import { inPast } from 'signals/incident/services/custom-validators' import { QuestionFieldType } from 'types/question' import locatie from './locatie' @@ -16,19 +13,19 @@ export const overlastPersonenEnGroepen = { subcategory: [ 'daklozen-bedelen', 'drank-en-drugsoverlast', + 'geluidsoverlast-door-personen', 'jongerenoverlast', + 'loslopende-agressieve-honden', 'overige-overlast-door-personen', 'overlast-door-afsteken-vuurwerk', 'overlast-van-taxis-bussen-en-fietstaxis', 'wildplassen-poepen-overgeven', ], }, - label: 'Wanneer was het?', - ignoreVisibility: true, - canBeNull: true, + label: 'Wanneer is of was de overlast?', }, options: { - validators: [falsyOrNumberOrNow, inPast], + validators: [inPast, 'required'], }, render: QuestionFieldType.DateTimeInput, }, diff --git a/src/signals/incident/definitions/wizard-step-2-vulaan/verkeersoverlast.test.ts b/src/signals/incident/definitions/wizard-step-2-vulaan/verkeersoverlast.test.ts new file mode 100644 index 0000000000..b5032a45d4 --- /dev/null +++ b/src/signals/incident/definitions/wizard-step-2-vulaan/verkeersoverlast.test.ts @@ -0,0 +1,11 @@ +// SPDX-License-Identifier: MPL-2.0 +// Copyright (C) 2018 - 2024 Gemeente Amsterdam +import verkeersoverlast from './verkeersoverlast' + +describe('definition verkeersoverlast', () => { + it('has a defined set of controls', () => { + const keys = Object.keys(verkeersoverlast) + + expect(keys).toStrictEqual(['locatie', 'dateTime']) + }) +}) diff --git a/src/signals/incident/definitions/wizard-step-2-vulaan/verkeersoverlast.ts b/src/signals/incident/definitions/wizard-step-2-vulaan/verkeersoverlast.ts new file mode 100644 index 0000000000..a1c9757d4a --- /dev/null +++ b/src/signals/incident/definitions/wizard-step-2-vulaan/verkeersoverlast.ts @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: MPL-2.0 +// Copyright (C) 2018 - 2024 Gemeente Amsterdam +import { inPast } from 'signals/incident/services/custom-validators' +import { QuestionFieldType } from 'types/question' + +import locatie from './locatie' + +export const verkeersoverlast = { + locatie, + dateTime: { + meta: { + label: 'Wanneer is of was de overlast?', + }, + options: { + validators: [inPast, 'required'], + }, + render: QuestionFieldType.DateTimeInput, + }, +} + +export default verkeersoverlast diff --git a/src/signals/incident/definitions/wizard-step-2-vulaan/wegen-verkeer-straatmeubilair.ts b/src/signals/incident/definitions/wizard-step-2-vulaan/wegen-verkeer-straatmeubilair.ts index c2287e1775..2ad432f463 100644 --- a/src/signals/incident/definitions/wizard-step-2-vulaan/wegen-verkeer-straatmeubilair.ts +++ b/src/signals/incident/definitions/wizard-step-2-vulaan/wegen-verkeer-straatmeubilair.ts @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MPL-2.0 -// Copyright (C) 2018 - 2023 Gemeente Amsterdam +// Copyright (C) 2018 - 2024 Gemeente Amsterdam import appConfiguration from 'shared/services/configuration/configuration' import { falsyOrNumberOrNow, @@ -18,11 +18,7 @@ export const wegenVerkeerStraatmeubilair = { locatie, dateTime: { meta: { - ifOneOf: { - subcategory: ['verkeersoverlast'], - }, label: 'Wanneer was het?', - ignoreVisibility: true, canBeNull: true, }, options: {