[IMP] crm: display globe button next to language for leads/opportunities

Purpose
=======
Add globe button next to language for leads and opportunities if the
database is in multi language mode and user has enough access rights.
User is also unable to edit language from view

PR: odoo/odoo/pull/78287
Task-2662548

Part-of: odoo/odoo#78287
This commit is contained in:
Fabio Barbero
2022-03-14 08:42:57 +00:00
parent 4c868863fd
commit f953e61ba6
3 changed files with 31 additions and 3 deletions
+5
View File
@@ -193,6 +193,7 @@ class Lead(models.Model):
website = fields.Char('Website', help="Website of the contact", compute="_compute_website", readonly=False, store=True)
lang_id = fields.Many2one('res.lang', string='Language', compute='_compute_lang_id', readonly=False, store=True)
lang_code = fields.Char(related='lang_id.code')
lang_active_count = fields.Integer(compute='_compute_lang_active_count')
# Address fields
street = fields.Char('Street', compute='_compute_partner_address_values', readonly=False, store=True)
street2 = fields.Char('Street2', compute='_compute_partner_address_values', readonly=False, store=True)
@@ -403,6 +404,10 @@ class Lead(models.Model):
for lead in self.filtered('partner_id'):
lead.lang_id = lang_id_by_code.get(lead.partner_id.lang, False)
@api.depends('lang_id')
def _compute_lang_active_count(self):
self.lang_active_count = len(self.env['res.lang'].get_installed())
@api.depends('partner_id')
def _compute_partner_address_values(self):
""" Sync all or none of address fields """
+26 -2
View File
@@ -125,8 +125,20 @@
<field name="country_id" placeholder="Country" class="o_address_country" options='{"no_open": True, "no_create": True}'/>
</div>
<field name="website" widget="url" placeholder="e.g. https://www.odoo.com"/>
<field name="lang_id"/>
<field name="lang_active_count" invisible="1"/>
<field name="lang_code" invisible="1"/>
<label for="lang_id" attrs="{'invisible': [('lang_active_count', '&lt;=', 1)]}"/>
<div class="o_row" attrs="{'invisible': [('lang_active_count', '&lt;=', 1)]}">
<field name="lang_id" options="{'no_quick_create':True,'no_create_edit':True,'no_open': True,}"/>
<button
type="action"
name="%(base.res_lang_act_window)d"
class="btn-sm btn-link mb4 fa fa-globe"
aria-label="More languages"
groups="base.group_system"
title="More languages"
/>
</div>
</group>
<group name="opportunity_partner" attrs="{'invisible': [('type', '=', 'lead')]}">
@@ -294,7 +306,19 @@
<field name="country_id" placeholder="Country" class="o_address_country" options='{"no_open": True, "no_create": True}'/>
</div>
<field name="website" widget="url" placeholder="e.g. https://www.odoo.com"/>
<field name="lang_id" options="{'no_create': True}"/>
<field name="lang_active_count" invisible="1"/>
<label for="lang_id" attrs="{'invisible': [('lang_active_count', '&lt;=', 1)]}"/>
<div class="o_row" attrs="{'invisible': [('lang_active_count', '&lt;=', 1)]}">
<field name="lang_id" options="{'no_quick_create':True,'no_create_edit':True,'no_open': True,}"/>
<button
type="action"
name="%(base.res_lang_act_window)d"
class="btn-sm btn-link mb4 fa fa-globe"
aria-label="More languages"
groups="base.group_system"
title="More languages"
/>
</div>
</group>
<group class="mt48">
<label for="contact_name_page_lead"/>
@@ -37,4 +37,3 @@ Users can choose his favorite language in their preferences.</span>
</record>
</data>
</odoo>