app/django/contrib/gis/tests/layermap/models.py
author Sverre Rabbelier <srabbelier@gmail.com>
Wed, 05 Nov 2008 23:32:59 +0000
changeset 443 94568ac6e3e1
parent 323 ff1a9aa48cfd
permissions -rw-r--r--
Implements base.Logic functions in home_settings, site_settings and work This patch implements the base.Logic funtions needed for making logic/key_name.py obsolete. This patch defines the needed functions in home_settings, site_settings and work. All modules in logic/models now have these functions defined. logic/models/site_settings.py now inherits from logic/models/home_settings.py because of their similar connection in the corresponding models. Please note that the self._keyName for these two modules still points to logic/key_name.py since entity_type is still used in views/home.py. A partial_path and link_name were added to HomeSettings as requested by SRabbelier.

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',
                 }