diff options
Diffstat (limited to 'addons/web_unsplash/models/ir_qweb.py')
| -rw-r--r-- | addons/web_unsplash/models/ir_qweb.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/addons/web_unsplash/models/ir_qweb.py b/addons/web_unsplash/models/ir_qweb.py new file mode 100644 index 00000000..9b0f60a4 --- /dev/null +++ b/addons/web_unsplash/models/ir_qweb.py @@ -0,0 +1,30 @@ +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) |
