From 003c692e915042a70b314ae3958871db3b71d8b4 Mon Sep 17 00:00:00 2001 From: sbejaoui Date: Wed, 11 Mar 2020 13:03:24 +0100 Subject: [PATCH] [12.0][IMP] - filter city zip by country in partner form --- base_location/models/res_city_zip.py | 1 + base_location/models/res_partner.py | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/base_location/models/res_city_zip.py b/base_location/models/res_city_zip.py index 12c679a96..f9bc43cc6 100644 --- a/base_location/models/res_city_zip.py +++ b/base_location/models/res_city_zip.py @@ -18,6 +18,7 @@ class ResCityZip(models.Model): 'res.city', 'City', required=True, + auto_join=True ) display_name = fields.Char(compute='_compute_new_display_name', store=True, index=True) diff --git a/base_location/models/res_partner.py b/base_location/models/res_partner.py index 0d45f6901..d759696b7 100644 --- a/base_location/models/res_partner.py +++ b/base_location/models/res_partner.py @@ -27,6 +27,12 @@ class ResPartner(models.Model): 'zip_id': [('city_id', '=', self.city_id.id)] }, } + if self.country_id: + return { + 'domain': { + 'zip_id': [('city_id.country_id', '=', self.country_id.id)] + } + } return {'domain': {'zip_id': []}} @api.onchange('country_id') @@ -34,6 +40,15 @@ class ResPartner(models.Model): res = super()._onchange_country_id() if self.zip_id and self.zip_id.city_id.country_id != self.country_id: self.zip_id = False + if self.country_id: + city_zip_domain = { + "zip_id": [("city_id.country_id", "=", self.country_id.id)] + } + if isinstance(res, dict): + res.setdefault("domain", {}) + res["domain"].update(city_zip_domain) + else: + res = {"domain": city_zip_domain} return res @api.onchange('zip_id')