django.contrib.sitemaps.views: 39 total statements, 0.0% covered

Generated: Wed 2013-03-13 10:33 CET

Source file: /media/Envs/Envs/filer-gallery/lib/python2.7/site-packages/django/contrib/sitemaps/views.py

Stats: 0 executed, 34 missed, 5 excluded, 14 ignored

  1. from django.contrib.sites.models import get_current_site
  2. from django.core import urlresolvers
  3. from django.core.paginator import EmptyPage, PageNotAnInteger
  4. from django.http import Http404
  5. from django.template.response import TemplateResponse
  6. def index(request, sitemaps,
  7. template_name='sitemap_index.xml', mimetype='application/xml',
  8. sitemap_url_name='django.contrib.sitemaps.views.sitemap'):
  9. req_protocol = 'https' if request.is_secure() else 'http'
  10. req_site = get_current_site(request)
  11. sites = []
  12. for section, site in sitemaps.items():
  13. if callable(site):
  14. site = site()
  15. protocol = req_protocol if site.protocol is None else site.protocol
  16. sitemap_url = urlresolvers.reverse(
  17. sitemap_url_name, kwargs={'section': section})
  18. absolute_url = '%s://%s%s' % (protocol, req_site.domain, sitemap_url)
  19. sites.append(absolute_url)
  20. for page in range(2, site.paginator.num_pages + 1):
  21. sites.append('%s?p=%s' % (absolute_url, page))
  22. return TemplateResponse(request, template_name, {'sitemaps': sites},
  23. content_type=mimetype)
  24. def sitemap(request, sitemaps, section=None,
  25. template_name='sitemap.xml', mimetype='application/xml'):
  26. req_protocol = 'https' if request.is_secure() else 'http'
  27. req_site = get_current_site(request)
  28. if section is not None:
  29. if section not in sitemaps:
  30. raise Http404("No sitemap available for section: %r" % section)
  31. maps = [sitemaps[section]]
  32. else:
  33. maps = sitemaps.values()
  34. page = request.GET.get("p", 1)
  35. urls = []
  36. for site in maps:
  37. try:
  38. if callable(site):
  39. site = site()
  40. urls.extend(site.get_urls(page=page, site=req_site,
  41. protocol=req_protocol))
  42. except EmptyPage:
  43. raise Http404("Page %s empty" % page)
  44. except PageNotAnInteger:
  45. raise Http404("No page '%s'" % page)
  46. return TemplateResponse(request, template_name, {'urlset': urls},
  47. content_type=mimetype)