diff options
Diffstat (limited to 'archaeological_finds')
-rw-r--r-- | archaeological_finds/admin.py | 6 | ||||
-rw-r--r-- | archaeological_finds/migrations/0030_auto_20180619_0853.py | 26 | ||||
-rw-r--r-- | archaeological_finds/migrations/0031_polygon_to_multi_polygon.py | 29 | ||||
-rw-r--r-- | archaeological_finds/migrations/0032_auto_20180619_0911.py | 23 | ||||
-rw-r--r-- | archaeological_finds/models_finds.py | 3 |
5 files changed, 83 insertions, 4 deletions
diff --git a/archaeological_finds/admin.py b/archaeological_finds/admin.py index 0e2b31b20..c85ac2425 100644 --- a/archaeological_finds/admin.py +++ b/archaeological_finds/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, \ +from django.contrib.gis.forms import PointField, MultiPolygonField, \ LineStringField, OSMWidget from django.utils.translation import ugettext_lazy as _ @@ -40,8 +40,8 @@ class AdminBaseFindForm(forms.ModelForm): widget=OSMWidget) line = LineStringField(label=_(u"Line"), required=False, widget=OSMWidget) - polygon = PolygonField(label=_(u"Polygon"), required=False, - widget=OSMWidget) + multi_polygon = MultiPolygonField(label=_(u"Multi polygon"), required=False, + widget=OSMWidget) context_record = AutoCompleteSelectField('context_record') diff --git a/archaeological_finds/migrations/0030_auto_20180619_0853.py b/archaeological_finds/migrations/0030_auto_20180619_0853.py new file mode 100644 index 000000000..3e198a313 --- /dev/null +++ b/archaeological_finds/migrations/0030_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_finds', '0029_auto_20180601_1555'), + ] + + operations = [ + migrations.AddField( + model_name='basefind', + 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='historicalbasefind', + 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_finds/migrations/0031_polygon_to_multi_polygon.py b/archaeological_finds/migrations/0031_polygon_to_multi_polygon.py new file mode 100644 index 000000000..85252e9a5 --- /dev/null +++ b/archaeological_finds/migrations/0031_polygon_to_multi_polygon.py @@ -0,0 +1,29 @@ +# -*- 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): + BaseFind = apps.get_model('archaeological_finds', 'basefind') + HistoricalBaseFind = apps.get_model( + 'archaeological_finds', 'historicalbasefind') + for bf in BaseFind.objects.filter(polygon__isnull=False).all(): + bf.multi_polygon = MultiPolygon(fromstr(bf.polygon),) + bf.save() + for bf in HistoricalBaseFind.objects.filter(polygon__isnull=False).all(): + bf.multi_polygon = MultiPolygon(fromstr(bf.polygon),) + bf.save() + + +class Migration(migrations.Migration): + + dependencies = [ + ('archaeological_finds', '0030_auto_20180619_0853'), + ] + + operations = [ + migrations.RunPython(polygon_to_multipolygon) + ] diff --git a/archaeological_finds/migrations/0032_auto_20180619_0911.py b/archaeological_finds/migrations/0032_auto_20180619_0911.py new file mode 100644 index 000000000..65b104079 --- /dev/null +++ b/archaeological_finds/migrations/0032_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_finds', '0031_polygon_to_multi_polygon'), + ] + + operations = [ + migrations.RemoveField( + model_name='basefind', + name='polygon', + ), + migrations.RemoveField( + model_name='historicalbasefind', + name='polygon', + ), + ] diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index 90df95530..1ebfb6a15 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -272,7 +272,8 @@ class BaseFind(BulkUpdatedItem, BaseHistorizedItem, OwnPerms): point_2d = models.PointField(_(u"Point (2D)"), blank=True, null=True) point = models.PointField(_(u"Point (3D)"), blank=True, null=True, dim=3) line = models.LineStringField(_(u"Line"), blank=True, null=True) - polygon = models.PolygonField(_(u"Polygon"), blank=True, null=True) + multi_polygon = models.MultiPolygonField(_(u"Multi polygon"), blank=True, + null=True) cache_short_id = models.TextField( _(u"Short ID"), blank=True, null=True, db_index=True, help_text=_(u"Cached value - do not edit")) |