summaryrefslogtreecommitdiff
path: root/addons/web_unsplash/models/ir_qweb.py
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/web_unsplash/models/ir_qweb.py
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/web_unsplash/models/ir_qweb.py')
-rw-r--r--addons/web_unsplash/models/ir_qweb.py30
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)