Changeset 8215 for django/branches/gis/django/contrib/sitemaps/views.py
- Timestamp:
- 08/05/08 12:15:33 (5 months ago)
- Files:
-
- django/branches/gis (modified) (1 prop)
- django/branches/gis/django/contrib/sitemaps/views.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/branches/gis
- Property svnmerge-integrated changed from /django/trunk:1-7978 to /django/trunk:1-8214
django/branches/gis/django/contrib/sitemaps/views.py
r6018 r8215 4 4 from django.core import urlresolvers 5 5 from django.utils.encoding import smart_str 6 from django.core.paginator import EmptyPage, PageNotAnInteger 6 7 7 8 def index(request, sitemaps): … … 9 10 sites = [] 10 11 protocol = request.is_secure() and 'https' or 'http' 11 for section in sitemaps.keys(): 12 for section, site in sitemaps.items(): 13 if callable(site): 14 pages = site().paginator.num_pages 15 else: 16 pages = site.paginator.num_pages 12 17 sitemap_url = urlresolvers.reverse('django.contrib.sitemaps.views.sitemap', kwargs={'section': section}) 13 18 sites.append('%s://%s%s' % (protocol, current_site.domain, sitemap_url)) 19 if pages > 1: 20 for page in range(2, pages+1): 21 sites.append('%s://%s%s?p=%s' % (protocol, current_site.domain, sitemap_url, page)) 14 22 xml = loader.render_to_string('sitemap_index.xml', {'sitemaps': sites}) 15 23 return HttpResponse(xml, mimetype='application/xml') … … 23 31 else: 24 32 maps = sitemaps.values() 33 page = request.GET.get("p", 1) 25 34 for site in maps: 26 if callable(site): 27 urls.extend(site().get_urls()) 28 else: 29 urls.extend(site.get_urls()) 35 try: 36 if callable(site): 37 urls.extend(site().get_urls(page)) 38 else: 39 urls.extend(site.get_urls(page)) 40 except EmptyPage: 41 raise Http404("Page %s empty" % page) 42 except PageNotAnInteger: 43 raise Http404("No page '%s'" % page) 30 44 xml = smart_str(loader.render_to_string('sitemap.xml', {'urlset': urls})) 31 45 return HttpResponse(xml, mimetype='application/xml')
