Skip to content

Commit 2d49160

Browse files
committed
add optional local and alt name fields
1 parent 567968c commit 2d49160

File tree

3 files changed

+55
-4
lines changed

3 files changed

+55
-4
lines changed

api/management/commands/import-admin2-data.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,9 +71,13 @@ def handle(self, *args, **options):
7171

7272
# loop through each feature in the shapefile
7373
for feature in data[0]:
74-
code = feature.get("pcode")
74+
code = feature.get("code") if 'code' in feature.fields else feature.get("pcode")
7575
name = feature.get("name") if 'name' in feature.fields else feature.get("shapeName")
7676
admin1_id = feature.get("district_id") if "district_id" in feature.fields else feature.get("admin1_id")
77+
local_name = feature.get("local_name") if "local_name" in feature.fields else None
78+
local_name_code = feature.get("local_name_code") if "local_name_code" in feature.fields else None
79+
alternate_name = feature.get("alternate_name") if "alternate_name" in feature.fields else None
80+
alternate_name_code = feature.get("alternate_name_code") if "alternate_name_code" in feature.fields else None
7781

7882
#FIXME: must make sure code and admin1_id are not null before continuing
7983

@@ -112,14 +116,23 @@ def handle(self, *args, **options):
112116

113117
@transaction.atomic
114118
def add_admin2(self, options, import_missing, feature, geom, centroid, bbox):
115-
code = feature.get("pcode")
119+
code = feature.get("code") if 'code' in feature.fields else feature.get("pcode")
116120
name = feature.get("name") if 'name' in feature.fields else feature.get("shapeName")
117121
admin1_id = feature.get("district_id") if "district_id" in feature.fields else feature.get("admin1_id")
122+
local_name = feature.get("local_name") if "local_name" in feature.fields else None
123+
local_name_code = feature.get("local_name_code") if "local_name_code" in feature.fields else None
124+
alternate_name = feature.get("alternate_name") if "alternate_name" in feature.fields else None
125+
alternate_name_code = feature.get("alternate_name_code") if "alternate_name_code" in feature.fields else None
118126
admin2 = Admin2()
119127
admin2.code = code
120128
admin2.name = name
121129
admin2.centroid = centroid
122130
admin2.bbox = bbox
131+
admin2.local_name = local_name
132+
admin2.local_name_code = local_name_code
133+
admin2.alternate_name = alternate_name
134+
admin2.alternate_name_code = alternate_name_code
135+
123136
try:
124137
admin1 = District.objects.get(id=admin1_id)
125138
admin2.admin1_id = admin1.id
@@ -132,7 +145,7 @@ def add_admin2(self, options, import_missing, feature, geom, centroid, bbox):
132145
try:
133146
print("importing", admin2.name)
134147
admin2.save()
135-
if options["update-geom"]:
148+
if options["update_geom"]:
136149
self.update_geom(admin2, geom)
137150
except IntegrityError as e:
138151
print(f"Duplicate object {admin2.name}")
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Generated by Django 3.2.16 on 2022-10-28 09:40
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('api', '0158_alter_admin2geoms_geom'),
10+
]
11+
12+
operations = [
13+
migrations.AddField(
14+
model_name='admin2',
15+
name='alternate_name',
16+
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='Alternate Name'),
17+
),
18+
migrations.AddField(
19+
model_name='admin2',
20+
name='alternate_name_code',
21+
field=models.CharField(blank=True, max_length=10, null=True, verbose_name='Alternate Name Language Code'),
22+
),
23+
migrations.AddField(
24+
model_name='admin2',
25+
name='local_name',
26+
field=models.CharField(blank=True, max_length=100, null=True, verbose_name='Local Name'),
27+
),
28+
migrations.AddField(
29+
model_name='admin2',
30+
name='local_name_code',
31+
field=models.CharField(blank=True, max_length=10, null=True, verbose_name='Local Name Language Code'),
32+
),
33+
]

api/models.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -268,7 +268,12 @@ class Admin2(models.Model):
268268
name = models.CharField(verbose_name=_('name'), max_length=100)
269269
code = models.CharField(verbose_name=_('code'), max_length=64, unique=True)
270270
centroid = models.PointField(srid=4326, blank=True, null=True)
271-
bbox = models.PolygonField(srid=4326, blank=True, null=True)
271+
bbox = models.PolygonField(srid=4326, blank=True, null=True)
272+
local_name = models.CharField(verbose_name=_('Local Name'), max_length=100, blank=True, null=True)
273+
local_name_code = models.CharField(verbose_name=_('Local Name Language Code'), max_length=10, blank=True, null=True)
274+
alternate_name = models.CharField(verbose_name=_('Alternate Name'), max_length=100, blank=True, null=True)
275+
alternate_name_code = models.CharField(verbose_name=_('Alternate Name Language Code'), max_length=10, blank=True, null=True)
276+
272277

273278
class Meta:
274279
verbose_name = _('admin2')

0 commit comments

Comments
 (0)