[IMP] base: avoid unnecessary exists in Contact HTML formatter

Protactively checking exists() seems unnecessary, it's likely that the
widget would be called on an empty recordset but seems very unlikely
that it'll be called on a missing record. The commit which added the
exists() call performs significant refactoring/rewrite and doesn't
explain why this exists() call would be useful.

Since exists is not cached and qweb field converters are not batched,
saves a large number of queries when formatting a series of addresses
e.g. with 99 hr.job, /jobs goes from ~170 queries and ~100ms spent in
SQL to ~70 queries and ~60ms spent in SQL.

Though the total performance improvement is very limited as even with
odoo/odoo#32985 the endpoint takes ~700ms (with the aforementioned 99
hr.job visible to the current user).

closes odoo/odoo#32986

Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
This commit is contained in:
Xavier Morel
2019-04-26 12:24:04 +00:00
parent e716fabbdc
commit 617ba2887a
+1 -1
View File
@@ -637,7 +637,7 @@ class Contact(models.AbstractModel):
@api.model
def value_to_html(self, value, options):
if not value.exists():
if not value:
return False
opf = options and options.get('fields') or ["name", "address", "phone", "mobile", "email"]