From 9b83dfb9c66f427cd60a7499144c884f30ce30d8 Mon Sep 17 00:00:00 2001 From: Max Bladen-Clark Date: Mon, 3 Jul 2023 13:34:17 +0100 Subject: [PATCH 1/4] Add "Get flood warnings" to "Alerts and warnings" page related links https://eaflood.atlassian.net/browse/FSR-867 From 739653791a12fa7a8cd975ed7fefdf901375c3d9 Mon Sep 17 00:00:00 2001 From: Max Bladen-Clark Date: Mon, 3 Jul 2023 13:36:58 +0100 Subject: [PATCH 2/4] add 'getWarnings' to alerts and model warning includes appropriate journey click title --- server/models/views/alerts-and-warnings.js | 1 + test/models/alerts-and-warnings.js | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/server/models/views/alerts-and-warnings.js b/server/models/views/alerts-and-warnings.js index 43d80386d..6ea733d2d 100644 --- a/server/models/views/alerts-and-warnings.js +++ b/server/models/views/alerts-and-warnings.js @@ -11,6 +11,7 @@ class ViewModel { placeCentre: place ? place.center : [], timestamp: Date.now(), error: error ? true : null, + getWarnings: 'Alerts-and-warnings:Related-content:Get-warnings', isEngland: place ? place.isEngland.is_england : null, isDummyData: floods ? floods.isDummyData : false }) diff --git a/test/models/alerts-and-warnings.js b/test/models/alerts-and-warnings.js index ddd81c27f..37f378871 100644 --- a/test/models/alerts-and-warnings.js +++ b/test/models/alerts-and-warnings.js @@ -59,3 +59,11 @@ lab.test('Test location sets page title', async () => { Code.expect(Result.pageTitle).to.equal('Newcastle Upon Tyne - flood alerts and warnings') }) + +lab.test('Test getWarnings has appropriate Value', async () => { + const options = {} + + const Result = await new ViewModel(options) + + Code.expect(Result.getWarnings).to.equal('Alerts-and-warnings:Related-content:Get-warnings') +}) From 999de658ee916816b687e38e5e3449cb939b3ca0 Mon Sep 17 00:00:00 2001 From: Max Bladen-Clark Date: Thu, 6 Jul 2023 15:36:55 +0100 Subject: [PATCH 3/4] Add get warnings to related content on /rainfall-station and /river-and-sea-levels pages --- server/models/views/rainfall.js | 1 + server/models/views/river-and-sea-levels.js | 8 ++ test/models/rainfall.js | 8 ++ test/models/river-and-sea-levels.js | 103 ++++++++++++-------- 4 files changed, 81 insertions(+), 39 deletions(-) diff --git a/server/models/views/rainfall.js b/server/models/views/rainfall.js index 60b492837..10bdaef7f 100644 --- a/server/models/views/rainfall.js +++ b/server/models/views/rainfall.js @@ -18,6 +18,7 @@ class ViewModel { stationId: rainfallStation[0].station_reference, centroid: [rainfallStation[0].lon, rainfallStation[0].lat], region: rainfallStation[0].region, + getWarnings: 'Rainfall:Related-content:Get-warnings', planAhead: 'Rainfall:Related-content:Plan-ahead-for-flooding', whatToDo: 'Rainfall:Related-content:What-to-do-in-a-flood', recoverAfter: 'Rainfall:Related-content:Recover-after-a-flood', diff --git a/server/models/views/river-and-sea-levels.js b/server/models/views/river-and-sea-levels.js index d379dccc1..5f0baae7c 100644 --- a/server/models/views/river-and-sea-levels.js +++ b/server/models/views/river-and-sea-levels.js @@ -4,11 +4,14 @@ const { bingKeyMaps, floodRiskUrl } = require('../../config') const pageTitle = 'Find river, sea, groundwater and rainfall levels' const metaDescription = 'Find river, sea, groundwater and rainfall levels in England. Check the last updated height, trend and state recorded by the measuring station.' +const getWarningsString = 'Rivers-and-sea-levels:Related-content:Get-warnings' + function emptyResultsModel (q) { return { q, metaDescription, floodRiskUrl, + getWarnings: getWarningsString, pageTitle: formatTitle(q), clientModel: getClientModel() } @@ -23,6 +26,7 @@ function disambiguationModel (q, places, rivers) { q, metaDescription, rivers, + getWarnings: getWarningsString, pageTitle: `${q} - ${pageTitle}`, place: places[0], clientModel: getClientModel() @@ -47,6 +51,7 @@ function riverViewModel (stations) { queryGroup, floodRiskUrl, metaDescription, + getWarnings: getWarningsString, pageTitle: `${qualifiedRiverName} - ${pageTitle}`, q: qualifiedRiverName, clientModel: getClientModel(bbox) @@ -70,6 +75,7 @@ function areaViewModel (areaName, stations) { floodRiskUrl, pageTitle, metaDescription, + getWarnings: getWarningsString, clientModel: getClientModel(bbox), distStatement: `Showing levels within 5 miles of ${areaName}.` } @@ -95,6 +101,7 @@ function referencedStationViewModel (referencePoint, stations) { floodRiskUrl, pageTitle, metaDescription, + getWarnings: getWarningsString, clientModel: getClientModel(bbox), distStatement: referencePoint.distStatement } @@ -133,6 +140,7 @@ function placeViewModel ({ location, place, stations = [], queryGroup }) { clientModel: getClientModel(isEngland ? place.bbox10k : []), queryGroup: activeFilter, placeAddress: place.address, + getWarnings: getWarningsString, pageTitle: title, metaDescription: description } diff --git a/test/models/rainfall.js b/test/models/rainfall.js index 3f70e1093..732fd0ed7 100644 --- a/test/models/rainfall.js +++ b/test/models/rainfall.js @@ -111,4 +111,12 @@ lab.experiment('Rainfall model test', () => { Code.expect(Result.postTitle).to.equal('Latest rainfall information at Lavenham gauge') Code.expect(Result.metaDescription).to.equal('Check the latest recorded rainfall at Lavenham gauge') }) + lab.test('Test getWarnings has appropriate Value', async () => { + const rainfallTelemetryData = data.rainfallStationTelemetry + const rainfallStationData = data.rainfallStation.filter((rainfallStation) => rainfallStation.station_reference === 'E24195') + + const result = new ViewModel(rainfallTelemetryData, rainfallStationData) + + Code.expect(result.getWarnings).to.equal('Rainfall:Related-content:Get-warnings') + }) }) diff --git a/test/models/river-and-sea-levels.js b/test/models/river-and-sea-levels.js index abcc17bf0..1f2f8ee24 100644 --- a/test/models/river-and-sea-levels.js +++ b/test/models/river-and-sea-levels.js @@ -16,53 +16,64 @@ lab.experiment('river-and-sea-levels model test', () => { lab.afterEach(async () => { await sandbox.restore() }) - lab.test('Test river-and-sea-level placeViewModel returns stations', async () => { - const stationsData = data.riverAndSeaLevelData + lab.experiment('placeViewModel', () => { + lab.test('Test river-and-sea-level placeViewModel returns stations', async () => { + const stationsData = data.riverAndSeaLevelData - const model = placeViewModel(stationsData) + const model = placeViewModel(stationsData) - Code.expect(model.stations.length).to.equal(76) - Code.expect(model.stations[0].river_name).to.equal('Valley Brook') - Code.expect(model.stations[0].region).to.equal('North West') - }) - lab.test('Test river-and-sea-level placeViewModel returns stations in distance order from place', async () => { - const stationsData = data.riverAndSeaLevelDataUnordered - const firstStation = data.riverAndSeaLevelDataUnordered.stations[0] - const model = placeViewModel(stationsData) - - Code.expect(model.stations[2].distance).to.be.greaterThan(model.stations[1].distance) - Code.expect(model.stations[0].river_name).to.not.equal(firstStation.river_name) - Code.expect(model.stations[0].region).to.equal('North West') - }) - lab.test('Test river-and-sea-level placeViewModel filters stations into groups', async () => { - const stationsData = data.riverAndSeaLevelData - const model = placeViewModel(stationsData) - - Code.expect(model.filters[0].count).to.equal(74) - Code.expect(model.filters[1].count).to.equal(0) - Code.expect(model.filters[2].count).to.equal(2) - Code.expect(model.filters[3].count).to.equal(0) - }) - lab.test('Test river-and-sea-level placeViewModel returns formatted date time for stations', async () => { - const stationsData = data.riverAndSeaLevelData - const model = placeViewModel(stationsData) + Code.expect(model.stations.length).to.equal(76) + Code.expect(model.stations[0].river_name).to.equal('Valley Brook') + Code.expect(model.stations[0].region).to.equal('North West') + }) + lab.test('Test river-and-sea-level placeViewModel returns stations in distance order from place', async () => { + const stationsData = data.riverAndSeaLevelDataUnordered + const firstStation = data.riverAndSeaLevelDataUnordered.stations[0] + const model = placeViewModel(stationsData) - Code.expect(model.stations[0].latestDatetime).to.equal('Latest at 5:30am on 16 July ') - }) - lab.test('Test river-and-sea-level placeViewModel returns formattedValue with correct number of decimal places', async () => { - const stationsData = data.riverAndSeaLevelData - const model = placeViewModel(stationsData) + Code.expect(model.stations[2].distance).to.be.greaterThan(model.stations[1].distance) + Code.expect(model.stations[0].river_name).to.not.equal(firstStation.river_name) + Code.expect(model.stations[0].region).to.equal('North West') + }) + lab.test('Test river-and-sea-level placeViewModel filters stations into groups', async () => { + const stationsData = data.riverAndSeaLevelData + const model = placeViewModel(stationsData) - const station = model.stations.find(item => { - return item.station_type === 'S' + Code.expect(model.filters[0].count).to.equal(74) + Code.expect(model.filters[1].count).to.equal(0) + Code.expect(model.filters[2].count).to.equal(2) + Code.expect(model.filters[3].count).to.equal(0) }) - const rainfallStation = model.stations.find(item => { - return item.station_type === 'R' + lab.test('Test river-and-sea-level placeViewModel returns formatted date time for stations', async () => { + const stationsData = data.riverAndSeaLevelData + const model = placeViewModel(stationsData) + + Code.expect(model.stations[0].latestDatetime).to.equal('Latest at 5:30am on 16 July ') }) + lab.test('Test river-and-sea-level placeViewModel returns formattedValue with correct number of decimal places', async () => { + const stationsData = data.riverAndSeaLevelData + const model = placeViewModel(stationsData) + + const station = model.stations.find(item => { + return item.station_type === 'S' + }) + const rainfallStation = model.stations.find(item => { + return item.station_type === 'R' + }) + + Code.expect(station.formattedValue).to.equal('0.22m') + Code.expect(rainfallStation.formattedValue).to.equal('0m') + }) + + lab.test('Test getWarnings has appropriate Value', async () => { + const stationsData = data.riverAndSeaLevelData - Code.expect(station.formattedValue).to.equal('0.22m') - Code.expect(rainfallStation.formattedValue).to.equal('0m') + const result = placeViewModel(stationsData) + + Code.expect(result.getWarnings).to.equal('Rivers-and-sea-levels:Related-content:Get-warnings') + }) }) + lab.experiment('referencedStationViewModel', () => { lab.test('Test river-and-sea-level referencedStationViewModel sorts stations in distance order from rainfall station', async () => { const stationsData = data.riverAndSeaLevelDataUnordered @@ -80,5 +91,19 @@ lab.experiment('river-and-sea-levels model test', () => { Code.expect(model.stations[1].distance).to.be.greaterThan(model.stations[0].distance) Code.expect(model.stations[2].distance).to.be.greaterThan(model.stations[1].distance) }) + lab.test('Test getWarnings has appropriate Value', async () => { + const stationsData = data.riverAndSeaLevelDataUnordered + const [rainfallStation] = data.rainfallStation553564 + + const referencePoint = { + name: rainfallStation.station_name, + lat: rainfallStation.lat, + lon: rainfallStation.lon + } + + const result = referencedStationViewModel(referencePoint, stationsData.stations) + + Code.expect(result.getWarnings).to.equal('Rivers-and-sea-levels:Related-content:Get-warnings') + }) }) }) From 1fe7b1f80c871b58cb6afeb5e75dd20a7771d2f6 Mon Sep 17 00:00:00 2001 From: Max Bladen-Clark Date: Fri, 7 Jul 2023 09:05:26 +0100 Subject: [PATCH 4/4] remove related links from /privacy-notice and /terms-and-conditions --- server/views/privacy-notice.html | 17 ----------------- server/views/terms-and-conditions.html | 18 ------------------ 2 files changed, 35 deletions(-) diff --git a/server/views/privacy-notice.html b/server/views/privacy-notice.html index cf1c323ad..96cbde825 100644 --- a/server/views/privacy-notice.html +++ b/server/views/privacy-notice.html @@ -53,23 +53,6 @@

Changes to this notice

If these changes affect how your personal data is processed, we'll take reasonable steps to let you know.

This notice was last updated on 17 March 2022.

-
- -
{% endblock %} diff --git a/server/views/terms-and-conditions.html b/server/views/terms-and-conditions.html index 72b33522d..46de2d8ce 100644 --- a/server/views/terms-and-conditions.html +++ b/server/views/terms-and-conditions.html @@ -119,24 +119,6 @@

Changes to these terms and conditions

Please check these terms and conditions regularly. We can update them at any time without notice.

You’ll agree to any changes if you continue to use the service after the terms and conditions have been updated.

- -
- -
{% endblock %}