Browse Source

[11.0][MIG] partner_identification

pull/526/head
Simone Orsi 7 years ago
parent
commit
62bc89820a
  1. 27
      partner_identification/README.rst
  2. 15
      partner_identification/__manifest__.py
  3. 6
      partner_identification/models/res_partner.py
  4. 26
      partner_identification/models/res_partner_id_category.py
  5. 6
      partner_identification/models/res_partner_id_number.py
  6. 14
      partner_identification/tests/test_partner_identification.py
  7. 5
      partner_identification/tests/test_res_partner.py
  8. 8
      partner_identification/views/res_partner_id_category_view.xml
  9. 6
      partner_identification/views/res_partner_id_number_view.xml
  10. 7
      partner_identification/views/res_partner_view.xml

27
partner_identification/README.rst

@ -27,7 +27,7 @@ No specific installation step required
Configuration
=============
Configure all ID types you need in Sales > Configuration > Contacts > Partner ID Categories.
Configure all ID types you need in Contacts > Configuration > Partner ID Categories.
For example, we create a category 'Driver License':
Name:
@ -40,10 +40,10 @@ Python validation code:
.. code-block:: python
partner.with_context(id_no_validate=True).write({
'name': 'Bad Value',
'category_id': self.env.ref('id_category_only_numerics').id,
})
partner.with_context(id_no_validate=True).write({
'name': 'Bad Value',
'category_id': self.env.ref('id_category_only_numerics').id,
})
Usage
=====
@ -70,7 +70,7 @@ Notes:
.. 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/10.0
:target: https://runbot.odoo-community.org/runbot/134/11.0
Known issues / Roadmap
@ -86,16 +86,18 @@ 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_identifiers%0Aversion:%20
9.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
help us smash it by providing detailed and welcomed feedback.
Credits
=======
Images
------
* Odoo Community Association: `Icon <https://odoo-community.org/logo.png>`_.
Contributors
------------
@ -105,6 +107,8 @@ Contributors
* Laurent Mignon <laurent.mignon@acsone.eu>
* Jairo Llopis <jairo.llopis@tecnativa.com>
* Dave Lasley <dave@laslabs.com>
* Simone Orsi <simone.orsi@camptocamp.com>
Maintainer
----------
@ -120,4 +124,3 @@ mission is to support the collaborative development of Odoo features and
promote its widespread use.
To contribute to this module, please visit https://odoo-community.org.

15
partner_identification/__openerp__.py → partner_identification/__manifest__.py

