38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
"""Seed data for atolls and islands.
|
|
|
|
Only the areas SAR Link actually serves are listed. Add more here (or in the
|
|
admin) as coverage grows; `seed()` is idempotent, so re-running is safe.
|
|
"""
|
|
|
|
ATOLLS = [
|
|
{
|
|
"name": "Faafu",
|
|
"code": "F",
|
|
"islands": ["Dharanboodhoo"],
|
|
},
|
|
]
|
|
|
|
|
|
def seed(atoll_model, island_model) -> tuple[int, int]:
|
|
"""Create any missing atolls/islands. Returns (atolls, islands) created.
|
|
|
|
Takes the models as arguments so both the management command and the data
|
|
migration can call it, the latter with historical models.
|
|
"""
|
|
atolls_created = 0
|
|
islands_created = 0
|
|
|
|
for entry in ATOLLS:
|
|
atoll, created = atoll_model.objects.get_or_create(
|
|
name=entry["name"], defaults={"code": entry.get("code", "")}
|
|
)
|
|
atolls_created += int(created)
|
|
|
|
for island_name in entry["islands"]:
|
|
_, created = island_model.objects.get_or_create(
|
|
atoll=atoll, name=island_name
|
|
)
|
|
islands_created += int(created)
|
|
|
|
return atolls_created, islands_created
|