from django.core.exceptions import ImproperlyConfigured
from django.db import models


class DummyField(models.Field):
    def __init__(self, dim=None, srid=None, geography=None, spatial_index=True, *args, **kwargs):
        super(DummyField, self).__init__(*args, **kwargs)


try:
    from django.contrib.gis.db import models
    # Store a version of the original raster field for testing the exception
    # raised if GDAL isn't installed.
    models.OriginalRasterField = models.RasterField
except ImproperlyConfigured:
    models.GeoManager = models.Manager
    models.GeometryField = DummyField
    models.LineStringField = DummyField
    models.MultiPointField = DummyField
    models.MultiPolygonField = DummyField
    models.PointField = DummyField
    models.PolygonField = DummyField
    models.RasterField = DummyField

try:
    models.RasterField()
except ImproperlyConfigured:
    models.RasterField = DummyField
