From 22174c91022b8841f4b743126a8450037e347a95 Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Tue, 31 May 2016 08:44:44 +0200 Subject: [PATCH] [ADD] init hook to set gender based on titles --- partner_contact_gender/__init__.py | 1 + partner_contact_gender/__openerp__.py | 1 + partner_contact_gender/hooks.py | 20 +++++++++++++++++++ partner_contact_gender/tests/__init__.py | 4 ++++ .../tests/test_partner_contact_gender.py | 18 +++++++++++++++++ 5 files changed, 44 insertions(+) create mode 100644 partner_contact_gender/hooks.py create mode 100644 partner_contact_gender/tests/__init__.py create mode 100644 partner_contact_gender/tests/test_partner_contact_gender.py diff --git a/partner_contact_gender/__init__.py b/partner_contact_gender/__init__.py index edd280109..15aa29dc7 100644 --- a/partner_contact_gender/__init__.py +++ b/partner_contact_gender/__init__.py @@ -3,3 +3,4 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from . import models +from .hooks import post_init_hook diff --git a/partner_contact_gender/__openerp__.py b/partner_contact_gender/__openerp__.py index b7b5465ec..0dde59969 100644 --- a/partner_contact_gender/__openerp__.py +++ b/partner_contact_gender/__openerp__.py @@ -23,4 +23,5 @@ "data": [ "views/res_partner.xml", ], + 'post_init_hook': 'post_init_hook', } diff --git a/partner_contact_gender/hooks.py b/partner_contact_gender/hooks.py new file mode 100644 index 000000000..493dd7ef3 --- /dev/null +++ b/partner_contact_gender/hooks.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# © 2016 Therp BV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from openerp import api, SUPERUSER_ID + + +def post_init_hook(cr, pool): + env = api.Environment(cr, SUPERUSER_ID, {}) + gender_mappings = { + 'female': env.ref('base.res_partner_title_madam') + + env.ref('base.res_partner_title_miss'), + 'male': env.ref('base.res_partner_title_sir') + + env.ref('base.res_partner_title_mister'), + } + for gender, titles in gender_mappings.iteritems(): + env['res.partner'].with_context(active_test=False).search([ + ('title', 'in', titles.ids), + ]).write({ + 'gender': gender, + }) diff --git a/partner_contact_gender/tests/__init__.py b/partner_contact_gender/tests/__init__.py new file mode 100644 index 000000000..2b1cb9cfe --- /dev/null +++ b/partner_contact_gender/tests/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# © 2016 Therp BV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from . import test_partner_contact_gender diff --git a/partner_contact_gender/tests/test_partner_contact_gender.py b/partner_contact_gender/tests/test_partner_contact_gender.py new file mode 100644 index 000000000..4c7df1ad1 --- /dev/null +++ b/partner_contact_gender/tests/test_partner_contact_gender.py @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# © 2016 Therp BV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from openerp.tests.common import TransactionCase + + +class TestPartnerContactGender(TransactionCase): + def setUp(self): + super(TestPartnerContactGender, self).setUp() + self.testpartner = self.env['res.partner'].create({ + 'name': 'test', + 'title': self.env.ref('base.res_partner_title_madam').id, + }) + + def test_partner_contact_gender(self): + from ..hooks import post_init_hook + post_init_hook(self.cr, None) + self.assertEqual(self.testpartner.gender, 'female')