Author: jbronn
Date: 2008-08-25 19:46:30 -0500 (Mon, 25 Aug 2008)
New Revision: 8566

Modified:
   django/trunk/django/contrib/gis/sitemaps/georss.py
   django/trunk/django/contrib/gis/sitemaps/views.py
Log:
Fixes for Geo sitemap errata.


Modified: django/trunk/django/contrib/gis/sitemaps/georss.py
===================================================================
--- django/trunk/django/contrib/gis/sitemaps/georss.py  2008-08-26 00:34:34 UTC 
(rev 8565)
+++ django/trunk/django/contrib/gis/sitemaps/georss.py  2008-08-26 00:46:30 UTC 
(rev 8566)
@@ -41,7 +41,7 @@
         This method is overrridden so the appropriate `geo_format` attribute
         is placed on each URL element.
         """
-        urls = Sitemap.get_urls(self)
+        urls = Sitemap.get_urls(self, page=page)
         for url in urls: url['geo_format'] = 'georss'
         return urls
 

Modified: django/trunk/django/contrib/gis/sitemaps/views.py
===================================================================
--- django/trunk/django/contrib/gis/sitemaps/views.py   2008-08-26 00:34:34 UTC 
(rev 8565)
+++ django/trunk/django/contrib/gis/sitemaps/views.py   2008-08-26 00:46:30 UTC 
(rev 8566)
@@ -5,13 +5,11 @@
 from django.core import urlresolvers
 from django.core.paginator import EmptyPage, PageNotAnInteger
 from django.db.models import get_model
+from django.contrib.gis.db.models.fields import GeometryField
 from django.utils.encoding import smart_str
 
 from django.contrib.gis.shortcuts import render_to_kml, render_to_kmz
 
-class KMLNotFound(Exception):
-    pass
-
 def index(request, sitemaps):
     """
     This view generates a sitemap index that uses the proper view
@@ -71,8 +69,16 @@
     placemarks = []
     klass = get_model(label, model)
     if not klass:
-        raise KMLNotFound("You must supply a valid app.model label.  Got 
%s.%s" % (label, model))
+        raise Http404('You must supply a valid app label and module name.  Got 
"%s.%s"' % (label, model))
 
+    if field_name:
+        try:
+            info = klass._meta.get_field_by_name(field_name)
+            if not isinstance(info[0], GeometryField):
+                raise Exception
+        except:
+            raise Http404('Invalid geometry field.')
+
     if SpatialBackend.postgis:
         # PostGIS will take care of transformation.
         placemarks = klass._default_manager.kml(field_name=field_name)


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to