From 05fd442b84eeebd739aac89617a6d1fb4e49b7e0 Mon Sep 17 00:00:00 2001 From: Nicolas Bessi Date: Fri, 24 Oct 2014 15:41:33 +0200 Subject: [PATCH 01/10] Adding skeleton of partner-address-street-3 --- partner-address-street3/__init__.py | 21 ++++++++++++ partner-address-street3/__openerp__.py | 38 ++++++++++++++++++++++ partner-address-street3/model/__init__.py | 21 ++++++++++++ partner-address-street3/model/partner.py | 39 +++++++++++++++++++++++ 4 files changed, 119 insertions(+) create mode 100644 partner-address-street3/__init__.py create mode 100644 partner-address-street3/__openerp__.py create mode 100644 partner-address-street3/model/__init__.py create mode 100644 partner-address-street3/model/partner.py diff --git a/partner-address-street3/__init__.py b/partner-address-street3/__init__.py new file mode 100644 index 000000000..6ac610f01 --- /dev/null +++ b/partner-address-street3/__init__.py @@ -0,0 +1,21 @@ +# -*- 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 . +# +############################################################################## +from . import model diff --git a/partner-address-street3/__openerp__.py b/partner-address-street3/__openerp__.py new file mode 100644 index 000000000..8d0eef9ac --- /dev/null +++ b/partner-address-street3/__openerp__.py @@ -0,0 +1,38 @@ +# -*- 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 . +# +############################################################################## +{ + 'name': 'Stree3 in address', + 'version': '0.1', + 'author': 'Camptocamp', + 'maintainer': 'Camptocamp', + 'category': 'Sales', + 'complexity': 'easy', + 'depends': ['base'], + 'description': """Add a third field to the address""", + 'website': 'http://www.camptocamp.com', + 'data': ['view/partner_view.xml'], + 'demo': [], + 'test': [], + 'installable': True, + 'auto_install': False, + 'license': 'AGPL-3', + 'application': False, +} diff --git a/partner-address-street3/model/__init__.py b/partner-address-street3/model/__init__.py new file mode 100644 index 000000000..b4349f625 --- /dev/null +++ b/partner-address-street3/model/__init__.py @@ -0,0 +1,21 @@ +# -*- 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 . +# +############################################################################## +from . import partner diff --git a/partner-address-street3/model/partner.py b/partner-address-street3/model/partner.py new file mode 100644 index 000000000..890fa5c7f --- /dev/null +++ b/partner-address-street3/model/partner.py @@ -0,0 +1,39 @@ +# -*- 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 . +# +############################################################################## +from openerp.osv import orm, fields +from openerp.addons.base.res import partner + +partner.ADDRESS_FIELDS = partner.ADDRESS_FIELDS + ('street3',) + + +class res_partner(orm.Model): + """Add third field in address""" + + _inherit = "res.partner" + _columns = { + 'street3': fields.char('Street 3'), + } + + _defaults = { + 'address_format': ("%(street)s\n%(street2)s\n%(street3)s\n" + "%(city)s %(state_code)s %(zip)s\n" + "%(country_name)s"), + } From 12587a6d35c1802b3286e82ba15b8903f5c3b242 Mon Sep 17 00:00:00 2001 From: Nicolas Bessi Date: Fri, 24 Oct 2014 16:38:21 +0200 Subject: [PATCH 02/10] Improve module name --- partner-address-street3/__openerp__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/partner-address-street3/__openerp__.py b/partner-address-street3/__openerp__.py index 8d0eef9ac..bcf37ddc1 100644 --- a/partner-address-street3/__openerp__.py +++ b/partner-address-street3/__openerp__.py @@ -19,7 +19,7 @@ # ############################################################################## { - 'name': 'Stree3 in address', + 'name': 'Street3 in addresses', 'version': '0.1', 'author': 'Camptocamp', 'maintainer': 'Camptocamp', From 4d1f653990e8f84dabaf727b6827c570e2686c3c Mon Sep 17 00:00:00 2001 From: Nicolas Bessi Date: Fri, 24 Oct 2014 16:39:15 +0200 Subject: [PATCH 03/10] Fix Constant extension --- partner-address-street3/model/partner.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/partner-address-street3/model/partner.py b/partner-address-street3/model/partner.py index 890fa5c7f..922cd5cd9 100644 --- a/partner-address-street3/model/partner.py +++ b/partner-address-street3/model/partner.py @@ -19,9 +19,8 @@ # ############################################################################## from openerp.osv import orm, fields -from openerp.addons.base.res import partner - -partner.ADDRESS_FIELDS = partner.ADDRESS_FIELDS + ('street3',) +from openerp.addons.base.res import res_partner +res_partner.ADDRESS_FIELDS = res_partner.ADDRESS_FIELDS + ('street3',) class res_partner(orm.Model): From 9518d1e569327f5a6edc06fff96175f547bad2d5 Mon Sep 17 00:00:00 2001 From: Nicolas Bessi Date: Fri, 24 Oct 2014 16:41:04 +0200 Subject: [PATCH 04/10] Add view file --- partner-address-street3/view/partner_view.xml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 partner-address-street3/view/partner_view.xml diff --git a/partner-address-street3/view/partner_view.xml b/partner-address-street3/view/partner_view.xml new file mode 100644 index 000000000..58130e847 --- /dev/null +++ b/partner-address-street3/view/partner_view.xml @@ -0,0 +1,6 @@ + + + + + + From 37aa1cade7e88f32967bf4e8dc519cd6be43b5d0 Mon Sep 17 00:00:00 2001 From: Nicolas Bessi Date: Fri, 24 Oct 2014 16:53:18 +0200 Subject: [PATCH 05/10] Fixing tests --- partner-address-street3/tests/__init__.py | 21 +++++ .../tests/test_street_3.py | 88 +++++++++++++++++++ 2 files changed, 109 insertions(+) create mode 100644 partner-address-street3/tests/__init__.py create mode 100644 partner-address-street3/tests/test_street_3.py diff --git a/partner-address-street3/tests/__init__.py b/partner-address-street3/tests/__init__.py new file mode 100644 index 000000000..3e6e82972 --- /dev/null +++ b/partner-address-street3/tests/__init__.py @@ -0,0 +1,21 @@ +# -*- 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 . +# +############################################################################## +from . import test_street_3 diff --git a/partner-address-street3/tests/test_street_3.py b/partner-address-street3/tests/test_street_3.py new file mode 100644 index 000000000..ee329bd55 --- /dev/null +++ b/partner-address-street3/tests/test_street_3.py @@ -0,0 +1,88 @@ +# -*- 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 . +# +############################################################################## +import openerp.tests.common as test_common + + +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', + } + ) + + self.assertTrue(country_id) + + create_data = { + '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, + ) + + 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 = { + '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, + ) + + self.assertTrue(bart.street3, 'Tho') From bfce569c840ea1dff8346034be45e2fede138e7a Mon Sep 17 00:00:00 2001 From: Nicolas Bessi Date: Fri, 24 Oct 2014 16:53:34 +0200 Subject: [PATCH 06/10] Moving new default format to countries --- partner-address-street3/model/partner.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/partner-address-street3/model/partner.py b/partner-address-street3/model/partner.py index 922cd5cd9..c4ebd6442 100644 --- a/partner-address-street3/model/partner.py +++ b/partner-address-street3/model/partner.py @@ -31,6 +31,12 @@ class res_partner(orm.Model): 'street3': fields.char('Street 3'), } + +class res_country(orm.Model): + """Override default adresses formatting of coutries""" + + _inherit = 'res.country' + _defaults = { 'address_format': ("%(street)s\n%(street2)s\n%(street3)s\n" "%(city)s %(state_code)s %(zip)s\n" From b0e184bd4ccffabe903ca1664c2dc12602f11c9e Mon Sep 17 00:00:00 2001 From: Nicolas Bessi Date: Wed, 29 Oct 2014 11:26:41 +0100 Subject: [PATCH 07/10] Add `street3` in views --- partner-address-street3/view/partner_view.xml | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/partner-address-street3/view/partner_view.xml b/partner-address-street3/view/partner_view.xml index 58130e847..d4bc15020 100644 --- a/partner-address-street3/view/partner_view.xml +++ b/partner-address-street3/view/partner_view.xml @@ -1,6 +1,41 @@ + + add stree3 in form view + res.partner + + + + + + + + + + + + + + + + + + + add street 3 in kanban + res.partner + + + + + + + From 7169cb18e54e75ee973286af3f719aecf18629cb Mon Sep 17 00:00:00 2001 From: Nicolas Bessi Date: Wed, 29 Oct 2014 13:48:58 +0100 Subject: [PATCH 08/10] Using under to respect naming convention --- {partner-address-street3 => partner_address_street3}/__init__.py | 0 .../__openerp__.py | 0 .../model/__init__.py | 0 .../model/partner.py | 0 .../tests/__init__.py | 0 .../tests/test_street_3.py | 0 .../view/partner_view.xml | 0 7 files changed, 0 insertions(+), 0 deletions(-) rename {partner-address-street3 => partner_address_street3}/__init__.py (100%) rename {partner-address-street3 => partner_address_street3}/__openerp__.py (100%) rename {partner-address-street3 => partner_address_street3}/model/__init__.py (100%) rename {partner-address-street3 => partner_address_street3}/model/partner.py (100%) rename {partner-address-street3 => partner_address_street3}/tests/__init__.py (100%) rename {partner-address-street3 => partner_address_street3}/tests/test_street_3.py (100%) rename {partner-address-street3 => partner_address_street3}/view/partner_view.xml (100%) diff --git a/partner-address-street3/__init__.py b/partner_address_street3/__init__.py similarity index 100% rename from partner-address-street3/__init__.py rename to partner_address_street3/__init__.py diff --git a/partner-address-street3/__openerp__.py b/partner_address_street3/__openerp__.py similarity index 100% rename from partner-address-street3/__openerp__.py rename to partner_address_street3/__openerp__.py diff --git a/partner-address-street3/model/__init__.py b/partner_address_street3/model/__init__.py similarity index 100% rename from partner-address-street3/model/__init__.py rename to partner_address_street3/model/__init__.py diff --git a/partner-address-street3/model/partner.py b/partner_address_street3/model/partner.py similarity index 100% rename from partner-address-street3/model/partner.py rename to partner_address_street3/model/partner.py diff --git a/partner-address-street3/tests/__init__.py b/partner_address_street3/tests/__init__.py similarity index 100% rename from partner-address-street3/tests/__init__.py rename to partner_address_street3/tests/__init__.py diff --git a/partner-address-street3/tests/test_street_3.py b/partner_address_street3/tests/test_street_3.py similarity index 100% rename from partner-address-street3/tests/test_street_3.py rename to partner_address_street3/tests/test_street_3.py diff --git a/partner-address-street3/view/partner_view.xml b/partner_address_street3/view/partner_view.xml similarity index 100% rename from partner-address-street3/view/partner_view.xml rename to partner_address_street3/view/partner_view.xml From 79f088a498c2f9a5ef4b6785ce1348dfa56b101e Mon Sep 17 00:00:00 2001 From: Nicolas Bessi Date: Wed, 29 Oct 2014 13:56:03 +0100 Subject: [PATCH 09/10] Fix mutable default --- base_partner_merge/base_partner_merge.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/base_partner_merge/base_partner_merge.py b/base_partner_merge/base_partner_merge.py index 9daadd71e..416430d0b 100644 --- a/base_partner_merge/base_partner_merge.py +++ b/base_partner_merge/base_partner_merge.py @@ -26,7 +26,9 @@ _logger = logging.getLogger('base.partner.merge') # http://www.php2python.com/wiki/function.html-entity-decode/ -def html_entity_decode_char(m, defs=htmlentitydefs.entitydefs): +def html_entity_decode_char(m, defs=None): + if defs is None: + defs = htmlentitydefs.entitydefs try: return defs[m.group(1)] except KeyError: From fc9a6042c9ce731d0c4995989039e8ae37ae4329 Mon Sep 17 00:00:00 2001 From: Nicolas Bessi Date: Wed, 29 Oct 2014 13:57:44 +0100 Subject: [PATCH 10/10] Fix mutable default --- passport/tests/test_passport.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/passport/tests/test_passport.py b/passport/tests/test_passport.py index 127205ff2..e611aed83 100644 --- a/passport/tests/test_passport.py +++ b/passport/tests/test_passport.py @@ -33,10 +33,12 @@ class Base_Test_passport(TransactionCase): Inherit from this and setup values. """ - def setUp(self, vals={}): + def setUp(self, vals=None): """ Setting up passport. """ + if vals is None: + vals = {} # Default test values self.vals = {'name': 'This is a test passport name', 'number': 'A200124789',