From 23c88405a9e10933d073fc87630e5e9784be135c Mon Sep 17 00:00:00 2001 From: Romain Derie Date: Tue, 24 Aug 2021 16:23:13 +0000 Subject: [PATCH] [FIX] base: restore delivery and shipping image on contact in kanban MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since c53724ebc35150d, the contact image in contact kanban view for a shipping or delivery contact type would be the regular placeholder instead of the truck or money image. Now, by using the new avatar system, we restore that behavior. + we also use that new avatar system to cleanup some code in the kanban in the form view (`child_ids` field in `Contacts & Addresses` tab). That part was working fine but wasn't using the new system and needed extra code. closes odoo/odoo#75709 X-original-commit: a97cbdd033391af75628bed50accfef11c73687c Signed-off-by: Sébastien Theys (seb) Signed-off-by: Romain Derie --- .../models/res_partner.py | 5 ++++ addons/delivery_mondialrelay/views/views.xml | 13 ---------- odoo/addons/base/models/avatar_mixin.py | 5 +++- odoo/addons/base/models/res_partner.py | 21 +++++++++------- odoo/addons/base/views/res_partner_views.xml | 24 +++++-------------- 5 files changed, 27 insertions(+), 41 deletions(-) diff --git a/addons/delivery_mondialrelay/models/res_partner.py b/addons/delivery_mondialrelay/models/res_partner.py index 8952d9e5c5b..3c734794159 100644 --- a/addons/delivery_mondialrelay/models/res_partner.py +++ b/addons/delivery_mondialrelay/models/res_partner.py @@ -37,3 +37,8 @@ class ResPartnerMondialRelay(models.Model): 'parent_id': self.id, }) return partner + + def _avatar_get_placeholder_path(self): + if self.is_mondialrelay: + return "delivery_mondialrelay/static/src/img/truck_mr.png" + return super()._avatar_get_placeholder_path() diff --git a/addons/delivery_mondialrelay/views/views.xml b/addons/delivery_mondialrelay/views/views.xml index 56566676f51..56aad18b8c0 100644 --- a/addons/delivery_mondialrelay/views/views.xml +++ b/addons/delivery_mondialrelay/views/views.xml @@ -24,18 +24,5 @@ - - view_partner_form_mondialrelay - res.partner - - - - - - - - - - diff --git a/odoo/addons/base/models/avatar_mixin.py b/odoo/addons/base/models/avatar_mixin.py index f372a61a8c1..40f1ae23784 100644 --- a/odoo/addons/base/models/avatar_mixin.py +++ b/odoo/addons/base/models/avatar_mixin.py @@ -72,5 +72,8 @@ class AvatarMixin(models.AbstractModel): "" ).encode()) + def _avatar_get_placeholder_path(self): + return "base/static/img/avatar_grey.png" + def _avatar_get_placeholder(self): - return b64encode(file_open("base/static/img/avatar_grey.png", 'rb').read()) + return b64encode(file_open(self._avatar_get_placeholder_path(), 'rb').read()) diff --git a/odoo/addons/base/models/res_partner.py b/odoo/addons/base/models/res_partner.py index 5eb079742f1..6cdec30b498 100644 --- a/odoo/addons/base/models/res_partner.py +++ b/odoo/addons/base/models/res_partner.py @@ -238,23 +238,23 @@ class Partner(models.Model): ('check_name', "CHECK( (type='contact' AND name IS NOT NULL) or (type!='contact') )", 'Contacts require a name'), ] - @api.depends('name', 'user_ids.share', 'image_1920', 'is_company') + @api.depends('name', 'user_ids.share', 'image_1920', 'is_company', 'type') def _compute_avatar_1920(self): super()._compute_avatar_1920() - @api.depends('name', 'user_ids.share', 'image_1024', 'is_company') + @api.depends('name', 'user_ids.share', 'image_1024', 'is_company', 'type') def _compute_avatar_1024(self): super()._compute_avatar_1024() - @api.depends('name', 'user_ids.share', 'image_512', 'is_company') + @api.depends('name', 'user_ids.share', 'image_512', 'is_company', 'type') def _compute_avatar_512(self): super()._compute_avatar_512() - @api.depends('name', 'user_ids.share', 'image_256', 'is_company') + @api.depends('name', 'user_ids.share', 'image_256', 'is_company', 'type') def _compute_avatar_256(self): super()._compute_avatar_256() - @api.depends('name', 'user_ids.share', 'image_128', 'is_company') + @api.depends('name', 'user_ids.share', 'image_128', 'is_company', 'type') def _compute_avatar_128(self): super()._compute_avatar_128() @@ -264,11 +264,14 @@ class Partner(models.Model): for partner in self - partners_with_internal_user: partner[avatar_field] = partner[image_field] or partner._avatar_get_placeholder() - def _avatar_get_placeholder(self): - path = "base/static/img/avatar_grey.png" + def _avatar_get_placeholder_path(self): if self.is_company: - path = "base/static/img/company_image.png" - return base64.b64encode(tools.file_open(path, 'rb').read()) + return "base/static/img/company_image.png" + if self.type == 'delivery': + return "base/static/img/truck.png" + if self.type == 'invoice': + return "base/static/img/money.png" + return super()._avatar_get_placeholder_path() @api.depends('is_company', 'name', 'parent_id.display_name', 'type', 'company_name') def _compute_display_name(self): diff --git a/odoo/addons/base/views/res_partner_views.xml b/odoo/addons/base/views/res_partner_views.xml index f1925fac1d0..239abc57d9d 100644 --- a/odoo/addons/base/views/res_partner_views.xml +++ b/odoo/addons/base/views/res_partner_views.xml @@ -260,6 +260,7 @@ + @@ -269,17 +270,7 @@
- Contact image - - - - Delivery - Invoice - - Logo - Avatar - - + Contact image
@@ -474,19 +465,16 @@
- - - -
+ +
-
+
- -