summaryrefslogtreecommitdiff
path: root/addons/website/controllers/main.py
diff options
context:
space:
mode:
authorJeremy Kersten <jke@odoo.com>2016-12-02 13:12:43 +0100
committerJeremy Kersten <jke@odoo.com>2016-12-02 15:31:06 +0100
commit8f48baeda61fb85027f2a43f43b6ccb8600e2bd2 (patch)
treee1541553745fc347ff415c982cbac49bb196f6a7 /addons/website/controllers/main.py
parent4aed1e1747591a2218005837f99b2cf8d8e21343 (diff)
[FIX] website: fix sitemap for multi website
Diffstat (limited to 'addons/website/controllers/main.py')
-rw-r--r--addons/website/controllers/main.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/addons/website/controllers/main.py b/addons/website/controllers/main.py
index a6a2e4092a5..423e61493c2 100644
--- a/addons/website/controllers/main.py
+++ b/addons/website/controllers/main.py
@@ -98,6 +98,7 @@ class Website(openerp.addons.web.controllers.main.Home):
@http.route('/sitemap.xml', type='http', auth="public", website=True)
def sitemap_xml_index(self):
+ current_website = request.website
cr, uid, context = request.cr, openerp.SUPERUSER_ID, request.context
ira = request.registry['ir.attachment']
iuv = request.registry['ir.ui.view']
@@ -112,8 +113,8 @@ class Website(openerp.addons.web.controllers.main.Home):
name=url,
url=url,
), context=context)
-
- sitemap = ira.search_read(cr, uid, [('url', '=' , '/sitemap.xml'), ('type', '=', 'binary')], ('datas', 'create_date'), context=context)
+ dom = [('url', '=' , '/sitemap-%d.xml' % current_website.id), ('type', '=', 'binary')]
+ sitemap = ira.search_read(cr, uid, dom, ('datas', 'create_date'), context=context)
if sitemap:
# Check if stored version is still valid
server_format = openerp.tools.misc.DEFAULT_SERVER_DATETIME_FORMAT
@@ -124,7 +125,9 @@ class Website(openerp.addons.web.controllers.main.Home):
if not content:
# Remove all sitemaps in ir.attachments as we're going to regenerated them
- sitemap_ids = ira.search(cr, uid, [('url', '=like' , '/sitemap%.xml'), ('type', '=', 'binary')], context=context)
+ dom = [('type', '=', 'binary'), '|', ('url', '=like' , '/sitemap-%d-%%.xml' % current_website.id),
+ ('url', '=' , '/sitemap-%d.xml' % current_website.id)]
+ sitemap_ids = ira.search(cr, uid, dom, context=context)
if sitemap_ids:
ira.unlink(cr, uid, sitemap_ids, context=context)
@@ -139,20 +142,21 @@ class Website(openerp.addons.web.controllers.main.Home):
if urls.strip():
content = iuv.render(cr, uid, 'website.sitemap_xml', dict(content=urls), context=context)
pages += 1
- last = create_sitemap('/sitemap-%d.xml' % pages, content)
+ last = create_sitemap('/sitemap-%d-%d.xml' % (current_website.id, pages), content)
else:
break
if not pages:
return request.not_found()
elif pages == 1:
- ira.write(cr, uid, last, dict(url="/sitemap.xml", name="/sitemap.xml"), context=context)
+ # rename the -id-page.xml => -id.xml
+ ira.write(cr, uid, last, dict(url="/sitemap-%d.xml" % current_website.id, name="/sitemap-%d.xml" % current_website.id), 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-%d.xml' % current_website.id, content)
return request.make_response(content, [('Content-Type', mimetype)])