mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-17 10:42:25 -05:00
Add command to migrate custom broadcast areas
Unlike broadcasts created in the Admin app, these are only expected
to have "names" and "simple_polygons" in their areas column [1].
The migration command in the Admin app [2] isn't suitable for these
broadcasts as it would try to aggregate their areas, etc.
I've put a conditional on "areas" being present (in the areas column)
so this command doesn't pick up any new custom broadcasts.
[1]: 023a06d5fbo
[2]: https://github.com/alphagov/notifications-admin/pull/4011
This commit is contained in:
@@ -914,3 +914,26 @@ def populate_annual_billing_with_defaults(year, missing_services_only):
|
||||
|
||||
for service in active_services:
|
||||
set_default_free_allowance_for_service(service, year)
|
||||
|
||||
|
||||
@notify_command(name='tmp-backfill-custom-broadcast-areas')
|
||||
def tmp_backfill_custom_broadcast_areas():
|
||||
from app import db
|
||||
from app.models import BroadcastMessage
|
||||
|
||||
custom_broadcasts = BroadcastMessage.query \
|
||||
.filter(BroadcastMessage.api_key_id != None) \
|
||||
.filter(BroadcastMessage.areas.has_key('areas')) # noqa
|
||||
|
||||
for broadcast in custom_broadcasts:
|
||||
old_areas = broadcast.areas
|
||||
|
||||
new_areas = {
|
||||
'names': old_areas['areas'],
|
||||
'simple_polygons': old_areas['simple_polygons']
|
||||
}
|
||||
|
||||
broadcast.areas = new_areas
|
||||
|
||||
print(f'Migrating {broadcast.id}')
|
||||
db.session.commit()
|
||||
|
||||
Reference in New Issue
Block a user