Browse Source

Merge pull request #41 from nbessi/partner-contact-street3

Add partner-address-street3
pull/42/head
Alex Comba 10 years ago
parent
commit
295f4dbb83
  1. 4
      base_partner_merge/base_partner_merge.py
  2. 21
      partner_address_street3/__init__.py
  3. 38
      partner_address_street3/__openerp__.py
  4. 21
      partner_address_street3/model/__init__.py
  5. 44
      partner_address_street3/model/partner.py
  6. 21
      partner_address_street3/tests/__init__.py
  7. 88
      partner_address_street3/tests/test_street_3.py
  8. 41
      partner_address_street3/view/partner_view.xml
  9. 4
      passport/tests/test_passport.py

4
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:

21
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 <http://www.gnu.org/licenses/>.
#
##############################################################################
from . import model

38
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 <http://www.gnu.org/licenses/>.
#
##############################################################################
{
'name': 'Street3 in addresses',
'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,
}

21
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 <http://www.gnu.org/licenses/>.
#
##############################################################################
from . import partner

44
partner_address_street3/model/partner.py

@ -0,0 +1,44 @@
# -*- 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 openerp.osv import orm, fields
from openerp.addons.base.res import res_partner
res_partner.ADDRESS_FIELDS = res_partner.ADDRESS_FIELDS + ('street3',)
class res_partner(orm.Model):
"""Add third field in address"""
_inherit = "res.partner"
_columns = {
'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"
"%(country_name)s"),
}

21
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 <http://www.gnu.org/licenses/>.
#
##############################################################################
from . import test_street_3

88
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 <http://www.gnu.org/licenses/>.
#
##############################################################################
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')

41
partner_address_street3/view/partner_view.xml

@ -0,0 +1,41 @@
<?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>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<xpath
expr="//form[@string='Partners']/sheet/group/group/div/field[@name='street2']"
position="after">
<field name="street3"
attrs="{'readonly': [('use_parent_address','=',True)]}"/>
</xpath>
<xpath expr="//form[@string='Contact']/sheet/group/div/field[@name='street2']"
position="after">
<field name="street3"/>
</xpath>
<xpath expr="//kanban/field[@name='street2']"
position="after">
<field name="street3"/>
</xpath>
</field>
</record>
<record id="add_street_3_in_kanban" model="ir.ui.view">
<field name="name">add street 3 in kanban</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.res_partner_kanban_view"/>
<field name="arch" type="xml">
<field name="street2" position="after">
<field name="street3"/>
</field>
</field>
</record>
</data>
</openerp>

4
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',

Loading…
Cancel
Save