diff --git a/addons/anonymization/wizard/anonymize_wizard.py b/addons/anonymization/wizard/anonymize_wizard.py
index 0d0ecfaaa63..221a98d0eba 100644
--- a/addons/anonymization/wizard/anonymize_wizard.py
+++ b/addons/anonymization/wizard/anonymize_wizard.py
@@ -126,6 +126,9 @@ class IrModelFieldsAnonymizeWizard(models.TransientModel):
@api.multi
def anonymize_database(self):
"""Sets the 'anonymized' state to defined fields"""
+ # pylint: disable=W0101
+ raise UserError("""The Odoo Migration Platform no longer accepts anonymized databases.\n
+ If you wish for your data to remain private during migration, please contact us at upgrade@odoo.com""")
self.ensure_one()
# create a new history record:
diff --git a/addons/crm/models/crm_lead.py b/addons/crm/models/crm_lead.py
index 6217de474c2..5143113150c 100644
--- a/addons/crm/models/crm_lead.py
+++ b/addons/crm/models/crm_lead.py
@@ -639,6 +639,8 @@ class Lead(models.Model):
@api.model
def _get_duplicated_leads_by_emails(self, partner_id, email, include_lost=False):
""" Search for opportunities that have the same partner and that arent done or cancelled """
+ if not email:
+ return []
partner_match_domain = []
for email in set(email_split(email) + [email]):
partner_match_domain.append(('email_from', '=ilike', email))
diff --git a/addons/delivery/models/sale_order.py b/addons/delivery/models/sale_order.py
index ccfed1a2e74..efc439f435e 100644
--- a/addons/delivery/models/sale_order.py
+++ b/addons/delivery/models/sale_order.py
@@ -75,6 +75,9 @@ class SaleOrder(models.Model):
def _create_delivery_line(self, carrier, price_unit):
SaleOrderLine = self.env['sale.order.line']
+ if self.partner_id:
+ # set delivery detail in the customer language
+ carrier = carrier.with_context(lang=self.partner_id.lang)
# Apply fiscal position
taxes = carrier.product_id.taxes_id.filtered(lambda t: t.company_id.id == self.company_id.id)
diff --git a/addons/purchase/models/account_invoice.py b/addons/purchase/models/account_invoice.py
index 27cdbcaf8b1..604184c0582 100644
--- a/addons/purchase/models/account_invoice.py
+++ b/addons/purchase/models/account_invoice.py
@@ -23,11 +23,12 @@ class AccountInvoice(models.Model):
purchase_line_ids = self.invoice_line_ids.mapped('purchase_line_id')
purchase_ids = self.invoice_line_ids.mapped('purchase_id').filtered(lambda r: r.order_line <= purchase_line_ids)
- result['domain'] = {'purchase_id': [
- ('invoice_status', '=', 'to invoice'),
- ('partner_id', 'child_of', self.partner_id.id),
- ('id', 'not in', purchase_ids.ids),
- ]}
+ domain = [('invoice_status', '=', 'to invoice')]
+ if self.partner_id:
+ domain += [('partner_id', 'child_of', self.partner_id.id)]
+ if purchase_ids:
+ domain += [('id', 'not in', purchase_ids.ids)]
+ result['domain'] = {'purchase_id': domain}
return result
def _prepare_invoice_line_from_po_line(self, line):
diff --git a/addons/sale_crm/views/crm_lead_views.xml b/addons/sale_crm/views/crm_lead_views.xml
index a85f89b796a..ce5d0aba195 100644
--- a/addons/sale_crm/views/crm_lead_views.xml
+++ b/addons/sale_crm/views/crm_lead_views.xml
@@ -17,7 +17,10 @@
+ 'default_team_id': team_id,
+ 'default_campaign_id': campaign_id,
+ 'default_medium_id': medium_id,
+ 'default_source_id': source_id}"/>