diff options
| author | Claude Paroz <claude@2xlibre.net> | 2015-04-24 18:16:40 +0200 |
|---|---|---|
| committer | Claude Paroz <claude@2xlibre.net> | 2015-04-24 20:30:23 +0200 |
| commit | a37dcfd0a38cff24eb4fb5e3858791aa5428c853 (patch) | |
| tree | 4892ae0e738035aa31701e3d26c5a4dba61bb8ec /django | |
| parent | b69515385279458b30a51ed73be28edc7407c1fa (diff) | |
Delayed GDAL check for OSMGeoAdmin
Diffstat (limited to 'django')
| -rw-r--r-- | django/contrib/gis/admin/__init__.py | 15 | ||||
| -rw-r--r-- | django/contrib/gis/admin/options.py | 26 |
2 files changed, 17 insertions, 24 deletions
diff --git a/django/contrib/gis/admin/__init__.py b/django/contrib/gis/admin/__init__.py index fdf7166306..e37226bc17 100644 --- a/django/contrib/gis/admin/__init__.py +++ b/django/contrib/gis/admin/__init__.py @@ -4,18 +4,5 @@ from django.contrib.admin import ( # NOQA: flake8 detects only the last __all__ HORIZONTAL, VERTICAL, ) # Geographic admin options classes and widgets. -from django.contrib.gis.admin.options import GeoModelAdmin # NOQA +from django.contrib.gis.admin.options import GeoModelAdmin, OSMGeoAdmin # NOQA from django.contrib.gis.admin.widgets import OpenLayersWidget # NOQA - -__all__ = [ - "autodiscover", "site", "AdminSite", "ModelAdmin", "StackedInline", - "TabularInline", "HORIZONTAL", "VERTICAL", - "GeoModelAdmin", "OpenLayersWidget", "HAS_OSM", -] - -try: - from django.contrib.gis.admin.options import OSMGeoAdmin - HAS_OSM = True - __all__ += ['OSMGeoAdmin'] -except ImportError: - HAS_OSM = False diff --git a/django/contrib/gis/admin/options.py b/django/contrib/gis/admin/options.py index f9412336e3..dca46829fd 100644 --- a/django/contrib/gis/admin/options.py +++ b/django/contrib/gis/admin/options.py @@ -2,6 +2,9 @@ from django.contrib.admin import ModelAdmin from django.contrib.gis.admin.widgets import OpenLayersWidget from django.contrib.gis.db import models from django.contrib.gis.gdal import HAS_GDAL, OGRGeomType +from django.core.exceptions import ImproperlyConfigured + +spherical_mercator_srid = 3857 class GeoModelAdmin(ModelAdmin): @@ -123,14 +126,17 @@ class GeoModelAdmin(ModelAdmin): } return OLMap -if HAS_GDAL: - spherical_mercator_srid = 3857 - class OSMGeoAdmin(GeoModelAdmin): - map_template = 'gis/admin/osm.html' - num_zoom = 20 - map_srid = spherical_mercator_srid - max_extent = '-20037508,-20037508,20037508,20037508' - max_resolution = '156543.0339' - point_zoom = num_zoom - 6 - units = 'm' +class OSMGeoAdmin(GeoModelAdmin): + map_template = 'gis/admin/osm.html' + num_zoom = 20 + map_srid = spherical_mercator_srid + max_extent = '-20037508,-20037508,20037508,20037508' + max_resolution = '156543.0339' + point_zoom = num_zoom - 6 + units = 'm' + + def __init__(self, *args): + if not HAS_GDAL: + raise ImproperlyConfigured("OSMGeoAdmin is not usable without GDAL libs installed") + super(OSMGeoAdmin, self).__init__(*args) |
