[FIX] website: rename sitemap-1 to sitemap if only one file.

Old code was duplicating the sitemap if less than LOC_PER_SITEMAP urls
This commit is contained in:
Jeremy Kersten
2016-02-01 19:07:18 +01:00
parent 45f70b9f5f
commit 0c37a8d523
+4 -7
View File
@@ -105,7 +105,7 @@ class Website(openerp.addons.web.controllers.main.Home):
content = None
def create_sitemap(url, content):
ira.create(cr, uid, dict(
return ira.create(cr, uid, dict(
datas=content.encode('base64'),
mimetype=mimetype,
type='binary',
@@ -129,7 +129,6 @@ class Website(openerp.addons.web.controllers.main.Home):
ira.unlink(cr, uid, sitemap_ids, context=context)
pages = 0
first_page = None
locs = request.website.sudo(user=request.website.user_id.id).enumerate_pages()
while True:
values = {
@@ -139,23 +138,21 @@ class Website(openerp.addons.web.controllers.main.Home):
urls = iuv.render(cr, uid, 'website.sitemap_locs', values, context=context)
if urls.strip():
page = iuv.render(cr, uid, 'website.sitemap_xml', dict(content=urls), context=context)
if not first_page:
first_page = page
pages += 1
create_sitemap('/sitemap-%d.xml' % pages, page)
last = create_sitemap('/sitemap-%d.xml' % pages, page)
else:
break
if not pages:
return request.not_found()
elif pages == 1:
content = first_page
ira.write(cr, uid, last, dict(url="/sitemap.xml", name="/sitemap.xml"), context=context)
else:
# Sitemaps must be split in several smaller files with a sitemap index
content = iuv.render(cr, uid, 'website.sitemap_index_xml', dict(
pages=range(1, pages + 1),
url_root=request.httprequest.url_root,
), context=context)
create_sitemap('/sitemap.xml', content)
create_sitemap('/sitemap.xml', content)
return request.make_response(content, [('Content-Type', mimetype)])