summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabien Meghazi <fme@openerp.com>2014-05-14 17:11:16 +0200
committerFabien Meghazi <fme@openerp.com>2014-05-14 17:11:16 +0200
commit2e0e242c82dfd9a8a386cbb7a9cc02202a97a1a7 (patch)
tree86b2c6f31b2799422a0f7f5df0742c30b978be62
parent230a9c34b1609bfed3ab5853fdee0e9d28a2a893 (diff)
[REV] Revert lazy sitemap
-rw-r--r--addons/website/controllers/main.py23
-rw-r--r--addons/website/views/website_templates.xml3
2 files changed, 9 insertions, 17 deletions
diff --git a/addons/website/controllers/main.py b/addons/website/controllers/main.py
index 79e5dfb0147..a002abc8c88 100644
--- a/addons/website/controllers/main.py
+++ b/addons/website/controllers/main.py
@@ -2,7 +2,6 @@
import cStringIO
import json
import logging
-import math
import re
from sys import maxint
@@ -70,14 +69,12 @@ class Website(openerp.addons.web.controllers.main.Home):
@http.route('/sitemap.xml', type='http', auth="public", website=True)
def sitemap_xml_index(self):
- count = 0
- for loc in request.website.enumerate_pages():
- count += 1
- if count <= LOC_PER_SITEMAP:
- return self.__sitemap_xml(0)
+ pages = list(request.website.enumerate_pages())
+ if len(pages)<=LOC_PER_SITEMAP:
+ return self.__sitemap_xml(pages, 0)
# Sitemaps must be split in several smaller files with a sitemap index
values = {
- 'pages': range(int(math.ceil(float(count) / LOC_PER_SITEMAP))),
+ 'pages': range(len(pages)/LOC_PER_SITEMAP+1),
'url_root': request.httprequest.url_root
}
headers = {
@@ -87,16 +84,12 @@ class Website(openerp.addons.web.controllers.main.Home):
@http.route('/sitemap-<int:page>.xml', type='http', auth="public", website=True)
def sitemap_xml(self, page):
- return self.__sitemap_xml(page)
+ pages = list(request.website.enumerate_pages())
+ return self.__sitemap_xml(pages, page)
- def __sitemap_xml(self, index=0):
- locs = request.website.enumerate_pages()
- feed = index * LOC_PER_SITEMAP
- for i in xrange(feed):
- locs.next()
+ def __sitemap_xml(self, pages, index=0):
values = {
- 'locs': locs,
- 'iter': xrange(LOC_PER_SITEMAP),
+ 'pages': pages[index*LOC_PER_SITEMAP:(index+1)*LOC_PER_SITEMAP],
'url_root': request.httprequest.url_root.rstrip('/')
}
headers = {
diff --git a/addons/website/views/website_templates.xml b/addons/website/views/website_templates.xml
index d79dcbcd32a..b9f33ef1c6b 100644
--- a/addons/website/views/website_templates.xml
+++ b/addons/website/views/website_templates.xml
@@ -699,8 +699,7 @@ Sitemap: <t t-esc="url_root"/>sitemap.xml
<template id="sitemap_xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
- <url t-foreach="iter" t-as="i">
- <t t-set="page" t-value="locs.next()"/>
+ <url t-foreach="pages" t-as="page">
<loc><t t-esc="url_root"/><t t-esc="page['loc']"/></loc><t t-if="page.get('lastmod', False)">
<lastmod t-esc="page['lastmod']"/></t><t t-if="page.get('priority', False)">
<priority t-esc="page['priority']"/></t><t t-if="page.get('changefreq', False)">