[FIX] website: fix logo not supporting new image url format
In a recent commit, we decided to change the image url format generated by the media-dialog to leverage browser caching using unique. Unfortunately, when saving an img tag to a binary field, the url parsing did not support this new url format, causing a traceback when changing the website logo and attempting to save. closes odoo/odoo#48914 X-original-commit: 9c618c7f903f1a0b32e067cfd713cd39762250f9 Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
This commit is contained in:
@@ -359,16 +359,18 @@ class Image(models.AbstractModel):
|
||||
|
||||
url_object = urls.url_parse(url)
|
||||
if url_object.path.startswith('/web/image'):
|
||||
# url might be /web/image/<model>/<id>[_<checksum>]/<field>[/<width>x<height>]
|
||||
fragments = url_object.path.split('/')
|
||||
query = url_object.decode_query()
|
||||
if fragments[3].isdigit():
|
||||
url_id = fragments[3].split('-')[0]
|
||||
# ir.attachment image urls: /web/image/<id>[-<checksum>][/...]
|
||||
if url_id.isdigit():
|
||||
model = 'ir.attachment'
|
||||
oid = fragments[3]
|
||||
oid = url_id
|
||||
field = 'datas'
|
||||
# url of binary field on model: /web/image/<model>/<id>/<field>[/...]
|
||||
else:
|
||||
model = query.get('model', fragments[3])
|
||||
oid = query.get('id', fragments[4].split('_')[0])
|
||||
oid = query.get('id', fragments[4])
|
||||
field = query.get('field', fragments[5])
|
||||
item = self.env[model].browse(int(oid))
|
||||
return item[field]
|
||||
|
||||
Reference in New Issue
Block a user