[FIX] base: restore delivery and shipping image on contact in kanban
Since c53724ebc3, 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) <seb@odoo.com>
Signed-off-by: Romain Derie <rdeodoo@users.noreply.github.com>
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -24,18 +24,5 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_partner_form_mondialrelay" model="ir.ui.view">
|
||||
<field name="name">view_partner_form_mondialrelay</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="inherit_id" ref="base.view_partner_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//page[@name='contact_addresses']//kanban/field[@name='display_name']" position="after">
|
||||
<field name="is_mondialrelay"/>
|
||||
</xpath>
|
||||
<xpath expr="//t[@t-set='delivery_icon_path']" position="after">
|
||||
<t t-set="delivery_icon_path" t-if="record.is_mondialrelay.raw_value" t-value="'/delivery_mondialrelay/static/src/img/truck_mr.png'"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
|
||||
@@ -72,5 +72,8 @@ class AvatarMixin(models.AbstractModel):
|
||||
"</svg>"
|
||||
).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())
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -260,6 +260,7 @@
|
||||
<field name="mobile"/>
|
||||
<field name="state_id"/>
|
||||
<field name="image_128"/>
|
||||
<field name="avatar_128"/>
|
||||
<field name="lang"/>
|
||||
<!-- fields in form x2many view to diminish requests -->
|
||||
<field name="comment"/>
|
||||
@@ -269,17 +270,7 @@
|
||||
<t t-set="color" t-value="kanban_color(record.color.raw_value)"/>
|
||||
<div t-att-class="color + (record.title.raw_value == 1 ? ' oe_kanban_color_alert' : '') + ' oe_kanban_global_click'">
|
||||
<div class="o_kanban_image">
|
||||
<img alt="Contact image" t-if="record.image_128.raw_value" t-att-src="kanban_image('res.partner', 'image_128', record.id.raw_value)"/>
|
||||
<t t-if="!record.image_128.raw_value">
|
||||
<t t-set="delivery_icon_path" t-value="'/base/static/img/truck.png'"/>
|
||||
<t t-set="invoice_icon_path" t-value="'/base/static/img/money.png'"/>
|
||||
<img alt="Delivery" t-if="record.type.raw_value === 'delivery'" t-att-src='_s + delivery_icon_path'/>
|
||||
<img alt="Invoice" t-if="record.type.raw_value === 'invoice'" t-att-src='_s + invoice_icon_path'/>
|
||||
<t t-if="record.type.raw_value !== 'invoice' && record.type.raw_value !== 'delivery'">
|
||||
<img alt="Logo" t-if="record.is_company.raw_value === true" t-att-src='_s + "/base/static/img/company_image.png"'/>
|
||||
<img alt="Avatar" t-if="record.is_company.raw_value === false" t-att-src='_s + "/base/static/img/avatar_grey.png"'/>
|
||||
</t>
|
||||
</t>
|
||||
<img alt="Contact image" t-att-src="kanban_image('res.partner', 'avatar_128', record.id.raw_value)"/>
|
||||
</div>
|
||||
<div class="oe_kanban_details">
|
||||
<field name="name"/>
|
||||
@@ -474,19 +465,16 @@
|
||||
<t t-name="kanban-box">
|
||||
<div class="oe_kanban_global_click o_kanban_record_has_image_fill o_res_partner_kanban">
|
||||
<t t-if="!record.is_company.raw_value">
|
||||
<t t-if="record.type.raw_value === 'delivery'" t-set="placeholder" t-value="'/base/static/img/truck.png'"/>
|
||||
<t t-elif="record.type.raw_value === 'invoice'" t-set="placeholder" t-value="'/base/static/img/money.png'"/>
|
||||
<t t-else="" t-set="placeholder" t-value="'/base/static/img/avatar_grey.png'"/>
|
||||
<div class="o_kanban_image_fill_left d-none d-md-block" t-attf-style="background-image:url('#{kanban_image('res.partner', 'avatar_128', record.id.raw_value, placeholder)}')">
|
||||
<t t-set="background_image" t-value="kanban_image('res.partner', 'avatar_128', record.id.raw_value)"/>
|
||||
<div class="o_kanban_image_fill_left d-none d-md-block" t-attf-style="background-image:url('#{background_image}')">
|
||||
<img class="o_kanban_image_inner_pic" t-if="record.parent_id.raw_value" t-att-alt="record.parent_id.value" t-att-src="kanban_image('res.partner', 'avatar_128', record.parent_id.raw_value)"/>
|
||||
</div>
|
||||
<div class="o_kanban_image d-md-none" t-attf-style="background-image:url('#{kanban_image('res.partner', 'avatar_128', record.id.raw_value, placeholder)}')">
|
||||
<div class="o_kanban_image d-md-none" t-attf-style="background-image: url(#{background_image})">
|
||||
<img class="o_kanban_image_inner_pic" t-if="record.parent_id.raw_value" t-att-alt="record.parent_id.value" t-att-src="kanban_image('res.partner', 'avatar_128', record.parent_id.raw_value)"/>
|
||||
</div>
|
||||
</t>
|
||||
<t t-else="">
|
||||
<t t-set="placeholder" t-value="'/base/static/img/company_image.png'"/>
|
||||
<div class="o_kanban_image_fill_left o_kanban_image_full" t-attf-style="background-image: url(#{kanban_image('res.partner', 'avatar_128', record.id.raw_value, placeholder)})" role="img"/>
|
||||
<div class="o_kanban_image_fill_left o_kanban_image_full" t-attf-style="background-image: url(#{kanban_image('res.partner', 'avatar_128', record.id.raw_value)})" role="img"/>
|
||||
</t>
|
||||
<div class="oe_kanban_details d-flex flex-column">
|
||||
<strong class="o_kanban_record_title oe_partner_heading"><field name="display_name"/></strong>
|
||||
|
||||
Reference in New Issue
Block a user