Browse Source

[10.0] Port partner_address_street3 (#318)

Add %(street3)s in 'address_format' of existing countries
pull/323/head
Alexis de Lattre 8 years ago
committed by Pedro M. Baeza
parent
commit
ea52dfc39a
  1. 16
      partner_address_street3/README.rst
  2. 22
      partner_address_street3/__init__.py
  3. 37
      partner_address_street3/__manifest__.py
  4. 41
      partner_address_street3/hooks.py
  5. 21
      partner_address_street3/model/__init__.py
  6. 19
      partner_address_street3/model/country.py
  7. 41
      partner_address_street3/model/partner.py
  8. 20
      partner_address_street3/tests/__init__.py
  9. 94
      partner_address_street3/tests/test_street_3.py
  10. 13
      partner_address_street3/view/partner_view.xml

16
partner_address_street3/README.rst

@ -6,15 +6,15 @@
3rd line on partner address
===========================
This module extends the base res.partner model by supplying a 3rd line on
addresses (`street3`)
This module extends the base *res.partner* model by supplying a 3rd line on
addresses (`street3`).
Usage
=====
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/134/9.0
:target: https://runbot.odoo-community.org/runbot/134/10.0
Bug Tracker
===========
@ -22,11 +22,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues
<https://github.com/OCA/partner-contact/issues>`_. In case of trouble, please
check there if your issue has already been reported. If you spotted it first,
help us smashing it by providing a detailed and welcomed `feedback
<https://github.com/OCA/
partner-contact/issues/new?body=module:%20
partner_address_street3%0Aversion:%20
9.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
help us smashing it by providing a detailed and welcomed feedback.
Credits
=======

22
partner_address_street3/__init__.py

@ -1,21 +1,5 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Author: Nicolas Bessi
# Copyright 2014 Camptocamp SA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from . import model
from .hooks import post_init_hook
from .hooks import uninstall_hook

37
partner_address_street3/__manifest__.py

@ -1,37 +1,20 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Author: Nicolas Bessi
# Copyright 2014 Camptocamp SA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
# © 2014-2016 Camptocamp SA
# @author: Nicolas Bessi
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
'name': 'Street3 in addresses',
'version': '8.0.0.1.0',
'summary': 'Add a third address line on partners',
'license': 'AGPL-3',
'version': '10.0.1.0.0',
'author': "Camptocamp,Odoo Community Association (OCA)",
'maintainer': 'Camptocamp',
'category': 'Sales',
'complexity': 'easy',
'depends': ['base'],
'website': 'http://www.camptocamp.com',
'data': ['view/partner_view.xml'],
'demo': [],
'test': [],
'installable': False,
'auto_install': False,
'license': 'AGPL-3',
'application': False,
'post_init_hook': 'post_init_hook',
'uninstall_hook': 'uninstall_hook',
'installable': True,
}

41
partner_address_street3/hooks.py

@ -0,0 +1,41 @@
# -*- coding: utf-8 -*-
# Copyright 2016 Sodexis
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
def post_init_hook(cr, registry):
""" Add street3 to address format """
query = """
UPDATE res_country
SET address_format = replace(
address_format,
E'%(street2)s\n',
E'%(street2)s\n%(street3)s\n'
)
"""
cr.execute(query)
def uninstall_hook(cr, registry):
""" Remove street3 from address format """
# Remove %(street3)s\n from address_format
query = """
UPDATE res_country
SET address_format = replace(
address_format,
E'%(street3)s\n',
''
)
"""
cr.execute(query)
# Remove %(street3)s from address_format
query = """
UPDATE res_country
SET address_format = replace(
address_format,
E'%(street3)s',
''
)
"""
cr.execute(query)

21
partner_address_street3/model/__init__.py

@ -1,21 +1,4 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Author: Nicolas Bessi
# Copyright 2014 Camptocamp SA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from . import partner
from . import country

19
partner_address_street3/model/country.py

@ -0,0 +1,19 @@
# -*- coding: utf-8 -*-
# © 2014-2016 Camptocamp SA
# @author: Nicolas Bessi
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import models, fields
class ResCountry(models.Model):
"""Override default adresses formatting of countries"""
_inherit = 'res.country'
address_format = fields.Text(
default=(
"%(street)s\n%(street2)s\n%(street3)s\n"
"%(city)s %(state_code)s %(zip)s\n"
"%(country_name)s"
)
)

41
partner_address_street3/model/partner.py

@ -1,30 +1,15 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Author: Nicolas Bessi
# Copyright 2014-2015 Camptocamp SA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from openerp import models, fields, api
# © 2014-2016 Camptocamp SA
# @author: Nicolas Bessi
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import models, fields, api
class ResPartner(models.Model):
"""Add third field in address"""
_inherit = "res.partner"
street3 = fields.Char('Street 3')
@api.model
@ -32,17 +17,3 @@ class ResPartner(models.Model):
fields = super(ResPartner, self)._address_fields()
fields.append('street3')
return fields
class res_country(models.Model):
"""Override default adresses formatting of countries"""
_inherit = 'res.country'
address_format = fields.Text(
default=(
"%(street)s\n%(street2)s\n%(street3)s\n"
"%(city)s %(state_code)s %(zip)s\n"
"%(country_name)s"
)
)

20
partner_address_street3/tests/__init__.py

@ -1,21 +1,3 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Author: Nicolas Bessi
# Copyright 2014 Camptocamp SA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
from . import test_street_3

94
partner_address_street3/tests/test_street_3.py

@ -1,88 +1,36 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# Author: Nicolas Bessi
# Copyright 2014 Camptocamp SA
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import openerp.tests.common as test_common
# © 2014-2016 Camptocamp SA
# @author: Nicolas Bessi
# © 2016 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo.tests.common import TransactionCase
class TestStreet3(test_common.TransactionCase):
def test_partner(self):
part_model = self.registry('res.partner')
country_model = self.registry('res.country')
country_id = country_model.create(
self.cr,
self.uid,
{
'name': 'Donut Land',
'code': 'DNL',
}
)
class TestStreet3(TransactionCase):
self.assertTrue(country_id)
def test_partner(self):
# Test address_format has been updated on existing countries
us_country = self.env.ref('base.us')
self.assertTrue('%(street3)s' in us_country.address_format)
create_data = {
homer = self.env['res.partner'].create({
'name': 'Homer Simpson',
'city': 'Springfield',
'street': '742 Evergreen Terrace',
'street2': 'Donut Lane',
'street3': 'Tho',
'country_id': country_id,
'is_company': True
}
homer_id = part_model.create(
self.cr,
self.uid,
create_data
)
homer = part_model.browse(
self.cr,
self.uid,
homer_id,
)
'country_id': us_country.id,
})
self.assertEqual(
homer.country_id.address_format,
("%(street)s\n%(street2)s\n%(street3)s\n"
"%(city)s %(state_code)s %(zip)s\n"
"%(country_name)s")
)
create_data = {
# test synchro of street3 on create
bart = self.env['res.partner'].create({
'name': 'Bart Simpson',
'is_company': False,
'parent_id': homer.id,
'use_parent_address': True
}
bart_id = part_model.create(
self.cr,
self.uid,
create_data
)
bart = part_model.browse(
self.cr,
self.uid,
bart_id,
)
'type': 'contact',
})
self.assertEquals(bart.street3, 'Tho')
self.assertTrue(bart.street3, 'Tho')
# test synchro of street3 on write
homer.write({'street3': 'in OCA we trust'})
self.assertEquals(bart.street3, 'in OCA we trust')

13
partner_address_street3/view/partner_view.xml

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="add_stree3_in_form_view" model="ir.ui.view">
<field name="name">add stree3 in form view</field>
<odoo>
<record id="add_street3_in_form_view" model="ir.ui.view">
<field name="name">add street3 in form view</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
@ -22,7 +22,7 @@
'default_supplier': supplier, 'default_customer': customer,
'default_lang': lang,}</attribute>
</xpath>
<xpath expr="/form//field[@name='child_ids']//field[@name='street2']"
<xpath expr="/form//field[@name='child_ids']/form//field[@name='street2']"
position="after">
<field name="street3" placeholder="Street 3..." class="o_address_street"/>
</xpath>
@ -57,5 +57,4 @@
</field>
</record>
</data>
</openerp>
</odoo>
Loading…
Cancel
Save