summaryrefslogtreecommitdiff
path: root/django/contrib/gis/forms/widgets.py
diff options
context:
space:
mode:
Diffstat (limited to 'django/contrib/gis/forms/widgets.py')
-rw-r--r--django/contrib/gis/forms/widgets.py59
1 files changed, 34 insertions, 25 deletions
diff --git a/django/contrib/gis/forms/widgets.py b/django/contrib/gis/forms/widgets.py
index e38f173a98..0f53ee2e96 100644
--- a/django/contrib/gis/forms/widgets.py
+++ b/django/contrib/gis/forms/widgets.py
@@ -7,7 +7,7 @@ from django.contrib.gis.geos import GEOSException, GEOSGeometry
from django.forms.widgets import Widget
from django.utils import translation
-logger = logging.getLogger('django.contrib.gis')
+logger = logging.getLogger("django.contrib.gis")
class BaseGeometryWidget(Widget):
@@ -15,24 +15,25 @@ class BaseGeometryWidget(Widget):
The base class for rich geometry widgets.
Render a map using the WKT of the geometry.
"""
- geom_type = 'GEOMETRY'
+
+ geom_type = "GEOMETRY"
map_srid = 4326
map_width = 600
map_height = 400
display_raw = False
supports_3d = False
- template_name = '' # set on subclasses
+ template_name = "" # set on subclasses
def __init__(self, attrs=None):
self.attrs = {}
- for key in ('geom_type', 'map_srid', 'map_width', 'map_height', 'display_raw'):
+ for key in ("geom_type", "map_srid", "map_width", "map_height", "display_raw"):
self.attrs[key] = getattr(self, key)
if attrs:
self.attrs.update(attrs)
def serialize(self, value):
- return value.wkt if value else ''
+ return value.wkt if value else ""
def deserialize(self, value):
try:
@@ -58,40 +59,47 @@ class BaseGeometryWidget(Widget):
except gdal.GDALException as err:
logger.error(
"Error transforming geometry from srid '%s' to srid '%s' (%s)",
- value.srid, self.map_srid, err
+ value.srid,
+ self.map_srid,
+ err,
)
- geom_type = gdal.OGRGeomType(self.attrs['geom_type']).name
- context.update(self.build_attrs(self.attrs, {
- 'name': name,
- 'module': 'geodjango_%s' % name.replace('-', '_'), # JS-safe
- 'serialized': self.serialize(value),
- 'geom_type': 'Geometry' if geom_type == 'Unknown' else geom_type,
- 'STATIC_URL': settings.STATIC_URL,
- 'LANGUAGE_BIDI': translation.get_language_bidi(),
- **(attrs or {}),
- }))
+ geom_type = gdal.OGRGeomType(self.attrs["geom_type"]).name
+ context.update(
+ self.build_attrs(
+ self.attrs,
+ {
+ "name": name,
+ "module": "geodjango_%s" % name.replace("-", "_"), # JS-safe
+ "serialized": self.serialize(value),
+ "geom_type": "Geometry" if geom_type == "Unknown" else geom_type,
+ "STATIC_URL": settings.STATIC_URL,
+ "LANGUAGE_BIDI": translation.get_language_bidi(),
+ **(attrs or {}),
+ },
+ )
+ )
return context
class OpenLayersWidget(BaseGeometryWidget):
- template_name = 'gis/openlayers.html'
+ template_name = "gis/openlayers.html"
map_srid = 3857
class Media:
css = {
- 'all': (
- 'https://cdnjs.cloudflare.com/ajax/libs/ol3/4.6.5/ol.css',
- 'gis/css/ol3.css',
+ "all": (
+ "https://cdnjs.cloudflare.com/ajax/libs/ol3/4.6.5/ol.css",
+ "gis/css/ol3.css",
)
}
js = (
- 'https://cdnjs.cloudflare.com/ajax/libs/ol3/4.6.5/ol.js',
- 'gis/js/OLMapWidget.js',
+ "https://cdnjs.cloudflare.com/ajax/libs/ol3/4.6.5/ol.js",
+ "gis/js/OLMapWidget.js",
)
def serialize(self, value):
- return value.json if value else ''
+ return value.json if value else ""
def deserialize(self, value):
geom = super().deserialize(value)
@@ -105,14 +113,15 @@ class OSMWidget(OpenLayersWidget):
"""
An OpenLayers/OpenStreetMap-based widget.
"""
- template_name = 'gis/openlayers-osm.html'
+
+ template_name = "gis/openlayers-osm.html"
default_lon = 5
default_lat = 47
default_zoom = 12
def __init__(self, attrs=None):
super().__init__()
- for key in ('default_lon', 'default_lat', 'default_zoom'):
+ for key in ("default_lon", "default_lat", "default_zoom"):
self.attrs[key] = getattr(self, key)
if attrs:
self.attrs.update(attrs)