diff options
| author | Fabien Meghazi <fme@openerp.com> | 2014-05-14 17:11:16 +0200 |
|---|---|---|
| committer | Fabien Meghazi <fme@openerp.com> | 2014-05-14 17:11:16 +0200 |
| commit | 2e0e242c82dfd9a8a386cbb7a9cc02202a97a1a7 (patch) | |
| tree | 86b2c6f31b2799422a0f7f5df0742c30b978be62 | |
| parent | 230a9c34b1609bfed3ab5853fdee0e9d28a2a893 (diff) | |
[REV] Revert lazy sitemap
| -rw-r--r-- | addons/website/controllers/main.py | 23 | ||||
| -rw-r--r-- | addons/website/views/website_templates.xml | 3 |
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"><?xml version="1.0" encoding="UTF-8"?> <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)"> |
