31 lines
977 B
Python
31 lines
977 B
Python
|
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):
|
||
|
if element.find('.//img') is None:
|
||
|
return False
|
||
|
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),
|
||
|
('public', '=', True),
|
||
|
('url', '=', url_object.path),
|
||
|
], limit=1)
|
||
|
return attachment.datas
|
||
|
|
||
|
return super(Image, self).from_html(model, field, element)
|