From 7cd001f3edc0420dfd77d8dc1790c9cb09eb3d70 Mon Sep 17 00:00:00 2001 From: Antonio Espinosa Date: Wed, 25 Mar 2015 10:08:20 +0100 Subject: [PATCH 01/17] [ADD] crm_capital addon --- crm_capital/README.rst | 18 +++ crm_capital/__init__.py | 6 + crm_capital/__openerp__.py | 39 +++++++ crm_capital/i18n/crm_capital.pot | 105 ++++++++++++++++++ crm_capital/i18n/es.po | 105 ++++++++++++++++++ crm_capital/models/__init__.py | 8 ++ crm_capital/models/crm_lead.py | 28 +++++ crm_capital/models/crm_turnover_range.py | 20 ++++ crm_capital/models/res_partner.py | 14 +++ crm_capital/security/ir.model.access.csv | 5 + crm_capital/static/description/icon.png | Bin 0 -> 19467 bytes crm_capital/views/crm_lead_view.xml | 30 +++++ crm_capital/views/crm_turnover_range_view.xml | 30 +++++ crm_capital/views/res_partner_view.xml | 20 ++++ 14 files changed, 428 insertions(+) create mode 100644 crm_capital/README.rst create mode 100644 crm_capital/__init__.py create mode 100644 crm_capital/__openerp__.py create mode 100644 crm_capital/i18n/crm_capital.pot create mode 100644 crm_capital/i18n/es.po create mode 100644 crm_capital/models/__init__.py create mode 100644 crm_capital/models/crm_lead.py create mode 100644 crm_capital/models/crm_turnover_range.py create mode 100644 crm_capital/models/res_partner.py create mode 100644 crm_capital/security/ir.model.access.csv create mode 100644 crm_capital/static/description/icon.png create mode 100644 crm_capital/views/crm_lead_view.xml create mode 100644 crm_capital/views/crm_turnover_range_view.xml create mode 100644 crm_capital/views/res_partner_view.xml diff --git a/crm_capital/README.rst b/crm_capital/README.rst new file mode 100644 index 000000000..735a076d7 --- /dev/null +++ b/crm_capital/README.rst @@ -0,0 +1,18 @@ +Capital in CRM +================ + +This module allows to set capital country, capital registered and turnover +for companies in the CRM main objects (lead, opportunity, partner), and +propagate them through the workflow. + +By capital country we mean country of origin of the capital of the company +By capital registered we mean the amount of money registered in comercial +registry, aka social capital or just capital of a company +By turnover we can define a range an a concret amount + +Credits +======= + +Contributors +------------ +* Antonio Espinosa diff --git a/crm_capital/__init__.py b/crm_capital/__init__.py new file mode 100644 index 000000000..054c8853d --- /dev/null +++ b/crm_capital/__init__.py @@ -0,0 +1,6 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# For copyright and license notices, see __openerp__.py file in root directory +############################################################################## + +from . import models diff --git a/crm_capital/__openerp__.py b/crm_capital/__openerp__.py new file mode 100644 index 000000000..0a26b02b4 --- /dev/null +++ b/crm_capital/__openerp__.py @@ -0,0 +1,39 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# OpenERP, Odoo Source Management Solution +# Copyright (c) 2015 Antiun Ingeniería S.L. (http://www.antiun.com) +# Antonio Espinosa +# +# 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': 'Capital in CRM', + 'version': '1.0', + 'category': 'Customer Relationship Management', + 'author': 'Antiun Ingeniería S.L.', + 'website': 'http://www.antiun.com', + 'depends': [ + 'crm', + ], + 'data': [ + 'views/crm_turnover_range_view.xml', + 'views/crm_lead_view.xml', + 'views/res_partner_view.xml', + 'security/ir.model.access.csv', + ], + "installable": True, +} diff --git a/crm_capital/i18n/crm_capital.pot b/crm_capital/i18n/crm_capital.pot new file mode 100644 index 000000000..9434fb358 --- /dev/null +++ b/crm_capital/i18n/crm_capital.pot @@ -0,0 +1,105 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * crm_capital +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 8.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-03-24 11:53+0000\n" +"PO-Revision-Date: 2015-03-24 11:53+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: crm_capital +#: field:crm.lead,capital_country:0 +msgid "Capital country" +msgstr "" + +#. module: crm_capital +#: field:crm.lead,capital_registered:0 +#: field:res.partner,capital_registered:0 +msgid "Capital registered" +msgstr "" + +#. module: crm_capital +#: field:crm.turnover_range,children:0 +msgid "Children" +msgstr "" + +#. module: crm_capital +#: help:crm.lead,capital_country:0 +msgid "Country of origin of the capital of this company" +msgstr "" + +#. module: crm_capital +#: field:crm.turnover_range,create_uid:0 +msgid "Created by" +msgstr "" + +#. module: crm_capital +#: field:crm.turnover_range,create_date:0 +msgid "Created on" +msgstr "" + +#. module: crm_capital +#: field:crm.turnover_range,id:0 +msgid "ID" +msgstr "" + +#. module: crm_capital +#: field:crm.turnover_range,write_uid:0 +msgid "Last Updated by" +msgstr "" + +#. module: crm_capital +#: field:crm.turnover_range,write_date:0 +msgid "Last Updated on" +msgstr "" + +#. module: crm_capital +#: model:ir.model,name:crm_capital.model_crm_lead +msgid "Lead/Opportunity" +msgstr "" + +#. module: crm_capital +#: field:crm.turnover_range,name:0 +msgid "Name" +msgstr "" + +#. module: crm_capital +#: field:crm.turnover_range,parent_left:0 +msgid "Parent Left" +msgstr "" + +#. module: crm_capital +#: field:crm.turnover_range,parent_right:0 +msgid "Parent Right" +msgstr "" + +#. module: crm_capital +#: field:crm.turnover_range,parent_id:0 +msgid "Parent id" +msgstr "" + +#. module: crm_capital +#: model:ir.model,name:crm_capital.model_res_partner +msgid "Partner" +msgstr "" + +#. module: crm_capital +#: model:ir.model,name:crm_capital.model_crm_turnover_range +msgid "Turnover range" +msgstr "" + +#. module: crm_capital +#: view:crm.turnover_range:crm_capital.crm_turnover_range_tree_view +#: model:ir.actions.act_window,name:crm_capital.crm_turnover_range_action +#: model:ir.ui.menu,name:crm_capital.menu_crm_turnover_range +msgid "Turnover ranges" +msgstr "" + diff --git a/crm_capital/i18n/es.po b/crm_capital/i18n/es.po new file mode 100644 index 000000000..f5b80e398 --- /dev/null +++ b/crm_capital/i18n/es.po @@ -0,0 +1,105 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * crm_capital +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 8.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-03-24 11:53+0000\n" +"PO-Revision-Date: 2015-03-24 11:53+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: crm_capital +#: field:crm.lead,capital_country:0 +msgid "Capital country" +msgstr "Nacionalidad del capital" + +#. module: crm_capital +#: field:crm.lead,capital_registered:0 +#: field:res.partner,capital_registered:0 +msgid "Capital registered" +msgstr "Capital social" + +#. module: crm_capital +#: field:crm.turnover_range,children:0 +msgid "Children" +msgstr "Hijos" + +#. module: crm_capital +#: help:crm.lead,capital_country:0 +msgid "Country of origin of the capital of this company" +msgstr "País de origen del capital social de esta empresa" + +#. module: crm_capital +#: field:crm.turnover_range,create_uid:0 +msgid "Created by" +msgstr "Creado por" + +#. module: crm_capital +#: field:crm.turnover_range,create_date:0 +msgid "Created on" +msgstr "Creado en" + +#. module: crm_capital +#: field:crm.turnover_range,id:0 +msgid "ID" +msgstr "ID" + +#. module: crm_capital +#: field:crm.turnover_range,write_uid:0 +msgid "Last Updated by" +msgstr "Última actualización por" + +#. module: crm_capital +#: field:crm.turnover_range,write_date:0 +msgid "Last Updated on" +msgstr "última actualización en" + +#. module: crm_capital +#: model:ir.model,name:crm_capital.model_crm_lead +msgid "Lead/Opportunity" +msgstr "Iniciativa/Oportunidad" + +#. module: crm_capital +#: field:crm.turnover_range,name:0 +msgid "Name" +msgstr "Nombre" + +#. module: crm_capital +#: field:crm.turnover_range,parent_left:0 +msgid "Parent Left" +msgstr "Padre izquierdo" + +#. module: crm_capital +#: field:crm.turnover_range,parent_right:0 +msgid "Parent Right" +msgstr "Padre derecho" + +#. module: crm_capital +#: field:crm.turnover_range,parent_id:0 +msgid "Parent id" +msgstr "ID del padre" + +#. module: crm_capital +#: model:ir.model,name:crm_capital.model_res_partner +msgid "Partner" +msgstr "Empresa" + +#. module: crm_capital +#: model:ir.model,name:crm_capital.model_crm_turnover_range +msgid "Turnover range" +msgstr "Rango de facturación" + +#. module: crm_capital +#: view:crm.turnover_range:crm_capital.crm_turnover_range_tree_view +#: model:ir.actions.act_window,name:crm_capital.crm_turnover_range_action +#: model:ir.ui.menu,name:crm_capital.menu_crm_turnover_range +msgid "Turnover ranges" +msgstr "Rangos de facturación" + diff --git a/crm_capital/models/__init__.py b/crm_capital/models/__init__.py new file mode 100644 index 000000000..2e0c5d82f --- /dev/null +++ b/crm_capital/models/__init__.py @@ -0,0 +1,8 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# For copyright and license notices, see __openerp__.py file in root directory +############################################################################## + +from . import crm_turnover_range +from . import crm_lead +from . import res_partner diff --git a/crm_capital/models/crm_lead.py b/crm_capital/models/crm_lead.py new file mode 100644 index 000000000..0b0a517f2 --- /dev/null +++ b/crm_capital/models/crm_lead.py @@ -0,0 +1,28 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# For copyright and license notices, see __openerp__.py file in root directory +############################################################################## +from openerp import models, fields + + +class CrmLead(models.Model): + _inherit = 'crm.lead' + + capital_country = fields.Many2one( + 'res.country', string="Capital country", + help="Country of origin of the capital of this company") + capital_registered = fields.Integer(string="Capital registered") + + def _lead_create_contact(self, cr, uid, lead, name, is_company, + parent_id=False, context=None): + """Propagate capital_country and capital_registered to created partner. + """ + partner_id = super(CrmLead, self)._lead_create_contact( + cr, uid, lead, name, is_company, parent_id=parent_id, + context=context) + self.pool['res.partner'].write( + cr, uid, partner_id, { + 'capital_country': lead.capital_country.id, + 'capital_registered': lead.capital_registered + }, context=context) + return partner_id diff --git a/crm_capital/models/crm_turnover_range.py b/crm_capital/models/crm_turnover_range.py new file mode 100644 index 000000000..875496abf --- /dev/null +++ b/crm_capital/models/crm_turnover_range.py @@ -0,0 +1,20 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# For copyright and license notices, see __openerp__.py file in root directory +############################################################################## +from openerp import models, fields + + +class CrmTurnoverRange(models.Model): + _name = 'crm.turnover_range' + _order = "parent_left" + _parent_order = "name" + _parent_store = True + _description = "Turnover range" + + name = fields.Char(required=True) + parent_id = fields.Many2one(comodel_name='crm.turnover_range') + children = fields.One2many(comodel_name='crm.turnover_range', + inverse_name='parent_id') + parent_left = fields.Integer('Parent Left', select=True) + parent_right = fields.Integer('Parent Right', select=True) diff --git a/crm_capital/models/res_partner.py b/crm_capital/models/res_partner.py new file mode 100644 index 000000000..8eb85d32e --- /dev/null +++ b/crm_capital/models/res_partner.py @@ -0,0 +1,14 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# For copyright and license notices, see __openerp__.py file in root directory +############################################################################## +from openerp import models, fields + + +class ResPartner(models.Model): + _inherit = 'res.partner' + + capital_country = fields.Many2one( + 'res.country', string="Capital country", + help="Country of origin of the capital of this company") + capital_registered = fields.Integer(string="Capital registered") diff --git a/crm_capital/security/ir.model.access.csv b/crm_capital/security/ir.model.access.csv new file mode 100644 index 000000000..ff06a904d --- /dev/null +++ b/crm_capital/security/ir.model.access.csv @@ -0,0 +1,5 @@ +"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" +"access_crm_turnover_public","crm_turnover_range group_public","model_crm_turnover_range","base.group_public",1,0,0,0 +"access_crm_turnover_portal","crm_turnover_range group_portal","model_crm_turnover_range","base.group_portal",1,0,0,0 +"access_crm_turnover_group_partner_manager","crm_turnover_range group_partner_manager","model_crm_turnover_range","base.group_partner_manager",1,1,1,1 +"access_crm_turnover_group_user","crm_turnover_range group_user","model_crm_turnover_range","base.group_user",1,0,0,0 diff --git a/crm_capital/static/description/icon.png b/crm_capital/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..abc5b9a32987ba72504e20d2f7e8316c7ca59f93 GIT binary patch literal 19467 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 inrNblCYtz7!T$qmYbM86->(b+0000 + + + + + CRM - Leads Form with capital info + crm.lead + + + + + + + + + + + CRM - Leads Form with capital info + crm.lead + + + + + + + + + + + \ No newline at end of file diff --git a/crm_capital/views/crm_turnover_range_view.xml b/crm_capital/views/crm_turnover_range_view.xml new file mode 100644 index 000000000..329aff280 --- /dev/null +++ b/crm_capital/views/crm_turnover_range_view.xml @@ -0,0 +1,30 @@ + + + + + + Turnover ranges + crm.turnover_range + form + tree + + + + CRM Turnover range tree + crm.turnover_range + + + + + + + + + + + + \ No newline at end of file diff --git a/crm_capital/views/res_partner_view.xml b/crm_capital/views/res_partner_view.xml new file mode 100644 index 000000000..f5e730709 --- /dev/null +++ b/crm_capital/views/res_partner_view.xml @@ -0,0 +1,20 @@ + + + + + + Partner form with capital info + res.partner + + + + + + + + + + + \ No newline at end of file From d9447b070e655126bc143cbe817ed727e3794352 Mon Sep 17 00:00:00 2001 From: Antonio Espinosa Date: Fri, 27 Mar 2015 12:53:53 +0100 Subject: [PATCH 02/17] Set some fields as tranlate --- crm_capital/models/crm_turnover_range.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crm_capital/models/crm_turnover_range.py b/crm_capital/models/crm_turnover_range.py index 875496abf..5df06607b 100644 --- a/crm_capital/models/crm_turnover_range.py +++ b/crm_capital/models/crm_turnover_range.py @@ -12,7 +12,7 @@ class CrmTurnoverRange(models.Model): _parent_store = True _description = "Turnover range" - name = fields.Char(required=True) + name = fields.Char(required=True, translate=True) parent_id = fields.Many2one(comodel_name='crm.turnover_range') children = fields.One2many(comodel_name='crm.turnover_range', inverse_name='parent_id') From d487f3c8471873dedfbd70e1a09bca6fe9b5f8dc Mon Sep 17 00:00:00 2001 From: Antonio Espinosa Date: Mon, 30 Mar 2015 17:29:52 +0200 Subject: [PATCH 03/17] Turnover items has no parent --- crm_capital/models/crm_turnover_range.py | 8 -------- crm_capital/views/crm_turnover_range_view.xml | 1 - 2 files changed, 9 deletions(-) diff --git a/crm_capital/models/crm_turnover_range.py b/crm_capital/models/crm_turnover_range.py index 5df06607b..b6784462e 100644 --- a/crm_capital/models/crm_turnover_range.py +++ b/crm_capital/models/crm_turnover_range.py @@ -7,14 +7,6 @@ from openerp import models, fields class CrmTurnoverRange(models.Model): _name = 'crm.turnover_range' - _order = "parent_left" - _parent_order = "name" - _parent_store = True _description = "Turnover range" name = fields.Char(required=True, translate=True) - parent_id = fields.Many2one(comodel_name='crm.turnover_range') - children = fields.One2many(comodel_name='crm.turnover_range', - inverse_name='parent_id') - parent_left = fields.Integer('Parent Left', select=True) - parent_right = fields.Integer('Parent Right', select=True) diff --git a/crm_capital/views/crm_turnover_range_view.xml b/crm_capital/views/crm_turnover_range_view.xml index 329aff280..fbc3f87c9 100644 --- a/crm_capital/views/crm_turnover_range_view.xml +++ b/crm_capital/views/crm_turnover_range_view.xml @@ -15,7 +15,6 @@ - From 14cb48926b6fcc46d85bbffa318223ae76f15e8a Mon Sep 17 00:00:00 2001 From: Antonio Espinosa Date: Wed, 8 Apr 2015 19:34:05 +0200 Subject: [PATCH 04/17] [FIX] Declare turnover fields in model --- crm_capital/models/crm_lead.py | 6 +++++- crm_capital/models/res_partner.py | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/crm_capital/models/crm_lead.py b/crm_capital/models/crm_lead.py index 0b0a517f2..6e3978fe6 100644 --- a/crm_capital/models/crm_lead.py +++ b/crm_capital/models/crm_lead.py @@ -12,6 +12,8 @@ class CrmLead(models.Model): 'res.country', string="Capital country", help="Country of origin of the capital of this company") capital_registered = fields.Integer(string="Capital registered") + turnover_range = fields.Many2one(comodel_name='crm.turnover_range') + turnover_number = fields.Integer() def _lead_create_contact(self, cr, uid, lead, name, is_company, parent_id=False, context=None): @@ -23,6 +25,8 @@ class CrmLead(models.Model): self.pool['res.partner'].write( cr, uid, partner_id, { 'capital_country': lead.capital_country.id, - 'capital_registered': lead.capital_registered + 'capital_registered': lead.capital_registered, + 'turnover_range': lead.turnover_range.id, + 'turnover_number': lead.turnover_number, }, context=context) return partner_id diff --git a/crm_capital/models/res_partner.py b/crm_capital/models/res_partner.py index 8eb85d32e..ded600eeb 100644 --- a/crm_capital/models/res_partner.py +++ b/crm_capital/models/res_partner.py @@ -12,3 +12,5 @@ class ResPartner(models.Model): 'res.country', string="Capital country", help="Country of origin of the capital of this company") capital_registered = fields.Integer(string="Capital registered") + turnover_range = fields.Many2one(comodel_name='crm.turnover_range') + turnover_number = fields.Integer() From 99938d564a3bd443932aebe24adae06ffe1debd3 Mon Sep 17 00:00:00 2001 From: Antonio Espinosa Date: Wed, 8 Apr 2015 19:34:58 +0200 Subject: [PATCH 05/17] [FIX] XML revised --- crm_capital/views/crm_lead_view.xml | 86 +++++++++++++------ crm_capital/views/crm_turnover_range_view.xml | 46 +++++----- crm_capital/views/res_partner_view.xml | 52 +++++++---- 3 files changed, 120 insertions(+), 64 deletions(-) diff --git a/crm_capital/views/crm_lead_view.xml b/crm_capital/views/crm_lead_view.xml index 87f66a013..a06b65a4d 100644 --- a/crm_capital/views/crm_lead_view.xml +++ b/crm_capital/views/crm_lead_view.xml @@ -1,30 +1,66 @@ - + - + - - CRM - Leads Form with capital info - crm.lead - - - - - - - - + + CRM - Leads Form with capital info + crm.lead + + + + + + + + + + - - CRM - Leads Form with capital info - crm.lead - - - - - - - - + + CRM - Leads Search with capital + crm.lead + + + + + + + + - + + CRM - Leads Form with capital info + crm.lead + + + + + + + + + + + + + CRM - Leads Search with capital + crm.lead + + + + + + + + + + \ No newline at end of file diff --git a/crm_capital/views/crm_turnover_range_view.xml b/crm_capital/views/crm_turnover_range_view.xml index fbc3f87c9..366896a2d 100644 --- a/crm_capital/views/crm_turnover_range_view.xml +++ b/crm_capital/views/crm_turnover_range_view.xml @@ -1,29 +1,29 @@ - + - + - - Turnover ranges - crm.turnover_range - form - tree - + + Turnover ranges + crm.turnover_range + form + tree + - - CRM Turnover range tree - crm.turnover_range - - - - - - + + CRM Turnover range tree + crm.turnover_range + + + + + + - + - + \ No newline at end of file diff --git a/crm_capital/views/res_partner_view.xml b/crm_capital/views/res_partner_view.xml index f5e730709..38013dad0 100644 --- a/crm_capital/views/res_partner_view.xml +++ b/crm_capital/views/res_partner_view.xml @@ -1,20 +1,40 @@ - + - + - - Partner form with capital info - res.partner - - - - - - - - + + Partner form with capital info + res.partner + + + + + + + + + + - + + Partner search with capital + res.partner + + + + + + + + + + \ No newline at end of file From 74cfb885a5597788df27e66bd7b96f30e3d2fce7 Mon Sep 17 00:00:00 2001 From: Antonio Espinosa Date: Thu, 16 Apr 2015 16:32:07 +0200 Subject: [PATCH 06/17] [FIX] View fields review --- crm_capital/views/crm_lead_view.xml | 12 ++++++++---- crm_capital/views/res_partner_view.xml | 10 ++++++---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/crm_capital/views/crm_lead_view.xml b/crm_capital/views/crm_lead_view.xml index a06b65a4d..a0a38e91b 100644 --- a/crm_capital/views/crm_lead_view.xml +++ b/crm_capital/views/crm_lead_view.xml @@ -8,9 +8,11 @@ - + - + @@ -38,9 +40,11 @@ - + - + diff --git a/crm_capital/views/res_partner_view.xml b/crm_capital/views/res_partner_view.xml index 38013dad0..72c12ce15 100644 --- a/crm_capital/views/res_partner_view.xml +++ b/crm_capital/views/res_partner_view.xml @@ -8,12 +8,14 @@ - + - + From 204eaec59014a5f108d8ae8810af1a7ee7925898 Mon Sep 17 00:00:00 2001 From: Antonio Espinosa Date: Fri, 24 Apr 2015 12:26:24 +0200 Subject: [PATCH 07/17] [IMP] Add company size field --- crm_capital/models/crm_lead.py | 5 +++++ crm_capital/models/res_partner.py | 4 ++++ crm_capital/views/crm_lead_view.xml | 8 ++++++++ crm_capital/views/res_partner_view.xml | 5 +++++ 4 files changed, 22 insertions(+) diff --git a/crm_capital/models/crm_lead.py b/crm_capital/models/crm_lead.py index 6e3978fe6..02342d728 100644 --- a/crm_capital/models/crm_lead.py +++ b/crm_capital/models/crm_lead.py @@ -14,6 +14,10 @@ class CrmLead(models.Model): capital_registered = fields.Integer(string="Capital registered") turnover_range = fields.Many2one(comodel_name='crm.turnover_range') turnover_number = fields.Integer() + company_size = fields.Selection( + string="Company size", + selection=[('micro', 'Micro'), ('small', 'Small'), + ('medium', 'Medium'), ('big', 'Big')]) def _lead_create_contact(self, cr, uid, lead, name, is_company, parent_id=False, context=None): @@ -28,5 +32,6 @@ class CrmLead(models.Model): 'capital_registered': lead.capital_registered, 'turnover_range': lead.turnover_range.id, 'turnover_number': lead.turnover_number, + 'company_size': lead.company_size, }, context=context) return partner_id diff --git a/crm_capital/models/res_partner.py b/crm_capital/models/res_partner.py index ded600eeb..b0a0df7df 100644 --- a/crm_capital/models/res_partner.py +++ b/crm_capital/models/res_partner.py @@ -14,3 +14,7 @@ class ResPartner(models.Model): capital_registered = fields.Integer(string="Capital registered") turnover_range = fields.Many2one(comodel_name='crm.turnover_range') turnover_number = fields.Integer() + company_size = fields.Selection( + string="Company size", + selection=[('micro', 'Micro'), ('small', 'Small'), + ('medium', 'Medium'), ('big', 'Big')]) diff --git a/crm_capital/views/crm_lead_view.xml b/crm_capital/views/crm_lead_view.xml index a0a38e91b..6602454a1 100644 --- a/crm_capital/views/crm_lead_view.xml +++ b/crm_capital/views/crm_lead_view.xml @@ -14,6 +14,7 @@ + @@ -30,6 +31,9 @@ + @@ -46,6 +50,7 @@ + @@ -62,6 +67,9 @@ + diff --git a/crm_capital/views/res_partner_view.xml b/crm_capital/views/res_partner_view.xml index 72c12ce15..b2ee2eaa6 100644 --- a/crm_capital/views/res_partner_view.xml +++ b/crm_capital/views/res_partner_view.xml @@ -18,6 +18,8 @@ options='{"no_open": True}'/> + @@ -34,6 +36,9 @@ + From 8b85274c5c2879709c56eb429ca254b541103b72 Mon Sep 17 00:00:00 2001 From: Antonio Espinosa Date: Fri, 22 May 2015 09:29:19 +0200 Subject: [PATCH 08/17] [FIX] Add new record on top of the list --- crm_capital/views/crm_turnover_range_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crm_capital/views/crm_turnover_range_view.xml b/crm_capital/views/crm_turnover_range_view.xml index 366896a2d..1f2461ce0 100644 --- a/crm_capital/views/crm_turnover_range_view.xml +++ b/crm_capital/views/crm_turnover_range_view.xml @@ -13,7 +13,7 @@ CRM Turnover range tree crm.turnover_range - + From e7a158444fd86575eb67633fcdf021b4cc94698c Mon Sep 17 00:00:00 2001 From: Javier Iniesta Date: Tue, 26 May 2015 18:02:19 +0200 Subject: [PATCH 09/17] [IMP] Added translations --- crm_capital/i18n/crm_capital.pot | 74 +++++++++++++++++++++++----- crm_capital/i18n/es.po | 84 +++++++++++++++++++++++++------- 2 files changed, 129 insertions(+), 29 deletions(-) diff --git a/crm_capital/i18n/crm_capital.pot b/crm_capital/i18n/crm_capital.pot index 9434fb358..4e28cdaf9 100644 --- a/crm_capital/i18n/crm_capital.pot +++ b/crm_capital/i18n/crm_capital.pot @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 8.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-03-24 11:53+0000\n" -"PO-Revision-Date: 2015-03-24 11:53+0000\n" +"POT-Creation-Date: 2015-05-26 15:15+0000\n" +"PO-Revision-Date: 2015-05-26 15:15+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -16,7 +16,20 @@ msgstr "" "Plural-Forms: \n" #. module: crm_capital +#: selection:crm.lead,company_size:0 +#: selection:res.partner,company_size:0 +msgid "Big" +msgstr "" + +#. module: crm_capital +#: view:crm.lead:crm_capital.crm_case_form_view_leads_capital +#: view:crm.lead:crm_capital.crm_case_form_view_oppor_capital +#: view:crm.lead:crm_capital.view_crm_case_leads_filter_capital +#: view:crm.lead:crm_capital.view_crm_case_opportunities_filter_capital #: field:crm.lead,capital_country:0 +#: view:res.partner:crm_capital.view_partner_form_capital +#: view:res.partner:crm_capital.view_res_partner_filter_capital +#: field:res.partner,capital_country:0 msgid "Capital country" msgstr "" @@ -27,12 +40,17 @@ msgid "Capital registered" msgstr "" #. module: crm_capital -#: field:crm.turnover_range,children:0 -msgid "Children" +#: view:crm.lead:crm_capital.view_crm_case_leads_filter_capital +#: view:crm.lead:crm_capital.view_crm_case_opportunities_filter_capital +#: field:crm.lead,company_size:0 +#: view:res.partner:crm_capital.view_res_partner_filter_capital +#: field:res.partner,company_size:0 +msgid "Company size" msgstr "" #. module: crm_capital #: help:crm.lead,capital_country:0 +#: help:res.partner,capital_country:0 msgid "Country of origin of the capital of this company" msgstr "" @@ -66,33 +84,65 @@ msgstr "" msgid "Lead/Opportunity" msgstr "" +#. module: crm_capital +#: selection:crm.lead,company_size:0 +#: selection:res.partner,company_size:0 +msgid "Medium" +msgstr "" + +#. module: crm_capital +#: selection:crm.lead,company_size:0 +#: selection:res.partner,company_size:0 +msgid "Micro" +msgstr "" + #. module: crm_capital #: field:crm.turnover_range,name:0 msgid "Name" msgstr "" #. module: crm_capital -#: field:crm.turnover_range,parent_left:0 -msgid "Parent Left" +#: model:ir.model,name:crm_capital.model_res_partner +msgid "Partner" msgstr "" #. module: crm_capital -#: field:crm.turnover_range,parent_right:0 -msgid "Parent Right" +#: view:crm.lead:crm_capital.view_crm_case_leads_filter_capital +#: view:crm.lead:crm_capital.view_crm_case_opportunities_filter_capital +msgid "Sales Team" msgstr "" #. module: crm_capital -#: field:crm.turnover_range,parent_id:0 -msgid "Parent id" +#: view:res.partner:crm_capital.view_res_partner_filter_capital +msgid "Salesperson" msgstr "" #. module: crm_capital -#: model:ir.model,name:crm_capital.model_res_partner -msgid "Partner" +#: selection:crm.lead,company_size:0 +#: selection:res.partner,company_size:0 +msgid "Small" +msgstr "" + +#. module: crm_capital +#: view:crm.lead:crm_capital.view_crm_case_leads_filter_capital +#: view:crm.lead:crm_capital.view_crm_case_opportunities_filter_capital +#: view:res.partner:crm_capital.view_res_partner_filter_capital +msgid "Turnover" +msgstr "" + +#. module: crm_capital +#: field:crm.lead,turnover_number:0 +#: field:res.partner,turnover_number:0 +msgid "Turnover number" msgstr "" #. module: crm_capital +#: view:crm.lead:crm_capital.crm_case_form_view_leads_capital +#: view:crm.lead:crm_capital.crm_case_form_view_oppor_capital +#: field:crm.lead,turnover_range:0 #: model:ir.model,name:crm_capital.model_crm_turnover_range +#: view:res.partner:crm_capital.view_partner_form_capital +#: field:res.partner,turnover_range:0 msgid "Turnover range" msgstr "" diff --git a/crm_capital/i18n/es.po b/crm_capital/i18n/es.po index f5b80e398..ea21593b1 100644 --- a/crm_capital/i18n/es.po +++ b/crm_capital/i18n/es.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 8.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-03-24 11:53+0000\n" -"PO-Revision-Date: 2015-03-24 11:53+0000\n" +"POT-Creation-Date: 2015-05-26 15:15+0000\n" +"PO-Revision-Date: 2015-05-26 15:15+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -16,7 +16,20 @@ msgstr "" "Plural-Forms: \n" #. module: crm_capital +#: selection:crm.lead,company_size:0 +#: selection:res.partner,company_size:0 +msgid "Big" +msgstr "Grande" + +#. module: crm_capital +#: view:crm.lead:crm_capital.crm_case_form_view_leads_capital +#: view:crm.lead:crm_capital.crm_case_form_view_oppor_capital +#: view:crm.lead:crm_capital.view_crm_case_leads_filter_capital +#: view:crm.lead:crm_capital.view_crm_case_opportunities_filter_capital #: field:crm.lead,capital_country:0 +#: view:res.partner:crm_capital.view_partner_form_capital +#: view:res.partner:crm_capital.view_res_partner_filter_capital +#: field:res.partner,capital_country:0 msgid "Capital country" msgstr "Nacionalidad del capital" @@ -27,12 +40,17 @@ msgid "Capital registered" msgstr "Capital social" #. module: crm_capital -#: field:crm.turnover_range,children:0 -msgid "Children" -msgstr "Hijos" +#: view:crm.lead:crm_capital.view_crm_case_leads_filter_capital +#: view:crm.lead:crm_capital.view_crm_case_opportunities_filter_capital +#: field:crm.lead,company_size:0 +#: view:res.partner:crm_capital.view_res_partner_filter_capital +#: field:res.partner,company_size:0 +msgid "Company size" +msgstr "Tamaño de la companía" #. module: crm_capital #: help:crm.lead,capital_country:0 +#: help:res.partner,capital_country:0 msgid "Country of origin of the capital of this company" msgstr "País de origen del capital social de esta empresa" @@ -66,33 +84,65 @@ msgstr "última actualización en" msgid "Lead/Opportunity" msgstr "Iniciativa/Oportunidad" +#. module: crm_capital +#: selection:crm.lead,company_size:0 +#: selection:res.partner,company_size:0 +msgid "Medium" +msgstr "Medio" + +#. module: crm_capital +#: selection:crm.lead,company_size:0 +#: selection:res.partner,company_size:0 +msgid "Micro" +msgstr "Micro" + #. module: crm_capital #: field:crm.turnover_range,name:0 msgid "Name" msgstr "Nombre" #. module: crm_capital -#: field:crm.turnover_range,parent_left:0 -msgid "Parent Left" -msgstr "Padre izquierdo" +#: model:ir.model,name:crm_capital.model_res_partner +msgid "Partner" +msgstr "Empresa" + +#. module: crm_capital +#: view:crm.lead:crm_capital.view_crm_case_leads_filter_capital +#: view:crm.lead:crm_capital.view_crm_case_opportunities_filter_capital +msgid "Sales Team" +msgstr "Equipo de ventas" #. module: crm_capital -#: field:crm.turnover_range,parent_right:0 -msgid "Parent Right" -msgstr "Padre derecho" +#: view:res.partner:crm_capital.view_res_partner_filter_capital +msgid "Salesperson" +msgstr "Comercial" #. module: crm_capital -#: field:crm.turnover_range,parent_id:0 -msgid "Parent id" -msgstr "ID del padre" +#: selection:crm.lead,company_size:0 +#: selection:res.partner,company_size:0 +msgid "Small" +msgstr "Pequeño" #. module: crm_capital -#: model:ir.model,name:crm_capital.model_res_partner -msgid "Partner" -msgstr "Empresa" +#: view:crm.lead:crm_capital.view_crm_case_leads_filter_capital +#: view:crm.lead:crm_capital.view_crm_case_opportunities_filter_capital +#: view:res.partner:crm_capital.view_res_partner_filter_capital +msgid "Turnover" +msgstr "Facturación" + +#. module: crm_capital +#: field:crm.lead,turnover_number:0 +#: field:res.partner,turnover_number:0 +msgid "Turnover number" +msgstr "Número de facturación" #. module: crm_capital +#: view:crm.lead:crm_capital.crm_case_form_view_leads_capital +#: view:crm.lead:crm_capital.crm_case_form_view_oppor_capital +#: field:crm.lead,turnover_range:0 #: model:ir.model,name:crm_capital.model_crm_turnover_range +#: view:res.partner:crm_capital.view_partner_form_capital +#: field:res.partner,turnover_range:0 msgid "Turnover range" msgstr "Rango de facturación" From b5203fc4a76e17f476da1f67ac3b1c25398a8160 Mon Sep 17 00:00:00 2001 From: Antonio Espinosa Date: Wed, 1 Jul 2015 13:32:14 +0200 Subject: [PATCH 10/17] Renaming several views to complain best practices --- crm_capital/views/crm_lead_view.xml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/crm_capital/views/crm_lead_view.xml b/crm_capital/views/crm_lead_view.xml index 6602454a1..f5cec0cfb 100644 --- a/crm_capital/views/crm_lead_view.xml +++ b/crm_capital/views/crm_lead_view.xml @@ -2,8 +2,8 @@ - - CRM - Leads Form with capital info + + Add capital fields crm.lead @@ -19,8 +19,8 @@ - - CRM - Leads Search with capital + + Add capital fields for grouping crm.lead @@ -38,8 +38,8 @@ - - CRM - Leads Form with capital info + + Add capital fields crm.lead @@ -55,8 +55,8 @@ - - CRM - Leads Search with capital + + Add capital fields for grouping crm.lead From 699f969a40aa15262e8ea7499fafb137bba7c828 Mon Sep 17 00:00:00 2001 From: Jairo Llopis Date: Wed, 16 Dec 2015 17:41:52 +0100 Subject: [PATCH 11/17] Rename addon to partner_capital. --- {crm_capital => partner_capital}/README.rst | 0 {crm_capital => partner_capital}/__init__.py | 0 {crm_capital => partner_capital}/__openerp__.py | 0 .../i18n/crm_capital.pot | 0 {crm_capital => partner_capital}/i18n/es.po | 0 {crm_capital => partner_capital}/models/__init__.py | 0 {crm_capital => partner_capital}/models/crm_lead.py | 0 .../models/crm_turnover_range.py | 0 .../models/res_partner.py | 0 .../security/ir.model.access.csv | 0 .../static/description/icon.png | Bin .../views/crm_lead_view.xml | 0 .../views/crm_turnover_range_view.xml | 0 .../views/res_partner_view.xml | 0 14 files changed, 0 insertions(+), 0 deletions(-) rename {crm_capital => partner_capital}/README.rst (100%) rename {crm_capital => partner_capital}/__init__.py (100%) rename {crm_capital => partner_capital}/__openerp__.py (100%) rename {crm_capital => partner_capital}/i18n/crm_capital.pot (100%) rename {crm_capital => partner_capital}/i18n/es.po (100%) rename {crm_capital => partner_capital}/models/__init__.py (100%) rename {crm_capital => partner_capital}/models/crm_lead.py (100%) rename {crm_capital => partner_capital}/models/crm_turnover_range.py (100%) rename {crm_capital => partner_capital}/models/res_partner.py (100%) rename {crm_capital => partner_capital}/security/ir.model.access.csv (100%) rename {crm_capital => partner_capital}/static/description/icon.png (100%) rename {crm_capital => partner_capital}/views/crm_lead_view.xml (100%) rename {crm_capital => partner_capital}/views/crm_turnover_range_view.xml (100%) rename {crm_capital => partner_capital}/views/res_partner_view.xml (100%) diff --git a/crm_capital/README.rst b/partner_capital/README.rst similarity index 100% rename from crm_capital/README.rst rename to partner_capital/README.rst diff --git a/crm_capital/__init__.py b/partner_capital/__init__.py similarity index 100% rename from crm_capital/__init__.py rename to partner_capital/__init__.py diff --git a/crm_capital/__openerp__.py b/partner_capital/__openerp__.py similarity index 100% rename from crm_capital/__openerp__.py rename to partner_capital/__openerp__.py diff --git a/crm_capital/i18n/crm_capital.pot b/partner_capital/i18n/crm_capital.pot similarity index 100% rename from crm_capital/i18n/crm_capital.pot rename to partner_capital/i18n/crm_capital.pot diff --git a/crm_capital/i18n/es.po b/partner_capital/i18n/es.po similarity index 100% rename from crm_capital/i18n/es.po rename to partner_capital/i18n/es.po diff --git a/crm_capital/models/__init__.py b/partner_capital/models/__init__.py similarity index 100% rename from crm_capital/models/__init__.py rename to partner_capital/models/__init__.py diff --git a/crm_capital/models/crm_lead.py b/partner_capital/models/crm_lead.py similarity index 100% rename from crm_capital/models/crm_lead.py rename to partner_capital/models/crm_lead.py diff --git a/crm_capital/models/crm_turnover_range.py b/partner_capital/models/crm_turnover_range.py similarity index 100% rename from crm_capital/models/crm_turnover_range.py rename to partner_capital/models/crm_turnover_range.py diff --git a/crm_capital/models/res_partner.py b/partner_capital/models/res_partner.py similarity index 100% rename from crm_capital/models/res_partner.py rename to partner_capital/models/res_partner.py diff --git a/crm_capital/security/ir.model.access.csv b/partner_capital/security/ir.model.access.csv similarity index 100% rename from crm_capital/security/ir.model.access.csv rename to partner_capital/security/ir.model.access.csv diff --git a/crm_capital/static/description/icon.png b/partner_capital/static/description/icon.png similarity index 100% rename from crm_capital/static/description/icon.png rename to partner_capital/static/description/icon.png diff --git a/crm_capital/views/crm_lead_view.xml b/partner_capital/views/crm_lead_view.xml similarity index 100% rename from crm_capital/views/crm_lead_view.xml rename to partner_capital/views/crm_lead_view.xml diff --git a/crm_capital/views/crm_turnover_range_view.xml b/partner_capital/views/crm_turnover_range_view.xml similarity index 100% rename from crm_capital/views/crm_turnover_range_view.xml rename to partner_capital/views/crm_turnover_range_view.xml diff --git a/crm_capital/views/res_partner_view.xml b/partner_capital/views/res_partner_view.xml similarity index 100% rename from crm_capital/views/res_partner_view.xml rename to partner_capital/views/res_partner_view.xml From ee698418a2613e468704ff05a02ef770759380df Mon Sep 17 00:00:00 2001 From: Jairo Llopis Date: Wed, 16 Dec 2015 18:33:01 +0100 Subject: [PATCH 12/17] Prepare module for OCA. This means: - Add proper README. - Use new-style copyright & license headers. - Update translation. - Remove .pot. - Drop CRM dependency. - Move fields into Sales & Purchases tab. - Rename some fields. - Probably something more. --- partner_capital/README.rst | 82 ++++++++- partner_capital/__init__.py | 9 +- partner_capital/__openerp__.py | 31 +--- partner_capital/i18n/crm_capital.pot | 155 ------------------ partner_capital/i18n/es.po | 146 +++++++---------- partner_capital/models/__init__.py | 16 +- partner_capital/models/crm_lead.py | 37 ----- partner_capital/models/crm_turnover_range.py | 12 -- partner_capital/models/res_partner.py | 25 ++- .../models/res_partner_turnover_range.py | 14 ++ partner_capital/security/ir.model.access.csv | 8 +- partner_capital/views/crm_lead_view.xml | 78 --------- .../views/crm_turnover_range_view.xml | 29 ---- .../views/res_partner_turnover_range_view.xml | 33 ++++ partner_capital/views/res_partner_view.xml | 34 ++-- 15 files changed, 242 insertions(+), 467 deletions(-) delete mode 100644 partner_capital/i18n/crm_capital.pot delete mode 100644 partner_capital/models/crm_lead.py delete mode 100644 partner_capital/models/crm_turnover_range.py create mode 100644 partner_capital/models/res_partner_turnover_range.py delete mode 100644 partner_capital/views/crm_lead_view.xml delete mode 100644 partner_capital/views/crm_turnover_range_view.xml create mode 100644 partner_capital/views/res_partner_turnover_range_view.xml diff --git a/partner_capital/README.rst b/partner_capital/README.rst index 735a076d7..a1590a66a 100644 --- a/partner_capital/README.rst +++ b/partner_capital/README.rst @@ -1,18 +1,82 @@ -Capital in CRM -================ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 -This module allows to set capital country, capital registered and turnover -for companies in the CRM main objects (lead, opportunity, partner), and -propagate them through the workflow. +=============== +Partners Capital +=============== -By capital country we mean country of origin of the capital of the company -By capital registered we mean the amount of money registered in comercial -registry, aka social capital or just capital of a company -By turnover we can define a range an a concret amount +This module extends the functionality of partners to support setting capital +country, registered capital amount and turnover. + +By capital country we mean country of origin of the capital of the company. + +By registered capital amount we mean the amount of money registered in the +corresponding commercial registry, A.K.A. social capital or just capital of a +company. + +By turnover we can define a range for a concrete amount. + +Usage +===== + +To use this module, you need to: + +* Go to any partner's form. +* You will find the new fields in *Sales & Purchases > Capital*. + +To manage turnover ranges, you need to: + +* Go to *Sales > Configuration > Address Book > Turnover ranges*. + +.. 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/8.0 + +Known issues / Roadmap +====================== + +* Add automatic rules to calculate turnover range and company size. +* Allow customization of company sizes. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub 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 +`_. Credits ======= +Images +------ + +* `Antiun Ingeniería S.L. `_: Icon. + Contributors ------------ + * Antonio Espinosa +* Rafael Blasco +* Jairo Llopis + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +This module is maintained by the OCA. + +OCA, or the Odoo Community Association, is a nonprofit organization whose +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. diff --git a/partner_capital/__init__.py b/partner_capital/__init__.py index 054c8853d..013a9f613 100644 --- a/partner_capital/__init__.py +++ b/partner_capital/__init__.py @@ -1,6 +1,7 @@ -# -*- encoding: utf-8 -*- -############################################################################## -# For copyright and license notices, see __openerp__.py file in root directory -############################################################################## +# -*- coding: utf-8 -*- +# Copyright (c) 2015 Antiun Ingeniería S.L. (http://www.antiun.com) +# Antonio Espinosa +# © 2015 Antiun Ingeniería S.L. - Jairo Llopis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from . import models diff --git a/partner_capital/__openerp__.py b/partner_capital/__openerp__.py index 0a26b02b4..22a1e6b49 100644 --- a/partner_capital/__openerp__.py +++ b/partner_capital/__openerp__.py @@ -1,37 +1,20 @@ -# -*- encoding: utf-8 -*- -############################################################################## -# -# OpenERP, Odoo Source Management Solution +# -*- coding: utf-8 -*- # Copyright (c) 2015 Antiun Ingeniería S.L. (http://www.antiun.com) # Antonio Espinosa -# -# 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 . -# -############################################################################## +# © 2015 Antiun Ingeniería S.L. - Jairo Llopis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). { - 'name': 'Capital in CRM', - 'version': '1.0', + 'name': 'Partners Capital', + 'version': '8.0.1.0.0', 'category': 'Customer Relationship Management', 'author': 'Antiun Ingeniería S.L.', 'website': 'http://www.antiun.com', 'depends': [ - 'crm', + 'base', ], 'data': [ - 'views/crm_turnover_range_view.xml', - 'views/crm_lead_view.xml', + 'views/res_partner_turnover_range_view.xml', 'views/res_partner_view.xml', 'security/ir.model.access.csv', ], diff --git a/partner_capital/i18n/crm_capital.pot b/partner_capital/i18n/crm_capital.pot deleted file mode 100644 index 4e28cdaf9..000000000 --- a/partner_capital/i18n/crm_capital.pot +++ /dev/null @@ -1,155 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * crm_capital -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 8.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-05-26 15:15+0000\n" -"PO-Revision-Date: 2015-05-26 15:15+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: crm_capital -#: selection:crm.lead,company_size:0 -#: selection:res.partner,company_size:0 -msgid "Big" -msgstr "" - -#. module: crm_capital -#: view:crm.lead:crm_capital.crm_case_form_view_leads_capital -#: view:crm.lead:crm_capital.crm_case_form_view_oppor_capital -#: view:crm.lead:crm_capital.view_crm_case_leads_filter_capital -#: view:crm.lead:crm_capital.view_crm_case_opportunities_filter_capital -#: field:crm.lead,capital_country:0 -#: view:res.partner:crm_capital.view_partner_form_capital -#: view:res.partner:crm_capital.view_res_partner_filter_capital -#: field:res.partner,capital_country:0 -msgid "Capital country" -msgstr "" - -#. module: crm_capital -#: field:crm.lead,capital_registered:0 -#: field:res.partner,capital_registered:0 -msgid "Capital registered" -msgstr "" - -#. module: crm_capital -#: view:crm.lead:crm_capital.view_crm_case_leads_filter_capital -#: view:crm.lead:crm_capital.view_crm_case_opportunities_filter_capital -#: field:crm.lead,company_size:0 -#: view:res.partner:crm_capital.view_res_partner_filter_capital -#: field:res.partner,company_size:0 -msgid "Company size" -msgstr "" - -#. module: crm_capital -#: help:crm.lead,capital_country:0 -#: help:res.partner,capital_country:0 -msgid "Country of origin of the capital of this company" -msgstr "" - -#. module: crm_capital -#: field:crm.turnover_range,create_uid:0 -msgid "Created by" -msgstr "" - -#. module: crm_capital -#: field:crm.turnover_range,create_date:0 -msgid "Created on" -msgstr "" - -#. module: crm_capital -#: field:crm.turnover_range,id:0 -msgid "ID" -msgstr "" - -#. module: crm_capital -#: field:crm.turnover_range,write_uid:0 -msgid "Last Updated by" -msgstr "" - -#. module: crm_capital -#: field:crm.turnover_range,write_date:0 -msgid "Last Updated on" -msgstr "" - -#. module: crm_capital -#: model:ir.model,name:crm_capital.model_crm_lead -msgid "Lead/Opportunity" -msgstr "" - -#. module: crm_capital -#: selection:crm.lead,company_size:0 -#: selection:res.partner,company_size:0 -msgid "Medium" -msgstr "" - -#. module: crm_capital -#: selection:crm.lead,company_size:0 -#: selection:res.partner,company_size:0 -msgid "Micro" -msgstr "" - -#. module: crm_capital -#: field:crm.turnover_range,name:0 -msgid "Name" -msgstr "" - -#. module: crm_capital -#: model:ir.model,name:crm_capital.model_res_partner -msgid "Partner" -msgstr "" - -#. module: crm_capital -#: view:crm.lead:crm_capital.view_crm_case_leads_filter_capital -#: view:crm.lead:crm_capital.view_crm_case_opportunities_filter_capital -msgid "Sales Team" -msgstr "" - -#. module: crm_capital -#: view:res.partner:crm_capital.view_res_partner_filter_capital -msgid "Salesperson" -msgstr "" - -#. module: crm_capital -#: selection:crm.lead,company_size:0 -#: selection:res.partner,company_size:0 -msgid "Small" -msgstr "" - -#. module: crm_capital -#: view:crm.lead:crm_capital.view_crm_case_leads_filter_capital -#: view:crm.lead:crm_capital.view_crm_case_opportunities_filter_capital -#: view:res.partner:crm_capital.view_res_partner_filter_capital -msgid "Turnover" -msgstr "" - -#. module: crm_capital -#: field:crm.lead,turnover_number:0 -#: field:res.partner,turnover_number:0 -msgid "Turnover number" -msgstr "" - -#. module: crm_capital -#: view:crm.lead:crm_capital.crm_case_form_view_leads_capital -#: view:crm.lead:crm_capital.crm_case_form_view_oppor_capital -#: field:crm.lead,turnover_range:0 -#: model:ir.model,name:crm_capital.model_crm_turnover_range -#: view:res.partner:crm_capital.view_partner_form_capital -#: field:res.partner,turnover_range:0 -msgid "Turnover range" -msgstr "" - -#. module: crm_capital -#: view:crm.turnover_range:crm_capital.crm_turnover_range_tree_view -#: model:ir.actions.act_window,name:crm_capital.crm_turnover_range_action -#: model:ir.ui.menu,name:crm_capital.menu_crm_turnover_range -msgid "Turnover ranges" -msgstr "" - diff --git a/partner_capital/i18n/es.po b/partner_capital/i18n/es.po index ea21593b1..adbfc1ccf 100644 --- a/partner_capital/i18n/es.po +++ b/partner_capital/i18n/es.po @@ -1,155 +1,133 @@ # Translation of Odoo Server. # This file contains the translation of the following modules: -# * crm_capital +# * partner_capital # msgid "" msgstr "" "Project-Id-Version: Odoo Server 8.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-05-26 15:15+0000\n" -"PO-Revision-Date: 2015-05-26 15:15+0000\n" +"POT-Creation-Date: 2015-12-16 17:27+0000\n" +"PO-Revision-Date: 2015-12-16 18:29+0100\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" +"Content-Transfer-Encoding: 8bit\n" "Plural-Forms: \n" +"Language: es\n" +"X-Generator: Poedit 1.8.5\n" -#. module: crm_capital -#: selection:crm.lead,company_size:0 +#. module: partner_capital #: selection:res.partner,company_size:0 msgid "Big" msgstr "Grande" -#. module: crm_capital -#: view:crm.lead:crm_capital.crm_case_form_view_leads_capital -#: view:crm.lead:crm_capital.crm_case_form_view_oppor_capital -#: view:crm.lead:crm_capital.view_crm_case_leads_filter_capital -#: view:crm.lead:crm_capital.view_crm_case_opportunities_filter_capital -#: field:crm.lead,capital_country:0 -#: view:res.partner:crm_capital.view_partner_form_capital -#: view:res.partner:crm_capital.view_res_partner_filter_capital +#. module: partner_capital +#: view:res.partner:partner_capital.view_partner_form_capital +msgid "Capital" +msgstr "Capital" + +#. module: partner_capital +#: field:res.partner,capital_amount:0 +msgid "Capital amount" +msgstr "Capital amount" + +#. module: partner_capital +#: view:res.partner:partner_capital.view_res_partner_filter_capital #: field:res.partner,capital_country:0 msgid "Capital country" msgstr "Nacionalidad del capital" -#. module: crm_capital -#: field:crm.lead,capital_registered:0 -#: field:res.partner,capital_registered:0 -msgid "Capital registered" -msgstr "Capital social" - -#. module: crm_capital -#: view:crm.lead:crm_capital.view_crm_case_leads_filter_capital -#: view:crm.lead:crm_capital.view_crm_case_opportunities_filter_capital -#: field:crm.lead,company_size:0 -#: view:res.partner:crm_capital.view_res_partner_filter_capital +#. module: partner_capital +#: view:res.partner:partner_capital.view_res_partner_filter_capital #: field:res.partner,company_size:0 msgid "Company size" msgstr "Tamaño de la companía" -#. module: crm_capital -#: help:crm.lead,capital_country:0 +#. module: partner_capital #: help:res.partner,capital_country:0 -msgid "Country of origin of the capital of this company" -msgstr "País de origen del capital social de esta empresa" +msgid "Country of origin of this company's capital." +msgstr "País de origen del capital de esta empresa." -#. module: crm_capital -#: field:crm.turnover_range,create_uid:0 +#. module: partner_capital +#: field:res.partner.turnover_range,create_uid:0 msgid "Created by" msgstr "Creado por" -#. module: crm_capital -#: field:crm.turnover_range,create_date:0 +#. module: partner_capital +#: field:res.partner.turnover_range,create_date:0 msgid "Created on" msgstr "Creado en" -#. module: crm_capital -#: field:crm.turnover_range,id:0 +#. module: partner_capital +#: field:res.partner.turnover_range,id:0 msgid "ID" msgstr "ID" -#. module: crm_capital -#: field:crm.turnover_range,write_uid:0 +#. module: partner_capital +#: field:res.partner.turnover_range,write_uid:0 msgid "Last Updated by" msgstr "Última actualización por" -#. module: crm_capital -#: field:crm.turnover_range,write_date:0 +#. module: partner_capital +#: field:res.partner.turnover_range,write_date:0 msgid "Last Updated on" -msgstr "última actualización en" - -#. module: crm_capital -#: model:ir.model,name:crm_capital.model_crm_lead -msgid "Lead/Opportunity" -msgstr "Iniciativa/Oportunidad" +msgstr "Última actualización en" -#. module: crm_capital -#: selection:crm.lead,company_size:0 +#. module: partner_capital #: selection:res.partner,company_size:0 msgid "Medium" msgstr "Medio" -#. module: crm_capital -#: selection:crm.lead,company_size:0 +#. module: partner_capital #: selection:res.partner,company_size:0 msgid "Micro" msgstr "Micro" -#. module: crm_capital -#: field:crm.turnover_range,name:0 +#. module: partner_capital +#: field:res.partner.turnover_range,name:0 msgid "Name" msgstr "Nombre" -#. module: crm_capital -#: model:ir.model,name:crm_capital.model_res_partner +#. module: partner_capital +#: model:ir.model,name:partner_capital.model_res_partner msgid "Partner" msgstr "Empresa" -#. module: crm_capital -#: view:crm.lead:crm_capital.view_crm_case_leads_filter_capital -#: view:crm.lead:crm_capital.view_crm_case_opportunities_filter_capital -msgid "Sales Team" -msgstr "Equipo de ventas" +#. module: partner_capital +#: help:res.partner,capital_amount:0 +msgid "Publicly registered capital amount." +msgstr "Importe del capital públicamente registrado." -#. module: crm_capital -#: view:res.partner:crm_capital.view_res_partner_filter_capital +#. module: partner_capital +#: view:res.partner:partner_capital.view_res_partner_filter_capital msgid "Salesperson" msgstr "Comercial" -#. module: crm_capital -#: selection:crm.lead,company_size:0 +#. module: partner_capital #: selection:res.partner,company_size:0 msgid "Small" msgstr "Pequeño" -#. module: crm_capital -#: view:crm.lead:crm_capital.view_crm_case_leads_filter_capital -#: view:crm.lead:crm_capital.view_crm_case_opportunities_filter_capital -#: view:res.partner:crm_capital.view_res_partner_filter_capital +#. module: partner_capital +#: view:res.partner:partner_capital.view_res_partner_filter_capital msgid "Turnover" msgstr "Facturación" -#. module: crm_capital -#: field:crm.lead,turnover_number:0 -#: field:res.partner,turnover_number:0 -msgid "Turnover number" -msgstr "Número de facturación" - -#. module: crm_capital -#: view:crm.lead:crm_capital.crm_case_form_view_leads_capital -#: view:crm.lead:crm_capital.crm_case_form_view_oppor_capital -#: field:crm.lead,turnover_range:0 -#: model:ir.model,name:crm_capital.model_crm_turnover_range -#: view:res.partner:crm_capital.view_partner_form_capital -#: field:res.partner,turnover_range:0 +#. module: partner_capital +#: field:res.partner,turnover_amount:0 +msgid "Turnover amount" +msgstr "Cantidad de facturación" + +#. module: partner_capital +#: model:ir.model,name:partner_capital.model_res_partner_turnover_range +#: field:res.partner,turnover_range_id:0 msgid "Turnover range" msgstr "Rango de facturación" -#. module: crm_capital -#: view:crm.turnover_range:crm_capital.crm_turnover_range_tree_view -#: model:ir.actions.act_window,name:crm_capital.crm_turnover_range_action -#: model:ir.ui.menu,name:crm_capital.menu_crm_turnover_range +#. module: partner_capital +#: model:ir.actions.act_window,name:partner_capital.res_partner_turnover_range_action +#: model:ir.ui.menu,name:partner_capital.menu_res_partner_turnover_range +#: view:res.partner.turnover_range:partner_capital.res_partner_turnover_range_tree_view msgid "Turnover ranges" msgstr "Rangos de facturación" - diff --git a/partner_capital/models/__init__.py b/partner_capital/models/__init__.py index 2e0c5d82f..801fe329f 100644 --- a/partner_capital/models/__init__.py +++ b/partner_capital/models/__init__.py @@ -1,8 +1,10 @@ -# -*- encoding: utf-8 -*- -############################################################################## -# For copyright and license notices, see __openerp__.py file in root directory -############################################################################## +# -*- coding: utf-8 -*- +# Copyright (c) 2015 Antiun Ingeniería S.L. (http://www.antiun.com) +# Antonio Espinosa +# © 2015 Antiun Ingeniería S.L. - Jairo Llopis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). -from . import crm_turnover_range -from . import crm_lead -from . import res_partner +from . import ( + res_partner_turnover_range, + res_partner, +) diff --git a/partner_capital/models/crm_lead.py b/partner_capital/models/crm_lead.py deleted file mode 100644 index 02342d728..000000000 --- a/partner_capital/models/crm_lead.py +++ /dev/null @@ -1,37 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################## -# For copyright and license notices, see __openerp__.py file in root directory -############################################################################## -from openerp import models, fields - - -class CrmLead(models.Model): - _inherit = 'crm.lead' - - capital_country = fields.Many2one( - 'res.country', string="Capital country", - help="Country of origin of the capital of this company") - capital_registered = fields.Integer(string="Capital registered") - turnover_range = fields.Many2one(comodel_name='crm.turnover_range') - turnover_number = fields.Integer() - company_size = fields.Selection( - string="Company size", - selection=[('micro', 'Micro'), ('small', 'Small'), - ('medium', 'Medium'), ('big', 'Big')]) - - def _lead_create_contact(self, cr, uid, lead, name, is_company, - parent_id=False, context=None): - """Propagate capital_country and capital_registered to created partner. - """ - partner_id = super(CrmLead, self)._lead_create_contact( - cr, uid, lead, name, is_company, parent_id=parent_id, - context=context) - self.pool['res.partner'].write( - cr, uid, partner_id, { - 'capital_country': lead.capital_country.id, - 'capital_registered': lead.capital_registered, - 'turnover_range': lead.turnover_range.id, - 'turnover_number': lead.turnover_number, - 'company_size': lead.company_size, - }, context=context) - return partner_id diff --git a/partner_capital/models/crm_turnover_range.py b/partner_capital/models/crm_turnover_range.py deleted file mode 100644 index b6784462e..000000000 --- a/partner_capital/models/crm_turnover_range.py +++ /dev/null @@ -1,12 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################## -# For copyright and license notices, see __openerp__.py file in root directory -############################################################################## -from openerp import models, fields - - -class CrmTurnoverRange(models.Model): - _name = 'crm.turnover_range' - _description = "Turnover range" - - name = fields.Char(required=True, translate=True) diff --git a/partner_capital/models/res_partner.py b/partner_capital/models/res_partner.py index b0a0df7df..dcb4adb5f 100644 --- a/partner_capital/models/res_partner.py +++ b/partner_capital/models/res_partner.py @@ -1,7 +1,9 @@ -# -*- encoding: utf-8 -*- -############################################################################## -# For copyright and license notices, see __openerp__.py file in root directory -############################################################################## +# -*- coding: utf-8 -*- +# Copyright (c) 2015 Antiun Ingeniería S.L. (http://www.antiun.com) +# Antonio Espinosa +# © 2015 Antiun Ingeniería S.L. - Jairo Llopis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + from openerp import models, fields @@ -9,11 +11,16 @@ class ResPartner(models.Model): _inherit = 'res.partner' capital_country = fields.Many2one( - 'res.country', string="Capital country", - help="Country of origin of the capital of this company") - capital_registered = fields.Integer(string="Capital registered") - turnover_range = fields.Many2one(comodel_name='crm.turnover_range') - turnover_number = fields.Integer() + 'res.country', + "Capital country", + help="Country of origin of this company's capital.") + capital_amount = fields.Float( + "Capital amount", + help="Publicly registered capital amount.") + turnover_range_id = fields.Many2one( + 'res.partner.turnover_range', + "Turnover range") + turnover_amount = fields.Float() company_size = fields.Selection( string="Company size", selection=[('micro', 'Micro'), ('small', 'Small'), diff --git a/partner_capital/models/res_partner_turnover_range.py b/partner_capital/models/res_partner_turnover_range.py new file mode 100644 index 000000000..4fafbc852 --- /dev/null +++ b/partner_capital/models/res_partner_turnover_range.py @@ -0,0 +1,14 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2015 Antiun Ingeniería S.L. (http://www.antiun.com) +# Antonio Espinosa +# © 2015 Antiun Ingeniería S.L. - Jairo Llopis +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from openerp import models, fields + + +class ResPartnerTurnoverRange(models.Model): + _name = 'res.partner.turnover_range' + _description = "Turnover range" + + name = fields.Char(required=True, translate=True) diff --git a/partner_capital/security/ir.model.access.csv b/partner_capital/security/ir.model.access.csv index ff06a904d..0a5d1bb4e 100644 --- a/partner_capital/security/ir.model.access.csv +++ b/partner_capital/security/ir.model.access.csv @@ -1,5 +1,5 @@ "id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" -"access_crm_turnover_public","crm_turnover_range group_public","model_crm_turnover_range","base.group_public",1,0,0,0 -"access_crm_turnover_portal","crm_turnover_range group_portal","model_crm_turnover_range","base.group_portal",1,0,0,0 -"access_crm_turnover_group_partner_manager","crm_turnover_range group_partner_manager","model_crm_turnover_range","base.group_partner_manager",1,1,1,1 -"access_crm_turnover_group_user","crm_turnover_range group_user","model_crm_turnover_range","base.group_user",1,0,0,0 +"access_crm_turnover_public","res_partner_turnover_range group_public","model_res_partner_turnover_range","base.group_public",1,0,0,0 +"access_crm_turnover_portal","res_partner_turnover_range group_portal","model_res_partner_turnover_range","base.group_portal",1,0,0,0 +"access_crm_turnover_group_partner_manager","res_partner_turnover_range group_partner_manager","model_res_partner_turnover_range","base.group_partner_manager",1,1,1,1 +"access_crm_turnover_group_user","res_partner_turnover_range group_user","model_res_partner_turnover_range","base.group_user",1,0,0,0 diff --git a/partner_capital/views/crm_lead_view.xml b/partner_capital/views/crm_lead_view.xml deleted file mode 100644 index f5cec0cfb..000000000 --- a/partner_capital/views/crm_lead_view.xml +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - Add capital fields - crm.lead - - - - - - - - - - - - - - Add capital fields for grouping - crm.lead - - - - - - - - - - - - Add capital fields - crm.lead - - - - - - - - - - - - - - Add capital fields for grouping - crm.lead - - - - - - - - - - - - \ No newline at end of file diff --git a/partner_capital/views/crm_turnover_range_view.xml b/partner_capital/views/crm_turnover_range_view.xml deleted file mode 100644 index 1f2461ce0..000000000 --- a/partner_capital/views/crm_turnover_range_view.xml +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - Turnover ranges - crm.turnover_range - form - tree - - - - CRM Turnover range tree - crm.turnover_range - - - - - - - - - - - \ No newline at end of file diff --git a/partner_capital/views/res_partner_turnover_range_view.xml b/partner_capital/views/res_partner_turnover_range_view.xml new file mode 100644 index 000000000..ad9d32622 --- /dev/null +++ b/partner_capital/views/res_partner_turnover_range_view.xml @@ -0,0 +1,33 @@ + + + + + + + + Turnover ranges + res.partner.turnover_range + form + tree + + + + CRM Turnover range tree + res.partner.turnover_range + + + + + + + + + + + diff --git a/partner_capital/views/res_partner_view.xml b/partner_capital/views/res_partner_view.xml index b2ee2eaa6..ab192466f 100644 --- a/partner_capital/views/res_partner_view.xml +++ b/partner_capital/views/res_partner_view.xml @@ -1,4 +1,8 @@ + + @@ -7,20 +11,20 @@ res.partner - - - - - - - + + + + + + + + + @@ -44,4 +48,4 @@ - \ No newline at end of file + From 045e8fc6218c958663f9a37443d438d13ab88d43 Mon Sep 17 00:00:00 2001 From: Jairo Llopis Date: Thu, 17 Dec 2015 16:53:59 +0100 Subject: [PATCH 13/17] Style corrections. --- partner_capital/README.rst | 8 ++++---- partner_capital/__init__.py | 3 +-- partner_capital/__openerp__.py | 3 +-- partner_capital/models/__init__.py | 3 +-- partner_capital/models/res_partner.py | 10 ++++++---- partner_capital/models/res_partner_turnover_range.py | 3 +-- 6 files changed, 14 insertions(+), 16 deletions(-) diff --git a/partner_capital/README.rst b/partner_capital/README.rst index a1590a66a..d5dc5c71a 100644 --- a/partner_capital/README.rst +++ b/partner_capital/README.rst @@ -2,12 +2,12 @@ :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 -=============== +================ Partners Capital -=============== +================ -This module extends the functionality of partners to support setting capital -country, registered capital amount and turnover. +This module extends the functionality of partners to support setting the +country of origin of capital, registered capital amount and turnover. By capital country we mean country of origin of the capital of the company. diff --git a/partner_capital/__init__.py b/partner_capital/__init__.py index 013a9f613..8e6d7e45a 100644 --- a/partner_capital/__init__.py +++ b/partner_capital/__init__.py @@ -1,6 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2015 Antiun Ingeniería S.L. (http://www.antiun.com) -# Antonio Espinosa +# © 2015 Antiun Ingeniería S.L. - Antonio Espinosa # © 2015 Antiun Ingeniería S.L. - Jairo Llopis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). diff --git a/partner_capital/__openerp__.py b/partner_capital/__openerp__.py index 22a1e6b49..76ab06a28 100644 --- a/partner_capital/__openerp__.py +++ b/partner_capital/__openerp__.py @@ -1,6 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2015 Antiun Ingeniería S.L. (http://www.antiun.com) -# Antonio Espinosa +# © 2015 Antiun Ingeniería S.L. - Antonio Espinosa # © 2015 Antiun Ingeniería S.L. - Jairo Llopis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). diff --git a/partner_capital/models/__init__.py b/partner_capital/models/__init__.py index 801fe329f..c2cd4625c 100644 --- a/partner_capital/models/__init__.py +++ b/partner_capital/models/__init__.py @@ -1,6 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2015 Antiun Ingeniería S.L. (http://www.antiun.com) -# Antonio Espinosa +# © 2015 Antiun Ingeniería S.L. - Antonio Espinosa # © 2015 Antiun Ingeniería S.L. - Jairo Llopis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). diff --git a/partner_capital/models/res_partner.py b/partner_capital/models/res_partner.py index dcb4adb5f..a32973a69 100644 --- a/partner_capital/models/res_partner.py +++ b/partner_capital/models/res_partner.py @@ -1,6 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2015 Antiun Ingeniería S.L. (http://www.antiun.com) -# Antonio Espinosa +# © 2015 Antiun Ingeniería S.L. - Antonio Espinosa # © 2015 Antiun Ingeniería S.L. - Jairo Llopis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). @@ -16,11 +15,14 @@ class ResPartner(models.Model): help="Country of origin of this company's capital.") capital_amount = fields.Float( "Capital amount", + oldname="capital_amount", help="Publicly registered capital amount.") turnover_range_id = fields.Many2one( 'res.partner.turnover_range', - "Turnover range") - turnover_amount = fields.Float() + "Turnover range", + oldname="turnover_range") + turnover_amount = fields.Float( + oldname="turnover_number") company_size = fields.Selection( string="Company size", selection=[('micro', 'Micro'), ('small', 'Small'), diff --git a/partner_capital/models/res_partner_turnover_range.py b/partner_capital/models/res_partner_turnover_range.py index 4fafbc852..25712489d 100644 --- a/partner_capital/models/res_partner_turnover_range.py +++ b/partner_capital/models/res_partner_turnover_range.py @@ -1,6 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2015 Antiun Ingeniería S.L. (http://www.antiun.com) -# Antonio Espinosa +# © 2015 Antiun Ingeniería S.L. - Antonio Espinosa # © 2015 Antiun Ingeniería S.L. - Jairo Llopis # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). From b073c336b009f2fd5cc569ba7b8bca633d11ba35 Mon Sep 17 00:00:00 2001 From: Jairo Llopis Date: Fri, 18 Dec 2015 16:52:05 +0100 Subject: [PATCH 14/17] Add currency, fix view, rename capital_country. --- partner_capital/models/res_partner.py | 6 +++++- partner_capital/views/res_partner_view.xml | 22 ++++++++++------------ 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/partner_capital/models/res_partner.py b/partner_capital/models/res_partner.py index a32973a69..8adc35fe0 100644 --- a/partner_capital/models/res_partner.py +++ b/partner_capital/models/res_partner.py @@ -9,14 +9,18 @@ from openerp import models, fields class ResPartner(models.Model): _inherit = 'res.partner' - capital_country = fields.Many2one( + capital_country_id = fields.Many2one( 'res.country', "Capital country", + oldname="capital_country", help="Country of origin of this company's capital.") capital_amount = fields.Float( "Capital amount", oldname="capital_amount", help="Publicly registered capital amount.") + capital_currency_id = fields.Many2one( + "res.currency", + string="Capital currency") turnover_range_id = fields.Many2one( 'res.partner.turnover_range', "Turnover range", diff --git a/partner_capital/views/res_partner_view.xml b/partner_capital/views/res_partner_view.xml index ab192466f..f5683d59f 100644 --- a/partner_capital/views/res_partner_view.xml +++ b/partner_capital/views/res_partner_view.xml @@ -11,18 +11,16 @@ res.partner - - - - - - - + + + + + + + + From ec4f87786701c384fc0090cedce20b49ae0604ef Mon Sep 17 00:00:00 2001 From: Jairo Llopis Date: Mon, 21 Dec 2015 15:41:15 +0100 Subject: [PATCH 15/17] Clean migration remainders. --- partner_capital/models/res_partner.py | 2 +- partner_capital/views/res_partner_turnover_range_view.xml | 4 +--- partner_capital/views/res_partner_view.xml | 4 ++-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/partner_capital/models/res_partner.py b/partner_capital/models/res_partner.py index 8adc35fe0..746a7e035 100644 --- a/partner_capital/models/res_partner.py +++ b/partner_capital/models/res_partner.py @@ -16,7 +16,7 @@ class ResPartner(models.Model): help="Country of origin of this company's capital.") capital_amount = fields.Float( "Capital amount", - oldname="capital_amount", + oldname="capital_registered", help="Publicly registered capital amount.") capital_currency_id = fields.Many2one( "res.currency", diff --git a/partner_capital/views/res_partner_turnover_range_view.xml b/partner_capital/views/res_partner_turnover_range_view.xml index ad9d32622..a5dd70af5 100644 --- a/partner_capital/views/res_partner_turnover_range_view.xml +++ b/partner_capital/views/res_partner_turnover_range_view.xml @@ -25,9 +25,7 @@ + parent="base.menu_config_address_book"/> diff --git a/partner_capital/views/res_partner_view.xml b/partner_capital/views/res_partner_view.xml index f5683d59f..3eadeff25 100644 --- a/partner_capital/views/res_partner_view.xml +++ b/partner_capital/views/res_partner_view.xml @@ -34,10 +34,10 @@ + context="{'group_by': 'capital_country_id'}"/> + context="{'group_by': 'turnover_range_id'}"/> From 767ae1225876774b32dfe1310dcec928d5acdfb7 Mon Sep 17 00:00:00 2001 From: Jairo Llopis Date: Mon, 21 Dec 2015 15:41:27 +0100 Subject: [PATCH 16/17] Resort view. --- partner_capital/views/res_partner_view.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/partner_capital/views/res_partner_view.xml b/partner_capital/views/res_partner_view.xml index 3eadeff25..e5a5b6c85 100644 --- a/partner_capital/views/res_partner_view.xml +++ b/partner_capital/views/res_partner_view.xml @@ -15,11 +15,11 @@ - - + + From 0ce0b34991116d9355ededee5239fb98687cb19e Mon Sep 17 00:00:00 2001 From: Jairo Llopis Date: Tue, 22 Dec 2015 16:32:58 +0100 Subject: [PATCH 17/17] Move group of fields outside unrelated Sales & Purchases tab. --- partner_capital/views/res_partner_view.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/partner_capital/views/res_partner_view.xml b/partner_capital/views/res_partner_view.xml index e5a5b6c85..4fe7baa55 100644 --- a/partner_capital/views/res_partner_view.xml +++ b/partner_capital/views/res_partner_view.xml @@ -11,7 +11,7 @@ res.partner - +