[IMP] base_address_city: mixins limited to a single model are not mixins
This commit is contained in:
@@ -5,30 +5,6 @@ from lxml import etree
|
||||
|
||||
from odoo import api, models, fields
|
||||
|
||||
class FormatAddressMixin(models.AbstractModel):
|
||||
_inherit = "format.address.mixin"
|
||||
|
||||
@api.model
|
||||
def _fields_view_get_address(self, arch):
|
||||
arch = super(FormatAddressMixin, self)._fields_view_get_address(arch)
|
||||
if self._name == 'res.partner':
|
||||
#render the partner address accordingly to address_view_id
|
||||
doc = etree.fromstring(arch)
|
||||
for city_node in doc.xpath("//field[@name='city']"):
|
||||
replacement_xml = """
|
||||
<div>
|
||||
<field name="country_enforce_cities" invisible="1"/>
|
||||
<field name='city' attrs="{'invisible': [('country_enforce_cities', '=', True), ('city_id', '!=', False)]}"/>
|
||||
<field name='city_id' attrs="{'invisible': [('country_enforce_cities', '=', False)]}"/>
|
||||
</div>
|
||||
"""
|
||||
city_id_node = etree.fromstring(replacement_xml)
|
||||
city_node.getparent().replace(city_node, city_id_node)
|
||||
|
||||
arch = etree.tostring(doc)
|
||||
return arch
|
||||
|
||||
|
||||
class Partner(models.Model):
|
||||
_inherit = 'res.partner'
|
||||
|
||||
@@ -40,3 +16,22 @@ class Partner(models.Model):
|
||||
self.city = self.city_id.name
|
||||
self.zip = self.city_id.zipcode
|
||||
self.state_id = self.city_id.state_id
|
||||
|
||||
@api.model
|
||||
def _fields_view_get_address(self, arch):
|
||||
arch = super(Partner, self)._fields_view_get_address(arch)
|
||||
# render the partner address accordingly to address_view_id
|
||||
doc = etree.fromstring(arch)
|
||||
for city_node in doc.xpath("//field[@name='city']"):
|
||||
replacement_xml = """
|
||||
<div>
|
||||
<field name="country_enforce_cities" invisible="1"/>
|
||||
<field name='city' attrs="{'invisible': [('country_enforce_cities', '=', True), ('city_id', '!=', False)]}"/>
|
||||
<field name='city_id' attrs="{'invisible': [('country_enforce_cities', '=', False)]}"/>
|
||||
</div>
|
||||
"""
|
||||
city_id_node = etree.fromstring(replacement_xml)
|
||||
city_node.getparent().replace(city_node, city_id_node)
|
||||
|
||||
arch = etree.tostring(doc)
|
||||
return arch
|
||||
|
||||
Reference in New Issue
Block a user