Skip to content

Commit 844ccfb

Browse files
Merge pull request #1854 from IFRCGo/feature/molnix-1812
Build connection between surge alerts and deployments
2 parents 995b287 + 1a40a49 commit 844ccfb

File tree

3 files changed

+37
-0
lines changed

3 files changed

+37
-0
lines changed

api/management/commands/sync_molnix.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,15 @@ def sync_deployments(molnix_deployments, molnix_api, countries):
197197
logger.warning('Did not import Deployment with Molnix ID %d. Invalid Event.' % md['id'])
198198
continue
199199

200+
try:
201+
if md['position_id']:
202+
surge_alert = SurgeAlert.objects.get(molnix_id=md['position_id'])
203+
else:
204+
surge_alert = None
205+
except:
206+
logger.warning('Did not find SurgeAlert with Molnix position_id %d.' % md['position_id'])
207+
continue
208+
200209
personnel.deployment = deployment
201210
personnel.molnix_id = md['id']
202211
if md['hidden'] == 1:
@@ -221,6 +230,7 @@ def sync_deployments(molnix_deployments, molnix_api, countries):
221230
country_to = None
222231
personnel.country_to = country_to
223232
country_from = None
233+
personnel.surge_alert = surge_alert
224234

225235
# Sometimes the `incoming` value from Molnix is null.
226236
if md['incoming']:
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Generated by Django 3.2.20 on 2023-07-26 10:12
2+
3+
from django.db import migrations, models
4+
import django.db.models.deletion
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
dependencies = [
10+
('notifications', '0013_auto_20230410_0720'),
11+
('deployments', '0081_merge_20230614_0804'),
12+
]
13+
14+
operations = [
15+
migrations.AddField(
16+
model_name='personnel',
17+
name='surge_alert',
18+
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='notifications.surgealert', verbose_name='surge alert'),
19+
),
20+
]

deployments/models.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,13 @@ class StatusChoices(models.TextChoices):
224224
verbose_name=_("molnix status"), max_length=8, choices=StatusChoices.choices, default=StatusChoices.ACTIVE
225225
)
226226
is_active = models.BooleanField(default=True) # Active in Molnix API
227+
surge_alert = models.ForeignKey( # position_id in Molnix API
228+
'notifications.SurgeAlert', # import as string to avoid circular import (MolnixTag)
229+
verbose_name=_("surge alert"),
230+
null=True,
231+
blank=True,
232+
on_delete=models.PROTECT,
233+
)
227234

228235
def __str__(self):
229236
return "%s: %s - %s" % (self.type.upper(), self.name, self.role)

0 commit comments

Comments
 (0)