diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-06-19 09:25:26 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-06-19 09:25:26 +0200 |
commit | 5d3fd33d2362c1c7e04f58cb69a975d23f956d60 (patch) | |
tree | c9054bb8a6df75d8073fa979002eae834159a64d /archaeological_context_records | |
parent | 1964c8cdb844014dd1a96d51188bf30947dabd6a (diff) | |
download | Ishtar-5d3fd33d2362c1c7e04f58cb69a975d23f956d60.tar.bz2 Ishtar-5d3fd33d2362c1c7e04f58cb69a975d23f956d60.zip |
Polygon to multi polygon
Diffstat (limited to 'archaeological_context_records')
5 files changed, 85 insertions, 4 deletions
diff --git a/archaeological_context_records/admin.py b/archaeological_context_records/admin.py index 1f08bc505..493302363 100644 --- a/archaeological_context_records/admin.py +++ b/archaeological_context_records/admin.py @@ -22,7 +22,7 @@ from ajax_select.fields import AutoCompleteSelectField from django import forms from django.contrib import admin -from django.contrib.gis.forms import PointField, PolygonField, OSMWidget +from django.contrib.gis.forms import PointField, MultiPolygonField, OSMWidget from django.utils.translation import ugettext_lazy as _ from ishtar_common.apps import admin_site @@ -48,8 +48,8 @@ class AdminContextRecordForm(forms.ModelForm): exclude = [] point_2d = PointField(label=_(u"Point"), required=False, widget=OSMWidget) - polygon = PolygonField(label=_(u"Polygon"), required=False, - widget=OSMWidget) + multi_polygon = MultiPolygonField(label=_(u"Multi polygon"), required=False, + widget=OSMWidget) operation = AutoCompleteSelectField('operation') parcel = AutoCompleteSelectField('parcel') diff --git a/archaeological_context_records/migrations/0028_auto_20180619_0853.py b/archaeological_context_records/migrations/0028_auto_20180619_0853.py new file mode 100644 index 000000000..61d7698a5 --- /dev/null +++ b/archaeological_context_records/migrations/0028_auto_20180619_0853.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.10 on 2018-06-19 08:53 +from __future__ import unicode_literals + +import django.contrib.gis.db.models.fields +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('archaeological_context_records', '0027_auto_20180601_1555'), + ] + + operations = [ + migrations.AddField( + model_name='contextrecord', + name='multi_polygon', + field=django.contrib.gis.db.models.fields.MultiPolygonField(blank=True, null=True, srid=4326, verbose_name='Multi polygon'), + ), + migrations.AddField( + model_name='historicalcontextrecord', + name='multi_polygon', + field=django.contrib.gis.db.models.fields.MultiPolygonField(blank=True, null=True, srid=4326, verbose_name='Multi polygon'), + ), + ] diff --git a/archaeological_context_records/migrations/0029_polygon_to_multi_polygon.py b/archaeological_context_records/migrations/0029_polygon_to_multi_polygon.py new file mode 100644 index 000000000..0a7c92df6 --- /dev/null +++ b/archaeological_context_records/migrations/0029_polygon_to_multi_polygon.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.10 on 2018-06-19 08:55 +from __future__ import unicode_literals + +from django.db import migrations +from django.contrib.gis.geos import MultiPolygon, fromstr + + +def polygon_to_multipolygon(apps, schema): + ContextRecord = apps.get_model('archaeological_context_records', + 'contextrecord') + HistoricalContextRecord = apps.get_model('archaeological_context_records', + 'historicalcontextrecord') + for cr in ContextRecord.objects.filter(polygon__isnull=False).all(): + cr.multi_polygon = MultiPolygon(fromstr(cr.polygon),) + cr.save() + for cr in HistoricalContextRecord.objects.filter( + polygon__isnull=False).all(): + cr.multi_polygon = MultiPolygon(fromstr(cr.polygon),) + cr.save() + + +class Migration(migrations.Migration): + + dependencies = [ + ('archaeological_context_records', '0028_auto_20180619_0853'), + ] + + operations = [ + migrations.RunPython(polygon_to_multipolygon) + ] diff --git a/archaeological_context_records/migrations/0030_auto_20180619_0911.py b/archaeological_context_records/migrations/0030_auto_20180619_0911.py new file mode 100644 index 000000000..aa1880243 --- /dev/null +++ b/archaeological_context_records/migrations/0030_auto_20180619_0911.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.10 on 2018-06-19 09:11 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('archaeological_context_records', '0029_polygon_to_multi_polygon'), + ] + + operations = [ + migrations.RemoveField( + model_name='contextrecord', + name='polygon', + ), + migrations.RemoveField( + model_name='historicalcontextrecord', + name='polygon', + ), + ] diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py index 8395fb8fe..211be9ade 100644 --- a/archaeological_context_records/models.py +++ b/archaeological_context_records/models.py @@ -325,7 +325,8 @@ class ContextRecord(BulkUpdatedItem, BaseHistorizedItem, 'ContextRecord', through='RecordRelations', blank=True) point_2d = models.PointField(_(u"Point (2D)"), blank=True, null=True) point = models.PointField(_(u"Point (3D)"), blank=True, null=True, dim=3) - polygon = models.PolygonField(_(u"Polygon"), blank=True, null=True) + multi_polygon = models.MultiPolygonField(_(u"Multi polygon"), blank=True, + null=True) documents = models.ManyToManyField( Document, related_name='context_records', verbose_name=_(u"Documents"), blank=True) |