app/django/contrib/gis/tests/layermap/models.py
author Lennard de Rijk <ljvderijk@gmail.com>
Fri, 23 Jan 2009 09:08:26 +0000
changeset 913 db38e7680d1c
parent 323 ff1a9aa48cfd
permissions -rw-r--r--
Added state property to role model. This can be used when for instance a member has been removed from a club or a when a program has been marked inactive. Certain roles would then be shown on the upcoming roles page marked as previous roles. This would give us the archiving capability that was shown in the mockup. Patch by: Lennard de Rijk Reviewd by: to-be-reviewed

from django.contrib.gis.db import models

class State(models.Model):
    name = models.CharField(max_length=20)
    objects = models.GeoManager()

class County(models.Model):
    name = models.CharField(max_length=25)
    state = models.ForeignKey(State)
    mpoly = models.MultiPolygonField(srid=4269) # Multipolygon in NAD83
    objects = models.GeoManager()

class CountyFeat(models.Model):
    name = models.CharField(max_length=25)
    poly = models.PolygonField(srid=4269)
    objects = models.GeoManager()

class City(models.Model):
    name = models.CharField(max_length=25)
    population = models.IntegerField()
    density = models.DecimalField(max_digits=7, decimal_places=1)
    dt = models.DateField()
    point = models.PointField()
    objects = models.GeoManager()

class Interstate(models.Model):
    name = models.CharField(max_length=20)
    length = models.DecimalField(max_digits=6, decimal_places=2)
    path = models.LineStringField()
    objects = models.GeoManager()

# Mapping dictionaries for the models above.
co_mapping = {'name' : 'Name',
              'state' : {'name' : 'State'}, # ForeignKey's use another mapping dictionary for the _related_ Model (State in this case).
              'mpoly' : 'MULTIPOLYGON', # Will convert POLYGON features into MULTIPOLYGONS.
              }

cofeat_mapping = {'name' : 'Name',
                  'poly' : 'POLYGON',
                  }

city_mapping = {'name' : 'Name',
                'population' : 'Population',
                'density' : 'Density',
                'dt' : 'Created',
                'point' : 'POINT',
                }

inter_mapping = {'name' : 'Name',
                 'length' : 'Length',
                 'path' : 'LINESTRING',
                 }