[FIX] web_unsplash: save image for res_model

Go on the website, create a new product from there
Click on the image to change it, select an unsplash image

Save your product.

Beforer this commit, the image wasn't saved because the qweb field image
did not know what to do with /unsplash/ urls

After this commit, the image is saved on the product (or any object...)

OPW 1936191

closes odoo/odoo#31328
This commit is contained in:
Lucas Perais (lpe)
2019-02-22 08:14:10 +00:00
parent 27f8bb8913
commit 6fc08a88ae
2 changed files with 27 additions and 0 deletions
+1
View File
@@ -3,3 +3,4 @@
from . import res_config_settings
from . import res_users
from . import ir_qweb
+26
View File
@@ -0,0 +1,26 @@
from werkzeug import urls
from odoo import models, api
class Image(models.AbstractModel):
_inherit = 'ir.qweb.field.image'
@api.model
def from_html(self, model, field, element):
url = element.find('img').get('src')
url_object = urls.url_parse(url)
if url_object.path.startswith('/unsplash/'):
res_id = element.get('data-oe-id')
if res_id:
res_id = int(res_id)
res_model = model._name
attachment = self.env['ir.attachment'].search([
('res_model', '=', res_model),
('res_id', '=', res_id),
('url', '=', url_object.path),
], limit=1)
return attachment.datas
return super(Image, self).from_html(model, field, element)