odoo/odoo#146610

Created by fw-bot
Merged at 2cd05b169776f8cb76d5173297eca1a61fefe718

Statuses:

label
odoo-dev:saas-15.2-15.0-fix-crash-convert-lead-to-oppo-archived-lang-xal-im2F-fw
head
c2d78db4864feeb90824d14b34a119876fde52e9
merged
2 years ago by Platform, Xavier Alt (xal)
odoo/odoo
15.0 #145331
saas-15.2 #146610
16.0 #146615
saas-16.1 #146626
saas-16.2 #146638
saas-16.3 #146985
saas-16.4 #146991
17.0 #147003
18.0
saas-18.2
saas-18.3
saas-18.4
master #147015

[FW][FIX] crm: handle customer creation on. lead -> oppor. w/ archived lang

To reproduce:

  1. enable 'debug' mode
  2. go to menu "Settings / Translations / Languages" and enable a new language (ex: nl_NL) 3 create a new lead and set that language
    (IMPORTANT: do not set a customer)
  3. go back to menu "Settings / Translations / Languages" and disable the language you previously enabled at step 2.
  4. from the lead list view, selection the lead you created at step 3, click "Action" and choose "Convert to opportunities"
  5. In the wizard choose for:
    * Conversion Action: Convert to opportunity
    * Customer: Create a new customer
  6. Click button "Convert to opportunity"

This crash with the following error:

Traceback (most recent call last):
  ...

  File "/data/build/odoo/addons/crm/wizard/crm_lead_to_opportunity_mass.py", line 103, in action_mass_convert
    return self.action_apply()
  File "/data/build/odoo/addons/crm/wizard/crm_lead_to_opportunity.py", line 121, in action_apply
    result_opportunity = self._action_convert()
  File "/data/build/odoo/addons/crm/wizard/crm_lead_to_opportunity.py", line 144, in _action_convert
    self._convert_and_allocate(result_opportunities, [self.user_id.id], team_id=self.team_id.id)
  File "/data/build/odoo/addons/crm/wizard/crm_lead_to_opportunity_mass.py", line 78, in _convert_and_allocate
    return super(Lead2OpportunityMassConvert, self)._convert_and_allocate(leads, salesmen_ids, team_id=team_id)
  File "/data/build/odoo/addons/crm/wizard/crm_lead_to_opportunity.py", line 152, in _convert_and_allocate
    self._convert_handle_partner(
  File "/data/build/odoo/addons/crm/wizard/crm_lead_to_opportunity_mass.py", line 109, in _convert_handle_partner
    return super(Lead2OpportunityMassConvert, self)._convert_handle_partner(lead, action, partner_id)
  File "/data/build/odoo/addons/crm/wizard/crm_lead_to_opportunity.py", line 166, in _convert_handle_partner
    lead.with_context(default_user_id=self.user_id.id)._handle_partner_assignment(
  File "/data/build/odoo/addons/crm/models/crm_lead.py", line 1556, in _handle_partner_assignment
    partner = lead._create_customer()
  File "/data/build/odoo/addons/crm/models/crm_lead.py", line 1692, in _create_customer
    return Partner.create(self._prepare_customer_values(self.name, is_company=False))
  File "<decorator-gen-1007>", line 2, in create
  File "/data/build/odoo/odoo/api.py", line 395, in _model_create_single
    return create(self, arg)
  File "/data/build/odoo/addons/l10n_cl/models/res_partner.py", line 55, in create
    return super().create(values)
  File "<decorator-gen-329>", line 2, in create
  File "/data/build/odoo/odoo/api.py", line 417, in _model_create_multi
    return create(self, [arg])
  File "/data/build/odoo/addons/base_vat/models/res_partner.py", line 718, in create
    return super(ResPartner, self).create(vals_list)
  File "<decorator-gen-263>", line 2, in create
  File "/data/build/odoo/odoo/api.py", line 418, in _model_create_multi
    return create(self, arg)
  File "/data/build/odoo/addons/account/models/partner.py", line 557, in create
    return super().create(vals_list)
  File "<decorator-gen-227>", line 2, in create
  File "/data/build/odoo/odoo/api.py", line 418, in _model_create_multi
    return create(self, arg)
  File "/data/build/odoo/addons/partner_autocomplete/models/res_partner.py", line 163, in create
    partners = super(ResPartner, self).create(vals_list)
  File "<decorator-gen-223>", line 2, in create
  File "/data/build/odoo/odoo/api.py", line 398, in _model_create_single
    return self.browse().concat(*(create(self, vals) for vals in arg))
  File "/data/build/odoo/odoo/api.py", line 398, in <genexpr>
    return self.browse().concat(*(create(self, vals) for vals in arg))
  File "/data/build/odoo/addons/mail_plugin/models/res_partner.py", line 32, in create
    partner = super(ResPartner, self).create(vals)
  File "<decorator-gen-100>", line 2, in create
  File "/data/build/odoo/odoo/api.py", line 417, in _model_create_multi
    return create(self, [arg])
  File "/data/build/odoo/odoo/addons/base/models/res_partner.py", line 652, in create
    partners = super(Partner, self).create(vals_list)
  File "<decorator-gen-137>", line 2, in create
  File "/data/build/odoo/odoo/api.py", line 418, in _model_create_multi
    return create(self, arg)
  File "/data/build/odoo/addons/mail/models/mail_thread.py", line 265, in create
    threads = super(MailThread, self).create(vals_list)
  File "<decorator-gen-306>", line 2, in create
  File "/data/build/odoo/odoo/api.py", line 418, in _model_create_multi
    return create(self, arg)
  File "/data/build/odoo/addons/website/models/mixins.py", line 211, in create
    records = super(WebsitePublishedMixin, self).create(vals_list)
  File "<decorator-gen-69>", line 2, in create
  File "/data/build/odoo/odoo/api.py", line 418, in _model_create_multi
    return create(self, arg)
  File "/data/build/odoo/odoo/addons/base/models/ir_fields.py", line 613, in create
    recs = super().create(vals_list)
  File "<decorator-gen-15>", line 2, in create
  File "/data/build/odoo/odoo/api.py", line 418, in _model_create_multi
    return create(self, arg)
  File "/data/build/odoo/odoo/models.py", line 4088, in create
    records = self._create(data_list)
  File "/data/build/odoo/odoo/models.py", line 4152, in _create
    col_val = field.convert_to_column(val, self, stored)
  File "/data/build/odoo/odoo/fields.py", line 2538, in convert_to_column
    value = self.convert_to_cache(value, record)
  File "/data/build/odoo/odoo/fields.py", line 2550, in convert_to_cache
    raise ValueError("Wrong value for %s: %r" % (self, value))
Exception

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/data/build/odoo/odoo/http.py", line 654, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/data/build/odoo/odoo/http.py", line 301, in _handle_exception
    raise exception.with_traceback(None) from new_cause
ValueError: Wrong value for res.partner.lang: 'nl_NL'

This commit ensure that when converting a lead to an opportunity, we
don't crash if language is archived.

opw-3617359


I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr

Forward-Port-Of: #145331