From e0ba61d9fb6f15c9df5d9cec4b5a6b602dc45899 Mon Sep 17 00:00:00 2001
From: ryv-odoo
Date: Thu, 10 Oct 2019 13:24:27 +0000
Subject: [PATCH] [REM] website_links: remove favicon, icon_src for performance
The link tracker model (link.tracker) contained favicon (store)
and icon_src computed fields. Computing favicon took
{3-6.5%} of installing odoo (with demo data) due to syncronous http
call to a external link (google).
Moreover, these fields had no sense to be store in odoo
and only used in one template. This template was modified to
display the same information (icon) as before but without storing fields
and with a lazy loading of icons.
TASK_ID: 2083715
closes odoo/odoo#38405
Signed-off-by: Thibault Delavallee (tde)
---
addons/link_tracker/models/link_tracker.py | 17 -----------------
.../tests/test_mass_mailing_shortener.py | 9 +--------
addons/test_mail_full/tests/test_sms_sms.py | 7 -------
.../static/img/default_favicon.png | Bin 0 -> 492 bytes
.../static/src/xml/recent_link.xml | 3 +--
5 files changed, 2 insertions(+), 34 deletions(-)
create mode 100644 addons/website_links/static/img/default_favicon.png
diff --git a/addons/link_tracker/models/link_tracker.py b/addons/link_tracker/models/link_tracker.py
index bf4d25fe465..e623b4e92f6 100644
--- a/addons/link_tracker/models/link_tracker.py
+++ b/addons/link_tracker/models/link_tracker.py
@@ -44,8 +44,6 @@ class LinkTracker(models.Model):
redirected_url = fields.Char(string='Redirected URL', compute='_compute_redirected_url')
short_url_host = fields.Char(string='Host of the short URL', compute='_compute_short_url_host')
title = fields.Char(string='Page Title', store=True)
- favicon = fields.Char(string='Favicon', compute='_compute_favicon', store=True)
- icon_src = fields.Char(string='Favicon Source', compute='_compute_icon_src')
# Tracking
link_code_ids = fields.One2many('link.tracker.code', 'link_id', string='Codes')
code = fields.Char(string='Short URL code', compute='_compute_code')
@@ -72,11 +70,6 @@ class LinkTracker(models.Model):
record = self.env['link.tracker.code'].search([('link_id', '=', tracker.id)], limit=1, order='id DESC')
tracker.code = record.code
- @api.depends('favicon')
- def _compute_icon_src(self):
- for tracker in self:
- tracker.icon_src = 'data:image/png;base64,' + tracker.favicon
-
@api.depends('url')
def _compute_redirected_url(self):
for tracker in self:
@@ -101,16 +94,6 @@ class LinkTracker(models.Model):
return title
- @api.depends('url')
- def _compute_favicon(self):
- for tracker in self:
- try:
- icon = requests.get('http://www.google.com/s2/favicons', params={'domain': tracker.url}, timeout=5).content
- icon_base64 = base64.b64encode(icon).replace(b"\n", b"").decode('ascii')
- except:
- icon_base64 = 'iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsSAAALEgHS3X78AAACiElEQVQ4EaVTzU8TURCf2tJuS7tQtlRb6UKBIkQwkRRSEzkQgyEc6lkOKgcOph78Y+CgjXjDs2i44FXY9AMTlQRUELZapVlouy3d7kKtb0Zr0MSLTvL2zb75eL838xtTvV6H/xELBptMJojeXLCXyobnyog4YhzXYvmCFi6qVSfaeRdXdrfaU1areV5KykmX06rcvzumjY/1ggkR3Jh+bNf1mr8v1D5bLuvR3qDgFbvbBJYIrE1mCIoCrKxsHuzK+Rzvsi29+6DEbTZz9unijEYI8ObBgXOzlcrx9OAlXyDYKUCzwwrDQx1wVDGg089Dt+gR3mxmhcUnaWeoxwMbm/vzDFzmDEKMMNhquRqduT1KwXiGt0vre6iSeAUHNDE0d26NBtAXY9BACQyjFusKuL2Ry+IPb/Y9ZglwuVscdHaknUChqLF/O4jn3V5dP4mhgRJgwSYm+gV0Oi3XrvYB30yvhGa7BS70eGFHPoTJyQHhMK+F0ZesRVVznvXw5Ixv7/C10moEo6OZXbWvlFAF9FVZDOqEABUMRIkMd8GnLwVWg9/RkJF9sA4oDfYQAuzzjqzwvnaRUFxn/X2ZlmGLXAE7AL52B4xHgqAUqrC1nSNuoJkQtLkdqReszz/9aRvq90NOKdOS1nch8TpL555WDp49f3uAMXhACRjD5j4ykuCtf5PP7Fm1b0DIsl/VHGezzP1KwOiZQobFF9YyjSRYQETRENSlVzI8iK9mWlzckpSSCQHVALmN9Az1euDho9Xo8vKGd2rqooA8yBcrwHgCqYR0kMkWci08t/R+W4ljDCanWTg9TJGwGNaNk3vYZ7VUdeKsYJGFNkfSzjXNrSX20s4/h6kB81/271ghG17l+rPTAAAAAElFTkSuQmCC'
- tracker.favicon = icon_base64
-
@api.model
def create(self, vals):
create_vals = vals.copy()
diff --git a/addons/mass_mailing/tests/test_mass_mailing_shortener.py b/addons/mass_mailing/tests/test_mass_mailing_shortener.py
index 37aff377a0b..c755a6754c4 100644
--- a/addons/mass_mailing/tests/test_mass_mailing_shortener.py
+++ b/addons/mass_mailing/tests/test_mass_mailing_shortener.py
@@ -23,16 +23,9 @@ class TestMassMailingShortener(common.TransactionCase):
def _get_title_from_url(u):
return "Hello"
- def _compute_favicon():
- # 1px to avoid real request
- return 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8DwHwAFBQIAX8jx0gAAAABJRU5ErkJggg=='
-
- patcher = patch('odoo.addons.link_tracker.models.link_tracker.LinkTracker._compute_favicon', wraps=_compute_favicon)
- patcher2 = patch('odoo.addons.link_tracker.models.link_tracker.LinkTracker._get_title_from_url', wraps=_get_title_from_url)
+ patcher = patch('odoo.addons.link_tracker.models.link_tracker.LinkTracker._get_title_from_url', wraps=_get_title_from_url)
patcher.start()
- patcher2.start()
self.addCleanup(patcher.stop)
- self.addCleanup(patcher2.stop)
def test_00_test_mass_mailing_shortener(self):
mailing_list_A = self.env['mailing.list'].create({
diff --git a/addons/test_mail_full/tests/test_sms_sms.py b/addons/test_mail_full/tests/test_sms_sms.py
index ed71654ba4a..8be4881e64c 100644
--- a/addons/test_mail_full/tests/test_sms_sms.py
+++ b/addons/test_mail_full/tests/test_sms_sms.py
@@ -18,20 +18,13 @@ class LinkTrackerMock(common.BaseCase):
def setUp(self):
super(LinkTrackerMock, self).setUp()
- def _compute_favicon():
- # 1px to avoid real request
- return 'iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8DwHwAFBQIAX8jx0gAAAABJRU5ErkJggg=='
-
def _get_title_from_url(u):
return "Test_TITLE"
self.env['ir.config_parameter'].sudo().set_param('web.base.url', 'https://test.odoo.com')
- link_tracker_favicon_patch = patch('odoo.addons.link_tracker.models.link_tracker.LinkTracker._compute_favicon', wraps=_compute_favicon)
link_tracker_title_patch = patch('odoo.addons.link_tracker.models.link_tracker.LinkTracker._get_title_from_url', wraps=_get_title_from_url)
- link_tracker_favicon_patch.start()
link_tracker_title_patch.start()
- self.addCleanup(link_tracker_favicon_patch.stop)
self.addCleanup(link_tracker_title_patch.stop)
self.utm_c = self.env.ref('utm.utm_campaign_fall_drive')
diff --git a/addons/website_links/static/img/default_favicon.png b/addons/website_links/static/img/default_favicon.png
new file mode 100644
index 0000000000000000000000000000000000000000..1878008c34a32d192de91e508af49135c028235a
GIT binary patch
literal 492
zcmVdcNs#Exb!_v9(!7I3_CxCqe23XD$
z?Vmgl;`H)`@Q#TbI{VbcgChh`nwewyDl&nLqp4>dhYi&!EO0A%GzvJ3#u#yn>ajE5dtV%^fQqgn-(#;Ad<9
zju7Y*Ku(qeEkFQRm2v)$h5&}dOXUO9CxE#?Kq(8b)u9EF1JC^6;s_>;ci6^*#t_5V
z5GB6OJSG-Sh=*Tz%e6;fV~@N>B}@WkLjpK3NMKCt*%~8Sl^RBZ!clicks
-
-
+