diff options
5 files changed, 163 insertions, 1 deletions
diff --git a/archaeological_context_records/migrations/0040_auto_20190206_1423.py b/archaeological_context_records/migrations/0040_auto_20190206_1423.py new file mode 100644 index 000000000..b3c5a6837 --- /dev/null +++ b/archaeological_context_records/migrations/0040_auto_20190206_1423.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.10 on 2019-02-06 14:23 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('archaeological_context_records', '0039_auto_20190122_1550'), + ] + + operations = [ + migrations.AddField( + model_name='contextrecord', + name='multi_polygon_source', + field=models.CharField(blank=True, choices=[(b'T', 'Commune'), (b'P', 'Precise')], max_length=1, null=True, verbose_name='Multi-polygon source'), + ), + migrations.AddField( + model_name='contextrecord', + name='point_source', + field=models.CharField(blank=True, choices=[(b'T', 'Commune'), (b'P', 'Precise')], max_length=1, null=True, verbose_name='Point source'), + ), + migrations.AddField( + model_name='historicalcontextrecord', + name='multi_polygon_source', + field=models.CharField(blank=True, choices=[(b'T', 'Commune'), (b'P', 'Precise')], max_length=1, null=True, verbose_name='Multi-polygon source'), + ), + migrations.AddField( + model_name='historicalcontextrecord', + name='point_source', + field=models.CharField(blank=True, choices=[(b'T', 'Commune'), (b'P', 'Precise')], max_length=1, null=True, verbose_name='Point source'), + ), + ] diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py index cc51c3b7a..190baffad 100644 --- a/archaeological_context_records/models.py +++ b/archaeological_context_records/models.py @@ -486,7 +486,30 @@ class ContextRecord(BulkUpdatedItem, DocumentItem, BaseHistorizedItem, verbose_name=_(u"Excavation technique")) related_context_records = models.ManyToManyField( 'ContextRecord', through='RecordRelations', blank=True) - + x = models.FloatField(_(u'X'), blank=True, null=True) + y = models.FloatField(_(u'Y'), blank=True, null=True) + z = models.FloatField(_(u'Z'), blank=True, null=True) + estimated_error_x = models.FloatField(_(u'Estimated error for X'), + blank=True, null=True) + estimated_error_y = models.FloatField(_(u'Estimated error for Y'), + blank=True, null=True) + estimated_error_z = models.FloatField(_(u'Estimated error for Z'), + blank=True, null=True) + spatial_reference_system = models.ForeignKey( + SpatialReferenceSystem, verbose_name=_(u"Spatial Reference System"), + blank=True, null=True) + point_2d = models.PointField(_(u"Point (2D)"), blank=True, null=True) + point = models.PointField(_(u"Point (3D)"), blank=True, null=True, dim=3) + point_source = models.CharField( + _(u"Point source"), + choices=(('T', _(u"Town")), ('P', _(u"Precise"))), max_length=1, + blank=True, null=True) + multi_polygon = models.MultiPolygonField(_(u"Multi polygon"), blank=True, + null=True) + multi_polygon_source = models.CharField( + _(u"Multi-polygon source"), + choices=(('T', _(u"Town")), ('P', _(u"Precise"))), max_length=1, + blank=True, null=True) documents = models.ManyToManyField( Document, related_name='context_records', verbose_name=_(u"Documents"), blank=True) diff --git a/archaeological_finds/migrations/0060_auto_20190206_1423.py b/archaeological_finds/migrations/0060_auto_20190206_1423.py new file mode 100644 index 000000000..6ddfa5145 --- /dev/null +++ b/archaeological_finds/migrations/0060_auto_20190206_1423.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.10 on 2019-02-06 14:23 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('archaeological_finds', '0059_auto_20190204_1134'), + ] + + operations = [ + migrations.AddField( + model_name='basefind', + name='multi_polygon_source', + field=models.CharField(blank=True, choices=[(b'T', 'Commune'), (b'P', 'Precise')], max_length=1, null=True, verbose_name='Multi-polygon source'), + ), + migrations.AddField( + model_name='basefind', + name='point_source', + field=models.CharField(blank=True, choices=[(b'T', 'Commune'), (b'P', 'Precise')], max_length=1, null=True, verbose_name='Point source'), + ), + migrations.AddField( + model_name='historicalbasefind', + name='multi_polygon_source', + field=models.CharField(blank=True, choices=[(b'T', 'Commune'), (b'P', 'Precise')], max_length=1, null=True, verbose_name='Multi-polygon source'), + ), + migrations.AddField( + model_name='historicalbasefind', + name='point_source', + field=models.CharField(blank=True, choices=[(b'T', 'Commune'), (b'P', 'Precise')], max_length=1, null=True, verbose_name='Point source'), + ), + ] diff --git a/archaeological_operations/migrations/0050_auto_20190206_1423.py b/archaeological_operations/migrations/0050_auto_20190206_1423.py new file mode 100644 index 000000000..a632b6059 --- /dev/null +++ b/archaeological_operations/migrations/0050_auto_20190206_1423.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.10 on 2019-02-06 14:23 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('archaeological_operations', '0049_auto_20190122_1621'), + ] + + operations = [ + migrations.AddField( + model_name='archaeologicalsite', + name='multi_polygon_source', + field=models.CharField(blank=True, choices=[(b'T', 'Commune'), (b'P', 'Precise')], max_length=1, null=True, verbose_name='Multi-polygon source'), + ), + migrations.AddField( + model_name='archaeologicalsite', + name='point_source', + field=models.CharField(blank=True, choices=[(b'T', 'Commune'), (b'P', 'Precise')], max_length=1, null=True, verbose_name='Point source'), + ), + migrations.AddField( + model_name='historicalarchaeologicalsite', + name='multi_polygon_source', + field=models.CharField(blank=True, choices=[(b'T', 'Commune'), (b'P', 'Precise')], max_length=1, null=True, verbose_name='Multi-polygon source'), + ), + migrations.AddField( + model_name='historicalarchaeologicalsite', + name='point_source', + field=models.CharField(blank=True, choices=[(b'T', 'Commune'), (b'P', 'Precise')], max_length=1, null=True, verbose_name='Point source'), + ), + migrations.AddField( + model_name='historicaloperation', + name='multi_polygon_source', + field=models.CharField(blank=True, choices=[(b'T', 'Commune'), (b'P', 'Precise')], max_length=1, null=True, verbose_name='Multi-polygon source'), + ), + migrations.AddField( + model_name='historicaloperation', + name='point_source', + field=models.CharField(blank=True, choices=[(b'T', 'Commune'), (b'P', 'Precise')], max_length=1, null=True, verbose_name='Point source'), + ), + migrations.AddField( + model_name='operation', + name='multi_polygon_source', + field=models.CharField(blank=True, choices=[(b'T', 'Commune'), (b'P', 'Precise')], max_length=1, null=True, verbose_name='Multi-polygon source'), + ), + migrations.AddField( + model_name='operation', + name='point_source', + field=models.CharField(blank=True, choices=[(b'T', 'Commune'), (b'P', 'Precise')], max_length=1, null=True, verbose_name='Point source'), + ), + ] diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 98be07abd..219589acf 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -398,6 +398,13 @@ class ArchaeologicalSite(DocumentItem, BaseHistorizedItem, QRCodeItem, return return q.all()[0].poly, self._meta.verbose_name + def get_town_polygons(self): + q = self.towns.filter(limit__isnull=False).annotate( + poly=Union('limit')).all() + if not q.count(): + return None + return q.all()[0].poly + def _get_base_image_path(self): return u"{}/{}".format(self.SLUG, self.reference) @@ -1135,6 +1142,13 @@ class Operation(ClosedItem, DocumentItem, BaseHistorizedItem, QRCodeItem, return None return q.all()[0].poly, self._meta.verbose_name + def get_town_polygons(self): + q = self.towns.filter(limit__isnull=False).annotate( + poly=Union('limit')).all() + if not q.count(): + return None + return q.all()[0].poly + def context_record_relations_q(self): from archaeological_context_records.models \ import RecordRelations as CRRL |