From 7940a5e8379f822da0514e3f9068f9b3221331e3 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 6 Feb 2019 19:08:42 +0100 Subject: Sheet - Map: WIP - manage vector source for polygons --- ishtar_common/models.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'ishtar_common/models.py') diff --git a/ishtar_common/models.py b/ishtar_common/models.py index ea6bd3bf0..bd6c38ff1 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -47,6 +47,7 @@ from django.contrib.postgres.search import SearchVectorField, SearchVector from django.core.cache import cache from django.core.exceptions import ObjectDoesNotExist, ValidationError from django.core.files.uploadedfile import SimpleUploadedFile +from django.core.serializers import serialize from django.core.urlresolvers import reverse, NoReverseMatch from django.core.validators import validate_slug from django.db import connection @@ -1609,7 +1610,25 @@ class DocumentItem(object): return actions -class BaseHistorizedItem(DocumentItem, FullSearch, Imported, JsonData, +class GeoItem(object): + @property + def point_2d_geojson(self): + if not hasattr(self, 'point_2d'): + return "" + return serialize('geojson', self.__class__.objects.filter(pk=self.pk), + geometry_field='point_2d', + fields=('cache_complete_id',)) + + @property + def multi_polygon_geojson(self): + if not hasattr(self, 'multi_polygon'): + return "" + return serialize('geojson', self.__class__.objects.filter(pk=self.pk), + geometry_field='multi_polygon', + fields=('cache_complete_id',)) + + +class BaseHistorizedItem(DocumentItem, FullSearch, Imported, JsonData, GeoItem, FixAssociated): """ Historized item with external ID management. -- cgit v1.2.3