summaryrefslogtreecommitdiff
path: root/ishtar_common/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r--ishtar_common/models.py21
1 files changed, 20 insertions, 1 deletions
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.