mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-19 14:09:20 -04:00
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:
@@ -88,7 +88,7 @@ class BroadcastMessage(JSONModel):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def areas(self):
|
def areas(self):
|
||||||
polygons = self._dict['areas_2']['simple_polygons']
|
polygons = self._dict['areas']['simple_polygons']
|
||||||
library_areas = self.get_areas(self.area_ids)
|
library_areas = self.get_areas(self.area_ids)
|
||||||
|
|
||||||
if library_areas:
|
if library_areas:
|
||||||
@@ -106,11 +106,11 @@ class BroadcastMessage(JSONModel):
|
|||||||
|
|
||||||
@property
|
@property
|
||||||
def area_ids(self):
|
def area_ids(self):
|
||||||
return self._dict['areas_2']['ids']
|
return self._dict['areas']['ids']
|
||||||
|
|
||||||
@area_ids.setter
|
@area_ids.setter
|
||||||
def area_ids(self, value):
|
def area_ids(self, value):
|
||||||
self._dict['areas_2']['ids'] = value
|
self._dict['areas']['ids'] = value
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def ancestor_areas(self):
|
def ancestor_areas(self):
|
||||||
@@ -230,7 +230,7 @@ class BroadcastMessage(JSONModel):
|
|||||||
self._update_areas()
|
self._update_areas()
|
||||||
|
|
||||||
def remove_area(self, area_id):
|
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()
|
self._update_areas()
|
||||||
|
|
||||||
def _set_status_to(self, status):
|
def _set_status_to(self, status):
|
||||||
@@ -241,13 +241,13 @@ class BroadcastMessage(JSONModel):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def _update_areas(self, force_override=False):
|
def _update_areas(self, force_override=False):
|
||||||
areas_2 = {
|
areas = {
|
||||||
'ids': self.area_ids,
|
'ids': self.area_ids,
|
||||||
'names': [area.name for area in self.areas],
|
'names': [area.name for area in self.areas],
|
||||||
'simple_polygons': self.simple_polygons.as_coordinate_pairs_lat_long
|
'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"
|
# TEMPORARY: while we migrate to a new format for "areas"
|
||||||
if force_override:
|
if force_override:
|
||||||
|
|||||||
@@ -696,7 +696,7 @@ def broadcast_message_json(
|
|||||||
'reference': reference,
|
'reference': reference,
|
||||||
|
|
||||||
'personalisation': {},
|
'personalisation': {},
|
||||||
'areas_2': {
|
'areas': {
|
||||||
'ids': area_ids or ['ctry19-E92000001', 'ctry19-S92000003'],
|
'ids': area_ids or ['ctry19-E92000001', 'ctry19-S92000003'],
|
||||||
'simple_polygons': simple_polygons or [],
|
'simple_polygons': simple_polygons or [],
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1395,7 +1395,7 @@ def test_add_broadcast_area(
|
|||||||
service_id=SERVICE_ONE_ID,
|
service_id=SERVICE_ONE_ID,
|
||||||
broadcast_message_id=fake_uuid,
|
broadcast_message_id=fake_uuid,
|
||||||
data={
|
data={
|
||||||
'areas_2': {
|
'areas': {
|
||||||
'ids': ['ctry19-E92000001', 'ctry19-S92000003', 'ctry19-W92000004'],
|
'ids': ['ctry19-E92000001', 'ctry19-S92000003', 'ctry19-W92000004'],
|
||||||
'names': ['England', 'Scotland', 'Wales'],
|
'names': ['England', 'Scotland', 'Wales'],
|
||||||
'simple_polygons': coordinates
|
'simple_polygons': coordinates
|
||||||
@@ -1459,7 +1459,7 @@ def test_add_broadcast_sub_area_district_view(
|
|||||||
service_id=SERVICE_ONE_ID,
|
service_id=SERVICE_ONE_ID,
|
||||||
broadcast_message_id=fake_uuid,
|
broadcast_message_id=fake_uuid,
|
||||||
data={
|
data={
|
||||||
'areas_2': {
|
'areas': {
|
||||||
'simple_polygons': coordinates,
|
'simple_polygons': coordinates,
|
||||||
**expected_data,
|
**expected_data,
|
||||||
}
|
}
|
||||||
@@ -1495,7 +1495,7 @@ def test_add_broadcast_sub_area_county_view(
|
|||||||
service_id=SERVICE_ONE_ID,
|
service_id=SERVICE_ONE_ID,
|
||||||
broadcast_message_id=fake_uuid,
|
broadcast_message_id=fake_uuid,
|
||||||
data={
|
data={
|
||||||
'areas_2': {
|
'areas': {
|
||||||
'simple_polygons': coordinates,
|
'simple_polygons': coordinates,
|
||||||
'ids': [
|
'ids': [
|
||||||
# These two areas are on the broadcast already
|
# These two areas are on the broadcast already
|
||||||
@@ -1542,7 +1542,7 @@ def test_remove_broadcast_area_page(
|
|||||||
service_id=SERVICE_ONE_ID,
|
service_id=SERVICE_ONE_ID,
|
||||||
broadcast_message_id=fake_uuid,
|
broadcast_message_id=fake_uuid,
|
||||||
data={
|
data={
|
||||||
'areas_2': {
|
'areas': {
|
||||||
'simple_polygons': coordinates,
|
'simple_polygons': coordinates,
|
||||||
'names': ['Scotland'],
|
'names': ['Scotland'],
|
||||||
'ids': ['ctry19-S92000003']
|
'ids': ['ctry19-S92000003']
|
||||||
|
|||||||
Reference in New Issue
Block a user