diff --git a/base_partner_one2many_phone/__init__.py b/base_partner_one2many_phone/__init__.py new file mode 100644 index 0000000..b0c0b4c --- /dev/null +++ b/base_partner_one2many_phone/__init__.py @@ -0,0 +1,23 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Base Partner One2many Phone module for OpenERP +# Copyright (C) 2014 Artisanat Monastique de Provence +# (http://www.barroux.org) +# +# 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_phone diff --git a/base_partner_one2many_phone/__manifest__.py b/base_partner_one2many_phone/__manifest__.py new file mode 100644 index 0000000..e55e465 --- /dev/null +++ b/base_partner_one2many_phone/__manifest__.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# © 2014-2016 Abbaye du Barroux (http://www.barroux.org) +# © 2016 Akretion (http://www.akretion.com>) +# @author: Frère Bernard +# @author: Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + 'name': 'Base Partner One2many Phone', + 'version': '0.1', + 'category': 'Phone', + 'license': 'AGPL-3', + 'summary': 'One2many link between partners and phone numbers', + 'description': """ +Base Partner One2many Phone +=========================== + +With this module, one partner can have N phone numbers. It adds a new table dedicated to phone numbers and a one2many link between partners and phone numbers. + +It has been developped by brother Bernard from Barroux Abbey and Alexis de Lattre from Akretion. + """, + 'author': 'Barroux', + 'website': 'http://www.barroux.org', + 'depends': ['base_phone'], + 'data': [ + 'partner_phone_view.xml', + 'security/ir.model.access.csv', + ], + 'active': True, +} diff --git a/base_partner_one2many_phone/i18n/base_partner_one2many_phone.pot b/base_partner_one2many_phone/i18n/base_partner_one2many_phone.pot new file mode 100644 index 0000000..6fb1780 --- /dev/null +++ b/base_partner_one2many_phone/i18n/base_partner_one2many_phone.pot @@ -0,0 +1,90 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * base_partner_one2many_phone +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 8.0alpha1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-02 13:35+0000\n" +"PO-Revision-Date: 2014-07-02 13:35+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: base_partner_one2many_phone +#: selection:res.partner.phone,type:0 +msgid "Home" +msgstr "" + +#. module: base_partner_one2many_phone +#: selection:res.partner.phone,type:0 +msgid "Home Fax" +msgstr "" + +#. module: base_partner_one2many_phone +#: selection:res.partner.phone,type:0 +msgid "Mobile" +msgstr "" + +#. module: base_partner_one2many_phone +#: field:res.partner.phone,note:0 +msgid "Note" +msgstr "" + +#. module: base_partner_one2many_phone +#: selection:res.partner.phone,type:0 +msgid "Office" +msgstr "" + +#. module: base_partner_one2many_phone +#: selection:res.partner.phone,type:0 +msgid "Office Fax" +msgstr "" + +#. module: base_partner_one2many_phone +#: selection:res.partner.phone,type:0 +msgid "Other" +msgstr "" + +#. module: base_partner_one2many_phone +#: model:ir.model,name:base_partner_one2many_phone.model_res_partner +msgid "Partner" +msgstr "" + +#. module: base_partner_one2many_phone +#: field:res.partner.phone,phone:0 +msgid "Phone" +msgstr "" + +#. module: base_partner_one2many_phone +#: field:res.partner.phone,type:0 +msgid "Phone Type" +msgstr "" + +#. module: base_partner_one2many_phone +#: selection:res.partner.phone,type:0 +msgid "Phone/fax Home" +msgstr "" + +#. module: base_partner_one2many_phone +#: model:ir.actions.act_window,name:base_partner_one2many_phone.res_partner_phone_action +#: model:ir.ui.menu,name:base_partner_one2many_phone.res_partner_phone_menu +#: field:res.partner,phone_ids:0 +#: view:res.partner.phone:0 +msgid "Phones" +msgstr "" + +#. module: base_partner_one2many_phone +#: field:res.partner.phone,partner_id:0 +msgid "Related Partner" +msgstr "" + +#. module: base_partner_one2many_phone +#: model:ir.model,name:base_partner_one2many_phone.model_res_partner_phone +msgid "res.partner.phone" +msgstr "" + diff --git a/base_partner_one2many_phone/i18n/fr.po b/base_partner_one2many_phone/i18n/fr.po new file mode 100644 index 0000000..f1302f0 --- /dev/null +++ b/base_partner_one2many_phone/i18n/fr.po @@ -0,0 +1,89 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * base_partner_one2many_phone +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 8.0alpha1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-07-02 13:37+0000\n" +"PO-Revision-Date: 2014-07-02 15:50+0100\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: \n" +"X-Generator: Poedit 1.5.7\n" + +#. module: base_partner_one2many_phone +#: selection:res.partner.phone,type:0 +msgid "Home" +msgstr "Domicile" + +#. module: base_partner_one2many_phone +#: selection:res.partner.phone,type:0 +msgid "Home Fax" +msgstr "Fax domicile" + +#. module: base_partner_one2many_phone +#: selection:res.partner.phone,type:0 +msgid "Mobile" +msgstr "Mobile" + +#. module: base_partner_one2many_phone +#: field:res.partner.phone,note:0 +msgid "Note" +msgstr "Note" + +#. module: base_partner_one2many_phone +#: selection:res.partner.phone,type:0 +msgid "Office" +msgstr "Bureau" + +#. module: base_partner_one2many_phone +#: selection:res.partner.phone,type:0 +msgid "Office Fax" +msgstr "Fax bureau" + +#. module: base_partner_one2many_phone +#: selection:res.partner.phone,type:0 +msgid "Other" +msgstr "Autre" + +#. module: base_partner_one2many_phone +#: model:ir.model,name:base_partner_one2many_phone.model_res_partner +msgid "Partner" +msgstr "Partenaire" + +#. module: base_partner_one2many_phone +#: field:res.partner.phone,phone:0 +msgid "Phone" +msgstr "Numéro de tél." + +#. module: base_partner_one2many_phone +#: field:res.partner.phone,type:0 +msgid "Phone Type" +msgstr "Type de téléphone" + +#. module: base_partner_one2many_phone +#: selection:res.partner.phone,type:0 +msgid "Phone/fax Home" +msgstr "Domicile tél./fax" + +#. module: base_partner_one2many_phone +#: model:ir.actions.act_window,name:base_partner_one2many_phone.res_partner_phone_action +#: model:ir.ui.menu,name:base_partner_one2many_phone.res_partner_phone_menu +#: field:res.partner,phone_ids:0 view:res.partner.phone:0 +msgid "Phones" +msgstr "Numéro de tél." + +#. module: base_partner_one2many_phone +#: field:res.partner.phone,partner_id:0 +msgid "Related Partner" +msgstr "Partenaire lié" + +#. module: base_partner_one2many_phone +#: model:ir.model,name:base_partner_one2many_phone.model_res_partner_phone +msgid "res.partner.phone" +msgstr "res.partner.phone" diff --git a/base_partner_one2many_phone/partner_phone.py b/base_partner_one2many_phone/partner_phone.py new file mode 100644 index 0000000..18eb253 --- /dev/null +++ b/base_partner_one2many_phone/partner_phone.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# © 2014-2016 Abbaye du Barroux (http://www.barroux.org) +# © 2016 Akretion (http://www.akretion.com>) +# @author: Frère Bernard +# @author: Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models, fields, api +from odoo.addons.base_phone.fields import Phone, Fax + + +class ResPartnerPhone(models.Model): + _name = 'res.partner.phone' + _order = 'partner_id, type' + + partner_id = fields.Many2one('res.partner', string='Related Partner') + type = fields.Selection([ + ('1_home', 'Home'), + ('2_mobile', 'Mobile'), + ('3_office', 'Office'), + ('4_home_fax', 'Home Fax'), + ('5_office_fax', 'Office Fax'), + ('6_phone_fax_home', 'Phone/fax Home'), + ('7_other', 'Other')], + string='Phone Type', required=True) + phone = Phone('Phone', required=True, partner_field='partner_id') + note = fields.Char('Note') + + +class ResPartner(models.Model): + _inherit = 'res.partner' + + @api.one + @api.depends('phone_ids.phone', 'phone_ids.type') + def _compute_partner_phone(self): + phone = mobile = fax = False + for partner_phone in self.phone_ids: + not_phone_type = ('2_mobile', '4_home_fax', '5_office_fax') + if partner_phone.type not in not_phone_type: + phone = partner_phone.phone + if partner_phone.type == '2_mobile': + mobile = partner_phone.phone + if partner_phone.type in ('5_office_fax', '4_home_fax'): + fax = partner_phone.phone + self.phone = phone + self.mobile = mobile + self.fax = fax + + phone_ids = fields.One2many( + 'res.partner.phone', 'partner_id', string='Phones') + phone = Phone( + compute='_compute_partner_phone', store=True, readonly=True) + mobile = Phone( + compute='_compute_partner_phone', store=True, readonly=True) + fax = Fax( + compute='_compute_partner_phone', store=True, readonly=True) diff --git a/base_partner_one2many_phone/partner_phone_view.xml b/base_partner_one2many_phone/partner_phone_view.xml new file mode 100644 index 0000000..94c3494 --- /dev/null +++ b/base_partner_one2many_phone/partner_phone_view.xml @@ -0,0 +1,93 @@ + + + + + + + + res.partner.phone.tree + res.partner.phone + + + + + + + + + + + + res.partner.phone.search + res.partner.phone + + + + + + + + + Phones + res.partner.phone + tree + {'partner_phone_main_view': True} + + + + + + add.phone_ids.on.partner.form + res.partner + + + + + + + 1 + + + 1 + + + 1 + + + + + + 1 + + + 1 + + + + + + add.phone_ids.on.res.partner.simplified.form + res.partner + + + + + + + 1 + + + 1 + + + + + + diff --git a/base_partner_one2many_phone/security/ir.model.access.csv b/base_partner_one2many_phone/security/ir.model.access.csv new file mode 100644 index 0000000..64c685a --- /dev/null +++ b/base_partner_one2many_phone/security/ir.model.access.csv @@ -0,0 +1,3 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_partner_phone_full,Full access on res.partner.phone to Contact Manager grp,model_res_partner_phone,base.group_partner_manager,1,1,1,1 +access_partner_phone_read,Read access on res.partner.phone to Employees grp,model_res_partner_phone,base.group_user,1,0,0,0