Skip to content
Permalink
Browse files

[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 #31328
  • Loading branch information...
kebeclibre committed Feb 21, 2019
1 parent 27f8bb8 commit 6fc08a88ae5151b3378d01a2d963e0c4d3734a32
Showing with 27 additions and 0 deletions.
  1. +1 −0 addons/web_unsplash/models/__init__.py
  2. +26 −0 addons/web_unsplash/models/ir_qweb.py
@@ -3,3 +3,4 @@

from . import res_config_settings
from . import res_users
from . import ir_qweb
@@ -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)

0 comments on commit 6fc08a8

Please sign in to comment.
You can’t perform that action at this time.