diff options
| author | Jeremy Kersten <jke@odoo.com> | 2016-12-02 13:12:43 +0100 |
|---|---|---|
| committer | Jeremy Kersten <jke@odoo.com> | 2016-12-02 15:31:06 +0100 |
| commit | 8f48baeda61fb85027f2a43f43b6ccb8600e2bd2 (patch) | |
| tree | e1541553745fc347ff415c982cbac49bb196f6a7 /addons/website/controllers/main.py | |
| parent | 4aed1e1747591a2218005837f99b2cf8d8e21343 (diff) | |
[FIX] website: fix sitemap for multi website
Diffstat (limited to 'addons/website/controllers/main.py')
| -rw-r--r-- | addons/website/controllers/main.py | 16 |
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)]) |
