[FIX] base: fix similar attachments
While searching for a similar attachment, as the fallback url pattern is the same as the url pattern, the condition is never satisfied. With this commit, the ignore_params parameter is used to find a similar attachment. closes odoo/odoo#162654 Signed-off-by: Xavier Dollé (xdo) <xdo@odoo.com>
This commit is contained in:
committed by
Xavier-Do
parent
bfffd2ee7c
commit
29fb4ac761
@@ -252,7 +252,12 @@ class TestWebAssets(odoo.tests.HttpCase):
|
||||
)
|
||||
|
||||
# generate base assets
|
||||
self.assertEqual(self.url_open(base_url, allow_redirects=False).status_code, 200)
|
||||
with self.assertLogs() as logs:
|
||||
self.assertEqual(self.url_open(base_url, allow_redirects=False).status_code, 200)
|
||||
self.assertEqual(
|
||||
f'Found a similar attachment for /web/assets/{unique}/web.assets_frontend.min.js, copying from /web/assets/{website_id}/{unique}/web.assets_frontend.min.js',
|
||||
logs.records[0].message,
|
||||
'The attachment was expected to be linked to an existing one')
|
||||
self.assertEqual(
|
||||
self.env['ir.attachment'].search([('url', '=like', '%web.assets_frontend.min.js')]).mapped('url'),
|
||||
[base_url_versioned, website_url_versioned],
|
||||
|
||||
@@ -240,18 +240,14 @@ class AssetsBundle(object):
|
||||
fallback_url_pattern = self.get_asset_url(
|
||||
unique=unique,
|
||||
extension=extension,
|
||||
ignore_params=True,
|
||||
)
|
||||
|
||||
self.env.cr.execute(query, [SUPERUSER_ID, fallback_url_pattern])
|
||||
similar_attachment_ids = [r[0] for r in self.env.cr.fetchall()]
|
||||
if similar_attachment_ids:
|
||||
similar = self.env['ir.attachment'].sudo().browse(similar_attachment_ids)
|
||||
_logger.info('Found a similar attachment for %s, copying from %s', url_pattern, similar.url)
|
||||
url = self.get_asset_url(
|
||||
unique=unique,
|
||||
extension=extension,
|
||||
ignore_params=True,
|
||||
)
|
||||
url = url_pattern
|
||||
values = {
|
||||
'name': similar.name,
|
||||
'mimetype': similar.mimetype,
|
||||
@@ -264,7 +260,7 @@ class AssetsBundle(object):
|
||||
}
|
||||
attachment = self.env['ir.attachment'].with_user(SUPERUSER_ID).create(values)
|
||||
attachment_id = attachment.id
|
||||
self.clean_attachments(extension)
|
||||
self._clean_attachments(extension, url)
|
||||
|
||||
return self.env['ir.attachment'].sudo().browse(attachment_id)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user