@ -1,19 +1,20 @@
# -*- coding: utf-8 -*-
#
# © 2004-2010 Tiny SPRL http://tiny.be
# © 2010-2012 ChriCar Beteiligungs- und Beratungs- GmbH
# Copyright 2004-2010 Tiny SPRL http://tiny.be
# Copyright 2010-2012 ChriCar Beteiligungs- und Beratungs- GmbH
# http://www.camptocamp.at
# © 2015 Antiun Ingenieria, SL (Madrid, Spain)
# Copyright 2015 Antiun Ingenieria, SL (Madrid, Spain)
# http://www.antiun.com
# Antonio Espinosa <antonioea@antiun.com>
# © 2016 ACSONE SA/NV (<http://acsone.eu>)
# Copyright 2016 ACSONE SA/NV (<http://acsone.eu>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
{
'name': 'Partner Identification Numbers',
'category': 'Customer Relationship Management',
'version': '10.0.1.1.1',
'version': '11.0.1.0.0',
'license': 'AGPL-3',
'depends': [
'sales_team',
'contacts',
],
'data': [
'views/res_partner_id_category_view.xml',
@ -28,6 +29,4 @@
'LasLabs,'
'Odoo Community Association (OCA)',
'website': 'https://odoo-community.org/',
'license': 'AGPL-3',
'installable': True,
}

6
partner_identification/models/res_partner.py

@ -1,9 +1,9 @@
# -*- coding: utf-8 -*-
#
# © 2004-2010 Tiny SPRL http://tiny.be
# © 2010-2012 ChriCar Beteiligungs- und Beratungs- GmbH
# Copyright 2004-2010 Tiny SPRL http://tiny.be
# Copyright 2010-2012 ChriCar Beteiligungs- und Beratungs- GmbH
# http://www.camptocamp.at
# © 2015 Antiun Ingenieria, SL (Madrid, Spain)
# Copyright 2015 Antiun Ingenieria, SL (Madrid, Spain)
# http://www.antiun.com
# Antonio Espinosa <antonioea@antiun.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

26
partner_identification/models/res_partner_id_category.py

@ -1,12 +1,12 @@
# -*- coding: utf-8 -*-
#
# © 2004-2010 Tiny SPRL http://tiny.be
# © 2010-2012 ChriCar Beteiligungs- und Beratungs- GmbH
# Copyright 2004-2010 Tiny SPRL http://tiny.be
# Copyright 2010-2012 ChriCar Beteiligungs- und Beratungs- GmbH
# http://www.camptocamp.at
# © 2015 Antiun Ingenieria, SL (Madrid, Spain)
# Copyright 2015 Antiun Ingenieria, SL (Madrid, Spain)
# http://www.antiun.com
# Antonio Espinosa <antonioea@antiun.com>
# © 2016 ACSONE SA/NV (<http://acsone.eu>)
# Copyright 2016 ACSONE SA/NV (<http://acsone.eu>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
@ -19,14 +19,6 @@ class ResPartnerIdCategory(models.Model):
_name = "res.partner.id_category"
_order = "name"
def _default_validation_code(self):
return _("\n# Python code. Use failed = True to specify that the id "
"number is not valid.\n"
"# You can use the following variables :\n"
"# - self: browse_record of the current ID Category "
"browse_record\n"
"# - id_number: browse_record of ID number to validate")
code = fields.Char(
string="Code", size=16, required=True,
help="Abbreviation or acronym of this ID type. For example, "
@ -38,7 +30,15 @@ class ResPartnerIdCategory(models.Model):
validation_code = fields.Text(
'Python validation code',
help="Python code called to validate an id number.",
default=_default_validation_code)
default=lambda self: self._default_validation_code())
def _default_validation_code(self):
return _("\n# Python code. Use failed = True to specify that the id "
"number is not valid.\n"
"# You can use the following variables :\n"
"# - self: browse_record of the current ID Category "
"browse_record\n"
"# - id_number: browse_record of ID number to validate")
@api.multi
def _validation_eval_context(self, id_number):

6
partner_identification/models/res_partner_id_number.py

@ -1,9 +1,9 @@
# -*- coding: utf-8 -*-
#
# © 2004-2010 Tiny SPRL http://tiny.be
# © 2010-2012 ChriCar Beteiligungs- und Beratungs- GmbH
# Copyright 2004-2010 Tiny SPRL http://tiny.be
# Copyright 2010-2012 ChriCar Beteiligungs- und Beratungs- GmbH
# http://www.camptocamp.at
# © 2015 Antiun Ingenieria, SL (Madrid, Spain)
# Copyright 2015 Antiun Ingenieria, SL (Madrid, Spain)
# http://www.antiun.com
# Antonio Espinosa <antonioea@antiun.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).

14
partner_identification/tests/test_partner_identification.py

@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
# © 2016 ACSONE SA/NV (<http://acsone.eu>)
# Copyright 2016 ACSONE SA/NV (<http://acsone.eu>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from psycopg2._psycopg import IntegrityError
from odoo.tests import common
@ -19,7 +19,7 @@ class TestPartnerIdentificationBase(common.TransactionCase):
self.assertEqual(partner_id_category.code, 'id_code')
partner_1 = self.env.ref('base.res_partner_1')
self.assertEquals(len(partner_1.id_numbers), 0)
self.assertEqual(len(partner_1.id_numbers), 0)
# create without required category
with self.assertRaises(IntegrityError), self.cr.savepoint():
partner_1.write({'id_numbers': [(0, 0, {
@ -30,11 +30,11 @@ class TestPartnerIdentificationBase(common.TransactionCase):
'name': '1234',
'category_id': partner_id_category.id
})]})
self.assertEquals(len(partner_1.id_numbers), 1)
self.assertEquals(partner_1.id_numbers.name, '1234')
self.assertEqual(len(partner_1.id_numbers), 1)
self.assertEqual(partner_1.id_numbers.name, '1234')
# delete
partner_1.write({'id_numbers': [(5, 0, 0)]})
self.assertEquals(len(partner_1.id_numbers), 0)
self.assertEqual(len(partner_1.id_numbers), 0)
class TestPartnerCategoryValidation(common.TransactionCase):
@ -58,8 +58,8 @@ if id_number.name != '1234':
'name': '1234',
'category_id': partner_id_category.id
})]})
self.assertEquals(len(partner_1.id_numbers), 1)
self.assertEquals(partner_1.id_numbers.name, '1234')
self.assertEqual(len(partner_1.id_numbers), 1)
self.assertEqual(partner_1.id_numbers.name, '1234')
partner_id_category2 = self.env['res.partner.id_category'].create({
'code': 'id_code2',

5
partner_identification/tests/test_res_partner.py

@ -40,12 +40,11 @@ class TestResPartner(common.SavepointCase):
inst = model_cls._build_model(registry, cr)
model = cls.env[model_cls._inherit].with_context(todo=[])
model._prepare_setup()
model._setup_base(partial=False)
model._setup_fields(partial=False)
model._setup_base()
model._setup_fields()
model._setup_complete()
model._auto_init()
model.init()
model._auto_end()
return inst
@classmethod

8
partner_identification/views/res_partner_id_category_view.xml

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<odoo>
<!-- Partner Identification Number Categories -->
<record id="view_partner_id_category_form" model="ir.ui.view">
@ -38,7 +37,6 @@
<menuitem action="action_partner_id_category"
id="menu_partner_id_category"
parent="sales_team.menu_config_address_book"/>
parent="contacts.res_partner_menu_config"/>
</data>
</openerp>
</odoo>

6
partner_identification/views/res_partner_id_number_view.xml

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<odoo>
<record id="view_partner_id_numbers_form" model="ir.ui.view">
<field name="name">res.partner.id_number.form</field>
@ -48,5 +47,4 @@
<field name="view_mode">tree,form</field>
</record>
</data>
</openerp>
</odoo>

7
partner_identification/views/res_partner_view.xml

@ -1,6 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
<odoo>
<!-- Modification of Partner - Adding Tab for Idenification Numbers -->
<record model="ir.ui.view" id="view_partner_form">
@ -18,6 +17,4 @@
</field>
</record>
</data>
</openerp>
</odoo>
Loading…
Cancel
Save