Complete migration to new "areas" API format

Depends on: https://github.com/alphagov/notifications-api/pull/3314

Previously:

- We introduced a new "areas_2" API field that's can
populate the "areas" column in the same way.

- We updated the Admin app to use the new field, so that
the old "areas" and "simple_polygons" API fields are unused.

- We repurposed the unused "areas" API field to use
the new "areas_2" format.

This PR:

- We can switch the Admin app back to the "areas" field,
but in the new format.

Future PRs:

- Remove support for the unused "areas_2" field (migration complete)
This commit is contained in:
Ben Thorner
2021-08-27 14:32:56 +01:00
parent 6c4340c5eb
commit cfdd244325
3 changed files with 11 additions and 11 deletions

View File

@@ -88,7 +88,7 @@ class BroadcastMessage(JSONModel):
@property
def areas(self):
polygons = self._dict['areas_2']['simple_polygons']
polygons = self._dict['areas']['simple_polygons']
library_areas = self.get_areas(self.area_ids)
if library_areas:
@@ -106,11 +106,11 @@ class BroadcastMessage(JSONModel):
@property
def area_ids(self):
return self._dict['areas_2']['ids']
return self._dict['areas']['ids']
@area_ids.setter
def area_ids(self, value):
self._dict['areas_2']['ids'] = value
self._dict['areas']['ids'] = value
@property
def ancestor_areas(self):
@@ -230,7 +230,7 @@ class BroadcastMessage(JSONModel):
self._update_areas()
def remove_area(self, area_id):
self.area_ids = list(set(self._dict['areas_2']['ids']) - {area_id})
self.area_ids = list(set(self._dict['areas']['ids']) - {area_id})
self._update_areas()
def _set_status_to(self, status):
@@ -241,13 +241,13 @@ class BroadcastMessage(JSONModel):
)
def _update_areas(self, force_override=False):
areas_2 = {
areas = {
'ids': self.area_ids,
'names': [area.name for area in self.areas],
'simple_polygons': self.simple_polygons.as_coordinate_pairs_lat_long
}
data = {'areas_2': areas_2}
data = {'areas': areas}
# TEMPORARY: while we migrate to a new format for "areas"
if force_override:

View File

@@ -696,7 +696,7 @@ def broadcast_message_json(
'reference': reference,
'personalisation': {},
'areas_2': {
'areas': {
'ids': area_ids or ['ctry19-E92000001', 'ctry19-S92000003'],
'simple_polygons': simple_polygons or [],
},

View File

@@ -1395,7 +1395,7 @@ def test_add_broadcast_area(
service_id=SERVICE_ONE_ID,
broadcast_message_id=fake_uuid,
data={
'areas_2': {
'areas': {
'ids': ['ctry19-E92000001', 'ctry19-S92000003', 'ctry19-W92000004'],
'names': ['England', 'Scotland', 'Wales'],
'simple_polygons': coordinates
@@ -1459,7 +1459,7 @@ def test_add_broadcast_sub_area_district_view(
service_id=SERVICE_ONE_ID,
broadcast_message_id=fake_uuid,
data={
'areas_2': {
'areas': {
'simple_polygons': coordinates,
**expected_data,
}
@@ -1495,7 +1495,7 @@ def test_add_broadcast_sub_area_county_view(
service_id=SERVICE_ONE_ID,
broadcast_message_id=fake_uuid,
data={
'areas_2': {
'areas': {
'simple_polygons': coordinates,
'ids': [
# These two areas are on the broadcast already
@@ -1542,7 +1542,7 @@ def test_remove_broadcast_area_page(
service_id=SERVICE_ONE_ID,
broadcast_message_id=fake_uuid,
data={
'areas_2': {
'areas': {
'simple_polygons': coordinates,
'names': ['Scotland'],
'ids': ['ctry19-S92000003']