From 9eccf77754010d77f935a2b011d02051ff586cac Mon Sep 17 00:00:00 2001 From: Ronald Portier Date: Wed, 19 Oct 2016 14:40:09 +0200 Subject: [PATCH] 9.0 partner relations v8api (#304) [MIG] partner_relations * New API. * Rename module partner_relations to partner_multi_relation. * More test * View adaptations --- README.rst | 89 +++ __init__.py | 5 + __openerp__.py | 26 + data/demo.xml | 118 ++++ i18n/da.po | 431 ++++++++++++++ i18n/de.po | 431 ++++++++++++++ i18n/es.po | 432 ++++++++++++++ i18n/fi.po | 430 ++++++++++++++ i18n/fr.po | 433 ++++++++++++++ i18n/it.po | 432 ++++++++++++++ i18n/nl.po | 549 ++++++++++++++++++ i18n/partner_multi_relation.pot | 521 +++++++++++++++++ i18n/pt_BR.po | 432 ++++++++++++++ i18n/sl.po | 431 ++++++++++++++ models/__init__.py | 8 + models/res_partner.py | 172 ++++++ models/res_partner_relation.py | 156 +++++ models/res_partner_relation_all.py | 345 +++++++++++ models/res_partner_relation_type.py | 175 ++++++ models/res_partner_relation_type_selection.py | 127 ++++ security/ir.model.access.csv | 8 + static/description/icon.png | Bin 0 -> 12960 bytes tests/__init__.py | 7 + tests/test_partner_relation.py | 280 +++++++++ tests/test_partner_relation_all.py | 241 ++++++++ tests/test_partner_relation_common.py | 113 ++++ tests/test_partner_search.py | 76 +++ views/menu.xml | 25 + views/res_partner.xml | 59 ++ views/res_partner_relation_all.xml | 96 +++ views/res_partner_relation_type.xml | 51 ++ 31 files changed, 6699 insertions(+) create mode 100644 README.rst create mode 100644 __init__.py create mode 100644 __openerp__.py create mode 100644 data/demo.xml create mode 100644 i18n/da.po create mode 100644 i18n/de.po create mode 100644 i18n/es.po create mode 100644 i18n/fi.po create mode 100644 i18n/fr.po create mode 100644 i18n/it.po create mode 100644 i18n/nl.po create mode 100644 i18n/partner_multi_relation.pot create mode 100644 i18n/pt_BR.po create mode 100644 i18n/sl.po create mode 100644 models/__init__.py create mode 100644 models/res_partner.py create mode 100644 models/res_partner_relation.py create mode 100644 models/res_partner_relation_all.py create mode 100644 models/res_partner_relation_type.py create mode 100644 models/res_partner_relation_type_selection.py create mode 100644 security/ir.model.access.csv create mode 100644 static/description/icon.png create mode 100644 tests/__init__.py create mode 100644 tests/test_partner_relation.py create mode 100644 tests/test_partner_relation_all.py create mode 100644 tests/test_partner_relation_common.py create mode 100644 tests/test_partner_search.py create mode 100644 views/menu.xml create mode 100644 views/res_partner.xml create mode 100644 views/res_partner_relation_all.xml create mode 100644 views/res_partner_relation_type.xml diff --git a/README.rst b/README.rst new file mode 100644 index 000000000..5b891c692 --- /dev/null +++ b/README.rst @@ -0,0 +1,89 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :alt: License + +Partner Relations +================= + +This module aims to provide generic means to model relations between partners. + +Examples would be 'is sibling of' or 'is friend of', but also 'has contract X +with' or 'is assistant of'. This way, you can encode your knowledge about your +partners directly in your partner list. + +Installation +============ + +Configuration +============= + +Usage +===== + +Before being able to use relations, you'll have define some first. Do that in +Sales / Configuration / Address Book / Partner relations. Here, you need to +name both sides of the relation: To have an assistant-relation, you would name +one side 'is assistant of' and the other side 'has assistant'. This relation +only makes sense between people, so you would choose 'Person' for both partner +types. For the relation 'is a competitor of', both sides would be companies, +while the relation 'has worked for' should have persons on the left side and +companies on the right side. If you leave this field empty, the relation is +applicable to all types of partners. + +If you use categories to further specify the type of partners, you could for +example enforce that the 'is member of' relation can only have companies with +label 'Organization' on the left side. + +Now open a partner and choose relations as appropriate in the 'Relations' tab. + +Searching partners with relations +--------------------------------- + +Searching for relations is integrated transparently into the partner search +form. To find all assistants in your database, fill in 'is assistant of' and +autocomplete will propose to search for partners having this relation. Now if +you want to find Anna's assistant, you fill in 'Anna' and one of the proposals +is to search for partners having a relation with Anna. This results in Anna's +assistant(s), as you searched for assistants before. + +By default, only active, not expired relations are shown. If you need to find +partners that had some relation at a certain date, fill in that date in the +search box and one of the proposals is to search for relations valid at that +date. + +More info +--------- + +For further information, please visit: + + * https://www.odoo.com/forum/help-1 + +Known issues / Roadmap +====================== + +Credits +======= + +Contributors +------------ + +* Holger Brunn +* Stefan Rijnhart +* Ronald Portier +* Sandy Carter +* Bruno Joliveau +* Adriana Ierfino + +Maintainer +---------- + +.. image:: http://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: http://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 http://odoo-community.org. diff --git a/__init__.py b/__init__.py new file mode 100644 index 000000000..91d6405f3 --- /dev/null +++ b/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# © 2013-2016 Therp BV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from . import models +from . import tests diff --git a/__openerp__.py b/__openerp__.py new file mode 100644 index 000000000..ad8c8ff5d --- /dev/null +++ b/__openerp__.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +# © 2013-2016 Therp BV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +{ + "name": "Partner relations", + "version": "9.0.1.1.1", + "author": "Therp BV,Camptocamp,Odoo Community Association (OCA)", + "complexity": "normal", + "category": "Customer Relationship Management", + "license": "AGPL-3", + "depends": [ + 'base', + ], + "demo": [ + "data/demo.xml", + ], + "data": [ + "views/res_partner_relation_all.xml", + 'views/res_partner.xml', + 'views/res_partner_relation_type.xml', + 'views/menu.xml', + 'security/ir.model.access.csv', + ], + "auto_install": False, + "installable": True, +} diff --git a/data/demo.xml b/data/demo.xml new file mode 100644 index 000000000..73f8f1e2c --- /dev/null +++ b/data/demo.xml @@ -0,0 +1,118 @@ + + + + + + + + Is assistant of + Has assistant + p + p + + + Is competitor of + Is competitor of + c + c + + + + Has worked for + Has former employee + p + c + + + + + Washing Companies + + + Washing Gold + + + + Washing Silver + + + + Washing Services + + + + + + Great Washing Powder Company + + 1 + 1 + 1 + Le Bourget du Lac + 73377 + +33 4 49 23 44 54 + + 93, Press Avenue + great@yourcompany.example.com + http://www.great.com + + + Best Washing Powder Company + + 1 + 1 + Champs sur Marne + 77420 + + best@yourcompany.example.com + +33 1 64 61 04 01 + 12 rue Albert Einstein + http://www.best.com/ + + + Super Washing Powder Company + + 1 + + 1 + 3rd Floor, Room 3-C, + Carretera Panamericana, Km 1, Urb. Delgado Chalbaud + Caracas + 1090 + super@yourcompany.example.com + +58 212 681 0538 + + super.com + + + + + + + + + + + + + + + + + + + + diff --git a/i18n/da.po b/i18n/da.po new file mode 100644 index 000000000..cb7a6748c --- /dev/null +++ b/i18n/da.po @@ -0,0 +1,431 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * partner_multi_relation +# +# Translators: +# Hans Henrik Gabelgaard , 2015 +msgid "" +msgstr "" +"Project-Id-Version: partner-contact (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-07 07:18+0000\n" +"PO-Revision-Date: 2016-05-06 15:15+0000\n" +"Last-Translator: OCA Transbot \n" +"Language-Team: Danish (http://www.transifex.com/oca/OCA-partner-contact-8-0/language/da/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: da\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,help:partner_multi_relation.action_res_partner_relation +#: model:ir.actions.act_window,help:partner_multi_relation.action_res_partner_relation_all +msgid "" +"

\n" +" Record and track your partners' relations. Relations may be linked to other partners with a type either directly or inversely.\n" +"

\n" +" " +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,active:0 field:res.partner.relation.all,active:0 +msgid "Active" +msgstr "Aktiv" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_all +msgid "All (non-inverse + inverse) relations between partners" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_type_selection +msgid "All relation types" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner,relation_all_ids:0 +msgid "All relations with current partner" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,allow_self:0 +#: field:res.partner.relation.type,allow_self:0 +msgid "Allow both sides to be the same" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:68 +#, python-format +msgid "Company" +msgstr "Virksomhed" + +#. module: partner_multi_relation +#: field:res.partner.relation,create_uid:0 +#: field:res.partner.relation.type,create_uid:0 +msgid "Created by" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,create_date:0 +#: field:res.partner.relation.type,create_date:0 +msgid "Created on" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,this_partner_id:0 +msgid "Current Partner" +msgstr "Aktuel partner" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,partner_category_this:0 +#: field:res.partner.relation.type.selection,search_partner_category_this:0 +msgid "Current record's category" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,contact_type_this:0 +msgid "Current record's partner type" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,right_partner_id:0 +msgid "Destination Partner" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,display_name:0 +#: field:res.partner.relation.all,display_name:0 +#: field:res.partner.relation.type,display_name:0 +#: field:res.partner.relation.type.selection,display_name:0 +msgid "Display Name" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,date_end:0 +#: field:res.partner.relation.all,date_end:0 +msgid "Ending date" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Group By" +msgstr "" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_assistant +msgid "Has assistant" +msgstr "" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_has_worked_for +msgid "Has former employee" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_type_id:0 +msgid "Has relation of type" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_partner_id:0 +msgid "Has relation with" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_partner_category_id:0 +msgid "Has relation with a partner in category" +msgstr "" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_has_worked_for +msgid "Has worked for" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,id:0 field:res.partner.relation.all,id:0 +#: field:res.partner.relation.type,id:0 +#: field:res.partner.relation.type.selection,id:0 +msgid "ID" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,name_inverse:0 +msgid "Inverse name" +msgstr "" + +#. module: partner_multi_relation +#: selection:res.partner.relation.all,record_type:0 +#: selection:res.partner.relation.type.selection,record_type:0 +msgid "Inverse type" +msgstr "" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_assistant +msgid "Is assistant of" +msgstr "" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_competitor +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_competitor +msgid "Is competitor of" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,__last_update:0 +#: field:res.partner.relation.all,__last_update:0 +#: field:res.partner.relation.type,__last_update:0 +#: field:res.partner.relation.type.selection,__last_update:0 +msgid "Last Modified on" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,write_uid:0 +#: field:res.partner.relation.type,write_uid:0 +msgid "Last Updated by" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,write_date:0 +#: field:res.partner.relation.type,write_date:0 +msgid "Last Updated on" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +msgid "Left Partner" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,left_contact_type:0 +msgid "Left Partner Type" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,partner_category_left:0 +msgid "Left partner category" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,contact_type_left:0 +msgid "Left partner type" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +msgid "Left side of relation" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,name:0 +#: field:res.partner.relation.type.selection,name:0 +msgid "Name" +msgstr "Navn" + +#. module: partner_multi_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +#: field:res.partner.relation.all,other_partner_id:0 +msgid "Other Partner" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,partner_category_other:0 +msgid "Other record's category" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,contact_type_other:0 +msgid "Other record's partner type" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner +#: field:res.partner.relation,any_partner_id:0 +#: field:res.partner.relation,partner_id_display:0 +msgid "Partner" +msgstr "Partner" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.form_res_partner_relation +msgid "Partner Relation" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_type +msgid "Partner Relation Type" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.tree_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.tree_res_partner_relation_all +msgid "Partner Relations" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation_type +#: model:ir.ui.menu,name:partner_multi_relation.menu_res_partner_relation_type +msgid "Partner Relations Types" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,contact_type:0 +msgid "Partner Type" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.form_res_partner_relation_all +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +#: view:res.partner.relation.type:partner_multi_relation.tree_res_partner_relation_type +msgid "Partner relation" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:301 +#, python-format +msgid "Partners cannot have a relation with themselves." +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:69 +#, python-format +msgid "Person" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,record_type:0 +msgid "Record Type" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,record_type:0 +msgid "Record type" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:370 +#, python-format +msgid "Related partners" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,relation_id:0 +msgid "Relation" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner,relation_count:0 +msgid "Relation Count" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,type_id:0 +#: field:res.partner.relation.all,type_selection_id:0 +msgid "Relation Type" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_date:0 +msgid "Relation valid" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation_all +#: model:ir.ui.menu,name:partner_multi_relation.menu_res_partner_relation_sales +#: view:res.partner:partner_multi_relation.view_partner_form +#: field:res.partner,relation_ids:0 +msgid "Relations" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Relationship Type" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +msgid "Right Partner" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,right_contact_type:0 +msgid "Right Partner Type" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,partner_category_right:0 +msgid "Right partner category" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,contact_type_right:0 +msgid "Right partner type" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +msgid "Right side of relation" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Search Relations" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_show_partner_multi_relation +msgid "Show partner's relations" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.actions.server,name:partner_multi_relation.action_show_right_relation_partners +msgid "Show partners" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,left_partner_id:0 +msgid "Source Partner" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,date_start:0 +#: field:res.partner.relation.all,date_start:0 +msgid "Starting date" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:287 +#, python-format +msgid "The %s partner is not applicable for this relation type." +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:254 +#, python-format +msgid "The starting date cannot be after the ending date." +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:329 +#, python-format +msgid "There is already a similar relation with overlapping dates" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,type_id:0 +#: field:res.partner.relation,type_selection_id:0 +#: selection:res.partner.relation.all,record_type:0 +#: selection:res.partner.relation.type.selection,record_type:0 +#: field:res.partner.relation.type.selection,type_id:0 +msgid "Type" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner.py:122 +#, python-format +msgid "Unsupported search operand \"%s\"" +msgstr "" diff --git a/i18n/de.po b/i18n/de.po new file mode 100644 index 000000000..414f0d1c3 --- /dev/null +++ b/i18n/de.po @@ -0,0 +1,431 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * partner_multi_relation +# +# Translators: +# Rudolf Schnapka , 2015-2016 +msgid "" +msgstr "" +"Project-Id-Version: partner-contact (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-07 07:18+0000\n" +"PO-Revision-Date: 2016-05-06 15:15+0000\n" +"Last-Translator: OCA Transbot \n" +"Language-Team: German (http://www.transifex.com/oca/OCA-partner-contact-8-0/language/de/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: de\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,help:partner_multi_relation.action_res_partner_relation +#: model:ir.actions.act_window,help:partner_multi_relation.action_res_partner_relation_all +msgid "" +"

\n" +" Record and track your partners' relations. Relations may be linked to other partners with a type either directly or inversely.\n" +"

\n" +" " +msgstr "

\n Aufzeichnen und Beobachten der Beziehungen des Partners. Beziehungen mit anderen Partnern können entweder direkt oder rückwirkend hergestellt werden.\n

\n " + +#. module: partner_multi_relation +#: field:res.partner.relation,active:0 field:res.partner.relation.all,active:0 +msgid "Active" +msgstr "Aktiv" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_all +msgid "All (non-inverse + inverse) relations between partners" +msgstr "Alle (direkten und rückwirkenden) Beziehungen zwischen Partnern" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_type_selection +msgid "All relation types" +msgstr "Alle Beziehungsarten" + +#. module: partner_multi_relation +#: field:res.partner,relation_all_ids:0 +msgid "All relations with current partner" +msgstr "Alle Beziehungen mit diesem Partner" + +#. module: partner_multi_relation +#: field:res.partner.relation,allow_self:0 +#: field:res.partner.relation.type,allow_self:0 +msgid "Allow both sides to be the same" +msgstr "Erlaube beide Seiten gleich zu sein" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:68 +#, python-format +msgid "Company" +msgstr "Unternehmen" + +#. module: partner_multi_relation +#: field:res.partner.relation,create_uid:0 +#: field:res.partner.relation.type,create_uid:0 +msgid "Created by" +msgstr "erstellt von" + +#. module: partner_multi_relation +#: field:res.partner.relation,create_date:0 +#: field:res.partner.relation.type,create_date:0 +msgid "Created on" +msgstr "erstellt am" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,this_partner_id:0 +msgid "Current Partner" +msgstr "Aktueller Partner" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,partner_category_this:0 +#: field:res.partner.relation.type.selection,search_partner_category_this:0 +msgid "Current record's category" +msgstr "Kategorie des aktuellen Datensatzes" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,contact_type_this:0 +msgid "Current record's partner type" +msgstr "Partnerart des aktuellen Datensatzes" + +#. module: partner_multi_relation +#: field:res.partner.relation,right_partner_id:0 +msgid "Destination Partner" +msgstr "Zielpartner" + +#. module: partner_multi_relation +#: field:res.partner.relation,display_name:0 +#: field:res.partner.relation.all,display_name:0 +#: field:res.partner.relation.type,display_name:0 +#: field:res.partner.relation.type.selection,display_name:0 +msgid "Display Name" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,date_end:0 +#: field:res.partner.relation.all,date_end:0 +msgid "Ending date" +msgstr "Enddatum" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Group By" +msgstr "Gruppieren" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_assistant +msgid "Has assistant" +msgstr "Hat Assistent" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_has_worked_for +msgid "Has former employee" +msgstr "Hat ehemaligen Mitarbeiter" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_type_id:0 +msgid "Has relation of type" +msgstr "Hat Beziehungsart" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_partner_id:0 +msgid "Has relation with" +msgstr "Hat Beziehung mit" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_partner_category_id:0 +msgid "Has relation with a partner in category" +msgstr "Hat Beziehung mit Partner der Kategorie" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_has_worked_for +msgid "Has worked for" +msgstr "Hat gearbeitet für" + +#. module: partner_multi_relation +#: field:res.partner.relation,id:0 field:res.partner.relation.all,id:0 +#: field:res.partner.relation.type,id:0 +#: field:res.partner.relation.type.selection,id:0 +msgid "ID" +msgstr "ID" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,name_inverse:0 +msgid "Inverse name" +msgstr "Umgekehrte Bezeichnung" + +#. module: partner_multi_relation +#: selection:res.partner.relation.all,record_type:0 +#: selection:res.partner.relation.type.selection,record_type:0 +msgid "Inverse type" +msgstr "Art der Umkehrung" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_assistant +msgid "Is assistant of" +msgstr "Ist Assistent von" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_competitor +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_competitor +msgid "Is competitor of" +msgstr "Ist Mitbewerber von" + +#. module: partner_multi_relation +#: field:res.partner.relation,__last_update:0 +#: field:res.partner.relation.all,__last_update:0 +#: field:res.partner.relation.type,__last_update:0 +#: field:res.partner.relation.type.selection,__last_update:0 +msgid "Last Modified on" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,write_uid:0 +#: field:res.partner.relation.type,write_uid:0 +msgid "Last Updated by" +msgstr "zuletzt aktualisiert von" + +#. module: partner_multi_relation +#: field:res.partner.relation,write_date:0 +#: field:res.partner.relation.type,write_date:0 +msgid "Last Updated on" +msgstr "zuletzt aktualisiert am" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +msgid "Left Partner" +msgstr "Linker Partner" + +#. module: partner_multi_relation +#: field:res.partner.relation,left_contact_type:0 +msgid "Left Partner Type" +msgstr "Art des linken Partners" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,partner_category_left:0 +msgid "Left partner category" +msgstr "Kategorie des linken Partners" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,contact_type_left:0 +msgid "Left partner type" +msgstr "Art des linken Partners" + +#. module: partner_multi_relation +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +msgid "Left side of relation" +msgstr "Linker Zweig der Beziehung" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,name:0 +#: field:res.partner.relation.type.selection,name:0 +msgid "Name" +msgstr "Name" + +#. module: partner_multi_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +#: field:res.partner.relation.all,other_partner_id:0 +msgid "Other Partner" +msgstr "Anderer Partner" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,partner_category_other:0 +msgid "Other record's category" +msgstr "Kategorie des anderen Satzes" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,contact_type_other:0 +msgid "Other record's partner type" +msgstr "Partnerart des anderen Satzes" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner +#: field:res.partner.relation,any_partner_id:0 +#: field:res.partner.relation,partner_id_display:0 +msgid "Partner" +msgstr "Partner" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.form_res_partner_relation +msgid "Partner Relation" +msgstr "Partnerbeziehung" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_type +msgid "Partner Relation Type" +msgstr "Art der Partnerbeziehung" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.tree_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.tree_res_partner_relation_all +msgid "Partner Relations" +msgstr "Partnerbeziehungen" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation_type +#: model:ir.ui.menu,name:partner_multi_relation.menu_res_partner_relation_type +msgid "Partner Relations Types" +msgstr "Arten von Partnerbeziehungen" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,contact_type:0 +msgid "Partner Type" +msgstr "Partnerart" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.form_res_partner_relation_all +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +#: view:res.partner.relation.type:partner_multi_relation.tree_res_partner_relation_type +msgid "Partner relation" +msgstr "Partnerbeziehung" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:301 +#, python-format +msgid "Partners cannot have a relation with themselves." +msgstr "Partner dürfen nicht mit sich selbst in Beziehung stehen." + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:69 +#, python-format +msgid "Person" +msgstr "Person" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,record_type:0 +msgid "Record Type" +msgstr "Satzart" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,record_type:0 +msgid "Record type" +msgstr "Satzart" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:370 +#, python-format +msgid "Related partners" +msgstr "Partner mit Beziehung" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,relation_id:0 +msgid "Relation" +msgstr "Beziehung" + +#. module: partner_multi_relation +#: field:res.partner,relation_count:0 +msgid "Relation Count" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,type_id:0 +#: field:res.partner.relation.all,type_selection_id:0 +msgid "Relation Type" +msgstr "Art der Beziehung" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_date:0 +msgid "Relation valid" +msgstr "Beziehung zulässig" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation_all +#: model:ir.ui.menu,name:partner_multi_relation.menu_res_partner_relation_sales +#: view:res.partner:partner_multi_relation.view_partner_form +#: field:res.partner,relation_ids:0 +msgid "Relations" +msgstr "Beziehungen" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Relationship Type" +msgstr "Art der Beziehung" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +msgid "Right Partner" +msgstr "Rechter Partner" + +#. module: partner_multi_relation +#: field:res.partner.relation,right_contact_type:0 +msgid "Right Partner Type" +msgstr "Art des rechten Partners" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,partner_category_right:0 +msgid "Right partner category" +msgstr "Kategorie des rechten Partners" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,contact_type_right:0 +msgid "Right partner type" +msgstr "Art des rechten Partners" + +#. module: partner_multi_relation +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +msgid "Right side of relation" +msgstr "Rechter Zweig der Beziehung" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Search Relations" +msgstr "Suche in Beziehungen" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_show_partner_multi_relation +msgid "Show partner's relations" +msgstr "Zeige Beziehungen des Partners" + +#. module: partner_multi_relation +#: model:ir.actions.server,name:partner_multi_relation.action_show_right_relation_partners +msgid "Show partners" +msgstr "Zeige Partner" + +#. module: partner_multi_relation +#: field:res.partner.relation,left_partner_id:0 +msgid "Source Partner" +msgstr "Partnerentstehung" + +#. module: partner_multi_relation +#: field:res.partner.relation,date_start:0 +#: field:res.partner.relation.all,date_start:0 +msgid "Starting date" +msgstr "Anfangsdatum" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:287 +#, python-format +msgid "The %s partner is not applicable for this relation type." +msgstr "Der %s Partner ist für diese Beziehungsart nicht geeignet." + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:254 +#, python-format +msgid "The starting date cannot be after the ending date." +msgstr "Das Anfangsdatum darf nicht nach dem Enddatum liegen." + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:329 +#, python-format +msgid "There is already a similar relation with overlapping dates" +msgstr "Es gibt bereits eine ähnliche Beziehung mit überlappenden Daten" + +#. module: partner_multi_relation +#: field:res.partner.relation,type_id:0 +#: field:res.partner.relation,type_selection_id:0 +#: selection:res.partner.relation.all,record_type:0 +#: selection:res.partner.relation.type.selection,record_type:0 +#: field:res.partner.relation.type.selection,type_id:0 +msgid "Type" +msgstr "Art" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner.py:122 +#, python-format +msgid "Unsupported search operand \"%s\"" +msgstr "Nicht unterstützter Such-Operand \"%s\"" diff --git a/i18n/es.po b/i18n/es.po new file mode 100644 index 000000000..2d475f926 --- /dev/null +++ b/i18n/es.po @@ -0,0 +1,432 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * partner_multi_relation +# +# Translators: +# Iván Todorovich , 2015 +# Oihane Crucelaegui , 2016 +msgid "" +msgstr "" +"Project-Id-Version: partner-contact (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-07-25 11:58+0000\n" +"PO-Revision-Date: 2016-07-14 09:06+0000\n" +"Last-Translator: Oihane Crucelaegui \n" +"Language-Team: Spanish (http://www.transifex.com/oca/OCA-partner-contact-8-0/language/es/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,help:partner_multi_relation.action_res_partner_relation +#: model:ir.actions.act_window,help:partner_multi_relation.action_res_partner_relation_all +msgid "" +"

\n" +" Record and track your partners' relations. Relations may be linked to other partners with a type either directly or inversely.\n" +"

\n" +" " +msgstr "

\n Registro y seguimiento de las relaciones de sus empresas. Las relaciones pueden estar vinculadas a otras empresas con un tipo de relación directa o inversamente.\n

\n " + +#. module: partner_multi_relation +#: field:res.partner.relation,active:0 field:res.partner.relation.all,active:0 +msgid "Active" +msgstr "Activo" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_all +msgid "All (non-inverse + inverse) relations between partners" +msgstr "Todas (no-inversas + inversas) las relaciones entre empresas" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_type_selection +msgid "All relation types" +msgstr "Todos los tipos de relaciones" + +#. module: partner_multi_relation +#: field:res.partner,relation_all_ids:0 +msgid "All relations with current partner" +msgstr "Todas las relaciones con la empresa actual" + +#. module: partner_multi_relation +#: field:res.partner.relation,allow_self:0 +#: field:res.partner.relation.type,allow_self:0 +msgid "Allow both sides to be the same" +msgstr "Permitir que ambos lados sean iguales" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:68 +#, python-format +msgid "Company" +msgstr "Empresa" + +#. module: partner_multi_relation +#: field:res.partner.relation,create_uid:0 +#: field:res.partner.relation.type,create_uid:0 +msgid "Created by" +msgstr "Creado por" + +#. module: partner_multi_relation +#: field:res.partner.relation,create_date:0 +#: field:res.partner.relation.type,create_date:0 +msgid "Created on" +msgstr "Creado en" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,this_partner_id:0 +msgid "Current Partner" +msgstr "Empresa actual" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,partner_category_this:0 +#: field:res.partner.relation.type.selection,search_partner_category_this:0 +msgid "Current record's category" +msgstr "Etiqueta del registro actual" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,contact_type_this:0 +msgid "Current record's partner type" +msgstr "Tipo de empresa del registro actual" + +#. module: partner_multi_relation +#: field:res.partner.relation,right_partner_id:0 +msgid "Destination Partner" +msgstr "Empresa destino" + +#. module: partner_multi_relation +#: field:res.partner.relation,display_name:0 +#: field:res.partner.relation.all,display_name:0 +#: field:res.partner.relation.type,display_name:0 +#: field:res.partner.relation.type.selection,display_name:0 +msgid "Display Name" +msgstr "Nombre mostrado" + +#. module: partner_multi_relation +#: field:res.partner.relation,date_end:0 +#: field:res.partner.relation.all,date_end:0 +msgid "Ending date" +msgstr "Fecha fin" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Group By" +msgstr "Agrupar por" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_assistant +msgid "Has assistant" +msgstr "Tiene asistente" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_has_worked_for +msgid "Has former employee" +msgstr "Tiene ex-empleado" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_type_id:0 +msgid "Has relation of type" +msgstr "Tiene una relación de tipo" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_partner_id:0 +msgid "Has relation with" +msgstr "Tiene una relación con" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_partner_category_id:0 +msgid "Has relation with a partner in category" +msgstr "Tiene una relación con las empresas con la etiqueta" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_has_worked_for +msgid "Has worked for" +msgstr "Ha trabajado para" + +#. module: partner_multi_relation +#: field:res.partner.relation,id:0 field:res.partner.relation.all,id:0 +#: field:res.partner.relation.type,id:0 +#: field:res.partner.relation.type.selection,id:0 +msgid "ID" +msgstr "ID" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,name_inverse:0 +msgid "Inverse name" +msgstr "Nombre inverso" + +#. module: partner_multi_relation +#: selection:res.partner.relation.all,record_type:0 +#: selection:res.partner.relation.type.selection,record_type:0 +msgid "Inverse type" +msgstr "Tipo inverso" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_assistant +msgid "Is assistant of" +msgstr "Es asistente de" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_competitor +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_competitor +msgid "Is competitor of" +msgstr "Es competidor de" + +#. module: partner_multi_relation +#: field:res.partner.relation,__last_update:0 +#: field:res.partner.relation.all,__last_update:0 +#: field:res.partner.relation.type,__last_update:0 +#: field:res.partner.relation.type.selection,__last_update:0 +msgid "Last Modified on" +msgstr "Última modificación el" + +#. module: partner_multi_relation +#: field:res.partner.relation,write_uid:0 +#: field:res.partner.relation.type,write_uid:0 +msgid "Last Updated by" +msgstr "Última actualización por" + +#. module: partner_multi_relation +#: field:res.partner.relation,write_date:0 +#: field:res.partner.relation.type,write_date:0 +msgid "Last Updated on" +msgstr "Última actualización en" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +msgid "Left Partner" +msgstr "Empresa izquierda" + +#. module: partner_multi_relation +#: field:res.partner.relation,left_contact_type:0 +msgid "Left Partner Type" +msgstr "Tipo de empresa izquierda" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,partner_category_left:0 +msgid "Left partner category" +msgstr "Etiqueta empresa izquierda" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,contact_type_left:0 +msgid "Left partner type" +msgstr "Tipo de empresa izquierda" + +#. module: partner_multi_relation +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +msgid "Left side of relation" +msgstr "Lado izquierdo de la relación" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,name:0 +#: field:res.partner.relation.type.selection,name:0 +msgid "Name" +msgstr "Nombre" + +#. module: partner_multi_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +#: field:res.partner.relation.all,other_partner_id:0 +msgid "Other Partner" +msgstr "Otra empresa" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,partner_category_other:0 +msgid "Other record's category" +msgstr "Etiqueta del otro registro" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,contact_type_other:0 +msgid "Other record's partner type" +msgstr "Tipo de empresa del otro registro" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner +#: field:res.partner.relation,any_partner_id:0 +#: field:res.partner.relation,partner_id_display:0 +msgid "Partner" +msgstr "Empresa" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.form_res_partner_relation +msgid "Partner Relation" +msgstr "Relación entre empresas" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_type +msgid "Partner Relation Type" +msgstr "Tipo de relación entre empresas" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.tree_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.tree_res_partner_relation_all +msgid "Partner Relations" +msgstr "Relaciones entre empresas" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation_type +#: model:ir.ui.menu,name:partner_multi_relation.menu_res_partner_relation_type +msgid "Partner Relations Types" +msgstr "Tipos de relaciones entre empresas" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,contact_type:0 +msgid "Partner Type" +msgstr "Tipo de empresa" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.form_res_partner_relation_all +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +#: view:res.partner.relation.type:partner_multi_relation.tree_res_partner_relation_type +msgid "Partner relation" +msgstr "Relación de empresa" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:301 +#, python-format +msgid "Partners cannot have a relation with themselves." +msgstr "Partners cannot have a relation with themselves." + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:69 +#, python-format +msgid "Person" +msgstr "Contacto" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,record_type:0 +msgid "Record Type" +msgstr "Tipo de registro" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,record_type:0 +msgid "Record type" +msgstr "Tipo de registro" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:370 +#, python-format +msgid "Related partners" +msgstr "Empresas relacionadas" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,relation_id:0 +msgid "Relation" +msgstr "Relación" + +#. module: partner_multi_relation +#: field:res.partner,relation_count:0 +msgid "Relation Count" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,type_id:0 +#: field:res.partner.relation.all,type_selection_id:0 +msgid "Relation Type" +msgstr "Tipo de relación" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_date:0 +msgid "Relation valid" +msgstr "Relación válida" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation_all +#: model:ir.ui.menu,name:partner_multi_relation.menu_res_partner_relation_sales +#: view:res.partner:partner_multi_relation.view_partner_form +#: field:res.partner,relation_ids:0 +msgid "Relations" +msgstr "Relaciones" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Relationship Type" +msgstr "Tipo de relación" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +msgid "Right Partner" +msgstr "Empresa derecha" + +#. module: partner_multi_relation +#: field:res.partner.relation,right_contact_type:0 +msgid "Right Partner Type" +msgstr "Tipo de empresa derecha" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,partner_category_right:0 +msgid "Right partner category" +msgstr "Etiqueta empresa derecha" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,contact_type_right:0 +msgid "Right partner type" +msgstr "Tipo empresa derecha" + +#. module: partner_multi_relation +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +msgid "Right side of relation" +msgstr "Lado derecho de la relación" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Search Relations" +msgstr "Buscar relaciones" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_show_partner_multi_relation +msgid "Show partner's relations" +msgstr "Mostrar la relaiones de la empresa" + +#. module: partner_multi_relation +#: model:ir.actions.server,name:partner_multi_relation.action_show_right_relation_partners +msgid "Show partners" +msgstr "Mostrar empresas" + +#. module: partner_multi_relation +#: field:res.partner.relation,left_partner_id:0 +msgid "Source Partner" +msgstr "Empresa origen" + +#. module: partner_multi_relation +#: field:res.partner.relation,date_start:0 +#: field:res.partner.relation.all,date_start:0 +msgid "Starting date" +msgstr "Fecha inicio" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:287 +#, python-format +msgid "The %s partner is not applicable for this relation type." +msgstr "La empresa %s no aplica para este tipo de relación" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:254 +#, python-format +msgid "The starting date cannot be after the ending date." +msgstr "La fecha de inicio no puede ser posterior a la fecha de fin." + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:329 +#, python-format +msgid "There is already a similar relation with overlapping dates" +msgstr "Hay una relación similar que se solapa en fechas" + +#. module: partner_multi_relation +#: field:res.partner.relation,type_id:0 +#: field:res.partner.relation,type_selection_id:0 +#: selection:res.partner.relation.all,record_type:0 +#: selection:res.partner.relation.type.selection,record_type:0 +#: field:res.partner.relation.type.selection,type_id:0 +msgid "Type" +msgstr "Tipo" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner.py:122 +#, python-format +msgid "Unsupported search operand \"%s\"" +msgstr "Operando de búsqueda no soportado: \"%s\"" diff --git a/i18n/fi.po b/i18n/fi.po new file mode 100644 index 000000000..f6a7a59a9 --- /dev/null +++ b/i18n/fi.po @@ -0,0 +1,430 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * partner_multi_relation +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: partner-contact (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-07 07:18+0000\n" +"PO-Revision-Date: 2016-05-06 15:15+0000\n" +"Last-Translator: OCA Transbot \n" +"Language-Team: Finnish (http://www.transifex.com/oca/OCA-partner-contact-8-0/language/fi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fi\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,help:partner_multi_relation.action_res_partner_relation +#: model:ir.actions.act_window,help:partner_multi_relation.action_res_partner_relation_all +msgid "" +"

\n" +" Record and track your partners' relations. Relations may be linked to other partners with a type either directly or inversely.\n" +"

\n" +" " +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,active:0 field:res.partner.relation.all,active:0 +msgid "Active" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_all +msgid "All (non-inverse + inverse) relations between partners" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_type_selection +msgid "All relation types" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner,relation_all_ids:0 +msgid "All relations with current partner" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,allow_self:0 +#: field:res.partner.relation.type,allow_self:0 +msgid "Allow both sides to be the same" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:68 +#, python-format +msgid "Company" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,create_uid:0 +#: field:res.partner.relation.type,create_uid:0 +msgid "Created by" +msgstr "Luonut" + +#. module: partner_multi_relation +#: field:res.partner.relation,create_date:0 +#: field:res.partner.relation.type,create_date:0 +msgid "Created on" +msgstr "Luotu" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,this_partner_id:0 +msgid "Current Partner" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,partner_category_this:0 +#: field:res.partner.relation.type.selection,search_partner_category_this:0 +msgid "Current record's category" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,contact_type_this:0 +msgid "Current record's partner type" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,right_partner_id:0 +msgid "Destination Partner" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,display_name:0 +#: field:res.partner.relation.all,display_name:0 +#: field:res.partner.relation.type,display_name:0 +#: field:res.partner.relation.type.selection,display_name:0 +msgid "Display Name" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,date_end:0 +#: field:res.partner.relation.all,date_end:0 +msgid "Ending date" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Group By" +msgstr "" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_assistant +msgid "Has assistant" +msgstr "" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_has_worked_for +msgid "Has former employee" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_type_id:0 +msgid "Has relation of type" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_partner_id:0 +msgid "Has relation with" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_partner_category_id:0 +msgid "Has relation with a partner in category" +msgstr "" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_has_worked_for +msgid "Has worked for" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,id:0 field:res.partner.relation.all,id:0 +#: field:res.partner.relation.type,id:0 +#: field:res.partner.relation.type.selection,id:0 +msgid "ID" +msgstr "ID" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,name_inverse:0 +msgid "Inverse name" +msgstr "" + +#. module: partner_multi_relation +#: selection:res.partner.relation.all,record_type:0 +#: selection:res.partner.relation.type.selection,record_type:0 +msgid "Inverse type" +msgstr "" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_assistant +msgid "Is assistant of" +msgstr "" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_competitor +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_competitor +msgid "Is competitor of" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,__last_update:0 +#: field:res.partner.relation.all,__last_update:0 +#: field:res.partner.relation.type,__last_update:0 +#: field:res.partner.relation.type.selection,__last_update:0 +msgid "Last Modified on" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,write_uid:0 +#: field:res.partner.relation.type,write_uid:0 +msgid "Last Updated by" +msgstr "Viimeksi päivitetty" + +#. module: partner_multi_relation +#: field:res.partner.relation,write_date:0 +#: field:res.partner.relation.type,write_date:0 +msgid "Last Updated on" +msgstr "Viimeksi päivittänyt" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +msgid "Left Partner" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,left_contact_type:0 +msgid "Left Partner Type" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,partner_category_left:0 +msgid "Left partner category" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,contact_type_left:0 +msgid "Left partner type" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +msgid "Left side of relation" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,name:0 +#: field:res.partner.relation.type.selection,name:0 +msgid "Name" +msgstr "Nimi" + +#. module: partner_multi_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +#: field:res.partner.relation.all,other_partner_id:0 +msgid "Other Partner" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,partner_category_other:0 +msgid "Other record's category" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,contact_type_other:0 +msgid "Other record's partner type" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner +#: field:res.partner.relation,any_partner_id:0 +#: field:res.partner.relation,partner_id_display:0 +msgid "Partner" +msgstr "Kumppani" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.form_res_partner_relation +msgid "Partner Relation" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_type +msgid "Partner Relation Type" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.tree_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.tree_res_partner_relation_all +msgid "Partner Relations" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation_type +#: model:ir.ui.menu,name:partner_multi_relation.menu_res_partner_relation_type +msgid "Partner Relations Types" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,contact_type:0 +msgid "Partner Type" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.form_res_partner_relation_all +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +#: view:res.partner.relation.type:partner_multi_relation.tree_res_partner_relation_type +msgid "Partner relation" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:301 +#, python-format +msgid "Partners cannot have a relation with themselves." +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:69 +#, python-format +msgid "Person" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,record_type:0 +msgid "Record Type" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,record_type:0 +msgid "Record type" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:370 +#, python-format +msgid "Related partners" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,relation_id:0 +msgid "Relation" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner,relation_count:0 +msgid "Relation Count" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,type_id:0 +#: field:res.partner.relation.all,type_selection_id:0 +msgid "Relation Type" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_date:0 +msgid "Relation valid" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation_all +#: model:ir.ui.menu,name:partner_multi_relation.menu_res_partner_relation_sales +#: view:res.partner:partner_multi_relation.view_partner_form +#: field:res.partner,relation_ids:0 +msgid "Relations" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Relationship Type" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +msgid "Right Partner" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,right_contact_type:0 +msgid "Right Partner Type" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,partner_category_right:0 +msgid "Right partner category" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,contact_type_right:0 +msgid "Right partner type" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +msgid "Right side of relation" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Search Relations" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_show_partner_multi_relation +msgid "Show partner's relations" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.actions.server,name:partner_multi_relation.action_show_right_relation_partners +msgid "Show partners" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,left_partner_id:0 +msgid "Source Partner" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,date_start:0 +#: field:res.partner.relation.all,date_start:0 +msgid "Starting date" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:287 +#, python-format +msgid "The %s partner is not applicable for this relation type." +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:254 +#, python-format +msgid "The starting date cannot be after the ending date." +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:329 +#, python-format +msgid "There is already a similar relation with overlapping dates" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,type_id:0 +#: field:res.partner.relation,type_selection_id:0 +#: selection:res.partner.relation.all,record_type:0 +#: selection:res.partner.relation.type.selection,record_type:0 +#: field:res.partner.relation.type.selection,type_id:0 +msgid "Type" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner.py:122 +#, python-format +msgid "Unsupported search operand \"%s\"" +msgstr "" diff --git a/i18n/fr.po b/i18n/fr.po new file mode 100644 index 000000000..c15908f77 --- /dev/null +++ b/i18n/fr.po @@ -0,0 +1,433 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * partner_multi_relation +# +# Translators: +# Bruno JOLIVEAU, 2015 +# Bruno JOLIVEAU, 2015 +# Etienne Ferriere , 2016 +msgid "" +msgstr "" +"Project-Id-Version: partner-contact (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-07 07:18+0000\n" +"PO-Revision-Date: 2016-05-06 15:15+0000\n" +"Last-Translator: OCA Transbot \n" +"Language-Team: French (http://www.transifex.com/oca/OCA-partner-contact-8-0/language/fr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,help:partner_multi_relation.action_res_partner_relation +#: model:ir.actions.act_window,help:partner_multi_relation.action_res_partner_relation_all +msgid "" +"

\n" +" Record and track your partners' relations. Relations may be linked to other partners with a type either directly or inversely.\n" +"

\n" +" " +msgstr "

\n Enregistrer et suivre les relations de vos partenaires. Les relations peuvent être liés avec d'autre partenaires avec un type, soit directement ou inversement.\n

\n " + +#. module: partner_multi_relation +#: field:res.partner.relation,active:0 field:res.partner.relation.all,active:0 +msgid "Active" +msgstr "Actif" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_all +msgid "All (non-inverse + inverse) relations between partners" +msgstr "Tous les relations (non-inverse et inverse) entre partenaires" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_type_selection +msgid "All relation types" +msgstr "Tous types de relations" + +#. module: partner_multi_relation +#: field:res.partner,relation_all_ids:0 +msgid "All relations with current partner" +msgstr "Tous les relations avec le partenaire courant" + +#. module: partner_multi_relation +#: field:res.partner.relation,allow_self:0 +#: field:res.partner.relation.type,allow_self:0 +msgid "Allow both sides to be the same" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:68 +#, python-format +msgid "Company" +msgstr "Société" + +#. module: partner_multi_relation +#: field:res.partner.relation,create_uid:0 +#: field:res.partner.relation.type,create_uid:0 +msgid "Created by" +msgstr "Créé par" + +#. module: partner_multi_relation +#: field:res.partner.relation,create_date:0 +#: field:res.partner.relation.type,create_date:0 +msgid "Created on" +msgstr "Créé le" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,this_partner_id:0 +msgid "Current Partner" +msgstr "Partenaire courant" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,partner_category_this:0 +#: field:res.partner.relation.type.selection,search_partner_category_this:0 +msgid "Current record's category" +msgstr "Catégorie de l'enregistrement courante" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,contact_type_this:0 +msgid "Current record's partner type" +msgstr "Type de partenaire de l'enregistrement courrant" + +#. module: partner_multi_relation +#: field:res.partner.relation,right_partner_id:0 +msgid "Destination Partner" +msgstr "Partenaire destinataire" + +#. module: partner_multi_relation +#: field:res.partner.relation,display_name:0 +#: field:res.partner.relation.all,display_name:0 +#: field:res.partner.relation.type,display_name:0 +#: field:res.partner.relation.type.selection,display_name:0 +msgid "Display Name" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,date_end:0 +#: field:res.partner.relation.all,date_end:0 +msgid "Ending date" +msgstr "Date de fin" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Group By" +msgstr "Regrouper par" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_assistant +msgid "Has assistant" +msgstr "" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_has_worked_for +msgid "Has former employee" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_type_id:0 +msgid "Has relation of type" +msgstr "A une relation de type" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_partner_id:0 +msgid "Has relation with" +msgstr "A une relation avec" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_partner_category_id:0 +msgid "Has relation with a partner in category" +msgstr "A une relation avec un partenaire dans la catégorie" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_has_worked_for +msgid "Has worked for" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,id:0 field:res.partner.relation.all,id:0 +#: field:res.partner.relation.type,id:0 +#: field:res.partner.relation.type.selection,id:0 +msgid "ID" +msgstr "Id" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,name_inverse:0 +msgid "Inverse name" +msgstr "Nom inverse" + +#. module: partner_multi_relation +#: selection:res.partner.relation.all,record_type:0 +#: selection:res.partner.relation.type.selection,record_type:0 +msgid "Inverse type" +msgstr "Type inverse" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_assistant +msgid "Is assistant of" +msgstr "" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_competitor +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_competitor +msgid "Is competitor of" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,__last_update:0 +#: field:res.partner.relation.all,__last_update:0 +#: field:res.partner.relation.type,__last_update:0 +#: field:res.partner.relation.type.selection,__last_update:0 +msgid "Last Modified on" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,write_uid:0 +#: field:res.partner.relation.type,write_uid:0 +msgid "Last Updated by" +msgstr "Dernière modification par" + +#. module: partner_multi_relation +#: field:res.partner.relation,write_date:0 +#: field:res.partner.relation.type,write_date:0 +msgid "Last Updated on" +msgstr "Dernière mise à jour le" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +msgid "Left Partner" +msgstr "Partenaire de gauche" + +#. module: partner_multi_relation +#: field:res.partner.relation,left_contact_type:0 +msgid "Left Partner Type" +msgstr "Type de partenaire de gauche" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,partner_category_left:0 +msgid "Left partner category" +msgstr "Catégorie du partenaire de gauche" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,contact_type_left:0 +msgid "Left partner type" +msgstr "Type de partenaire de gauche" + +#. module: partner_multi_relation +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +msgid "Left side of relation" +msgstr "Côté gauche de la relation" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,name:0 +#: field:res.partner.relation.type.selection,name:0 +msgid "Name" +msgstr "Nom" + +#. module: partner_multi_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +#: field:res.partner.relation.all,other_partner_id:0 +msgid "Other Partner" +msgstr "L'autre partenaire" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,partner_category_other:0 +msgid "Other record's category" +msgstr "La catégorie de l'enregistrement de gauche" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,contact_type_other:0 +msgid "Other record's partner type" +msgstr "Le type de l'enregistrement de gauche" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner +#: field:res.partner.relation,any_partner_id:0 +#: field:res.partner.relation,partner_id_display:0 +msgid "Partner" +msgstr "Partenaire" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.form_res_partner_relation +msgid "Partner Relation" +msgstr "Relation du partenaire" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_type +msgid "Partner Relation Type" +msgstr "Type de relation de partenaire" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.tree_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.tree_res_partner_relation_all +msgid "Partner Relations" +msgstr "Relations du partenaire" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation_type +#: model:ir.ui.menu,name:partner_multi_relation.menu_res_partner_relation_type +msgid "Partner Relations Types" +msgstr "Types de relation de partenaire" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,contact_type:0 +msgid "Partner Type" +msgstr "Type de partenaire" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.form_res_partner_relation_all +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +#: view:res.partner.relation.type:partner_multi_relation.tree_res_partner_relation_type +msgid "Partner relation" +msgstr "Relation du partenaire" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:301 +#, python-format +msgid "Partners cannot have a relation with themselves." +msgstr "Un partenaire ne peut pas avoir une relation avec soi-même." + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:69 +#, python-format +msgid "Person" +msgstr "Personne" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,record_type:0 +msgid "Record Type" +msgstr "Type d'enregistrement" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,record_type:0 +msgid "Record type" +msgstr "Type d'enregistrement" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:370 +#, python-format +msgid "Related partners" +msgstr "Partenaires liés" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,relation_id:0 +msgid "Relation" +msgstr "Relation" + +#. module: partner_multi_relation +#: field:res.partner,relation_count:0 +msgid "Relation Count" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,type_id:0 +#: field:res.partner.relation.all,type_selection_id:0 +msgid "Relation Type" +msgstr "Type de relation" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_date:0 +msgid "Relation valid" +msgstr "Relation valide" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation_all +#: model:ir.ui.menu,name:partner_multi_relation.menu_res_partner_relation_sales +#: view:res.partner:partner_multi_relation.view_partner_form +#: field:res.partner,relation_ids:0 +msgid "Relations" +msgstr "Relations" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Relationship Type" +msgstr "Type de relation" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +msgid "Right Partner" +msgstr "Partenaire de droite" + +#. module: partner_multi_relation +#: field:res.partner.relation,right_contact_type:0 +msgid "Right Partner Type" +msgstr "Type du partenaire de droite" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,partner_category_right:0 +msgid "Right partner category" +msgstr "Catégorie du partenaire de droite" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,contact_type_right:0 +msgid "Right partner type" +msgstr "Type du partenaire de droite" + +#. module: partner_multi_relation +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +msgid "Right side of relation" +msgstr "Côté droite de la relation" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Search Relations" +msgstr "Rechercher les relations" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_show_partner_multi_relation +msgid "Show partner's relations" +msgstr "Montrer les relations du partenaire" + +#. module: partner_multi_relation +#: model:ir.actions.server,name:partner_multi_relation.action_show_right_relation_partners +msgid "Show partners" +msgstr "Montrer les partenaires" + +#. module: partner_multi_relation +#: field:res.partner.relation,left_partner_id:0 +msgid "Source Partner" +msgstr "Partenaire source" + +#. module: partner_multi_relation +#: field:res.partner.relation,date_start:0 +#: field:res.partner.relation.all,date_start:0 +msgid "Starting date" +msgstr "Date de début" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:287 +#, python-format +msgid "The %s partner is not applicable for this relation type." +msgstr "Le partenaire %s n'es pas applicable pour cette type de relation." + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:254 +#, python-format +msgid "The starting date cannot be after the ending date." +msgstr "La date de début ne peut pas être après la date de fin." + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:329 +#, python-format +msgid "There is already a similar relation with overlapping dates" +msgstr "Il existe des dates en conflit des relations similaires." + +#. module: partner_multi_relation +#: field:res.partner.relation,type_id:0 +#: field:res.partner.relation,type_selection_id:0 +#: selection:res.partner.relation.all,record_type:0 +#: selection:res.partner.relation.type.selection,record_type:0 +#: field:res.partner.relation.type.selection,type_id:0 +msgid "Type" +msgstr "Type" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner.py:122 +#, python-format +msgid "Unsupported search operand \"%s\"" +msgstr "Opérateur de recherche non-supporté « %s »" diff --git a/i18n/it.po b/i18n/it.po new file mode 100644 index 000000000..991f9df46 --- /dev/null +++ b/i18n/it.po @@ -0,0 +1,432 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * partner_multi_relation +# +# Translators: +# Paolo Valier, 2016 +# Paolo Valier, 2016 +msgid "" +msgstr "" +"Project-Id-Version: partner-contact (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-07 07:18+0000\n" +"PO-Revision-Date: 2016-05-06 15:15+0000\n" +"Last-Translator: OCA Transbot \n" +"Language-Team: Italian (http://www.transifex.com/oca/OCA-partner-contact-8-0/language/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,help:partner_multi_relation.action_res_partner_relation +#: model:ir.actions.act_window,help:partner_multi_relation.action_res_partner_relation_all +msgid "" +"

\n" +" Record and track your partners' relations. Relations may be linked to other partners with a type either directly or inversely.\n" +"

\n" +" " +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,active:0 field:res.partner.relation.all,active:0 +msgid "Active" +msgstr "Attivo" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_all +msgid "All (non-inverse + inverse) relations between partners" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_type_selection +msgid "All relation types" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner,relation_all_ids:0 +msgid "All relations with current partner" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,allow_self:0 +#: field:res.partner.relation.type,allow_self:0 +msgid "Allow both sides to be the same" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:68 +#, python-format +msgid "Company" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,create_uid:0 +#: field:res.partner.relation.type,create_uid:0 +msgid "Created by" +msgstr "Creato da" + +#. module: partner_multi_relation +#: field:res.partner.relation,create_date:0 +#: field:res.partner.relation.type,create_date:0 +msgid "Created on" +msgstr "reato il" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,this_partner_id:0 +msgid "Current Partner" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,partner_category_this:0 +#: field:res.partner.relation.type.selection,search_partner_category_this:0 +msgid "Current record's category" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,contact_type_this:0 +msgid "Current record's partner type" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,right_partner_id:0 +msgid "Destination Partner" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,display_name:0 +#: field:res.partner.relation.all,display_name:0 +#: field:res.partner.relation.type,display_name:0 +#: field:res.partner.relation.type.selection,display_name:0 +msgid "Display Name" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,date_end:0 +#: field:res.partner.relation.all,date_end:0 +msgid "Ending date" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Group By" +msgstr "Raggruppa per" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_assistant +msgid "Has assistant" +msgstr "" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_has_worked_for +msgid "Has former employee" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_type_id:0 +msgid "Has relation of type" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_partner_id:0 +msgid "Has relation with" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_partner_category_id:0 +msgid "Has relation with a partner in category" +msgstr "" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_has_worked_for +msgid "Has worked for" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,id:0 field:res.partner.relation.all,id:0 +#: field:res.partner.relation.type,id:0 +#: field:res.partner.relation.type.selection,id:0 +msgid "ID" +msgstr "ID" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,name_inverse:0 +msgid "Inverse name" +msgstr "" + +#. module: partner_multi_relation +#: selection:res.partner.relation.all,record_type:0 +#: selection:res.partner.relation.type.selection,record_type:0 +msgid "Inverse type" +msgstr "" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_assistant +msgid "Is assistant of" +msgstr "" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_competitor +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_competitor +msgid "Is competitor of" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,__last_update:0 +#: field:res.partner.relation.all,__last_update:0 +#: field:res.partner.relation.type,__last_update:0 +#: field:res.partner.relation.type.selection,__last_update:0 +msgid "Last Modified on" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,write_uid:0 +#: field:res.partner.relation.type,write_uid:0 +msgid "Last Updated by" +msgstr "Ultimo aggiornamento di" + +#. module: partner_multi_relation +#: field:res.partner.relation,write_date:0 +#: field:res.partner.relation.type,write_date:0 +msgid "Last Updated on" +msgstr "Ultimo aggiornamento il" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +msgid "Left Partner" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,left_contact_type:0 +msgid "Left Partner Type" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,partner_category_left:0 +msgid "Left partner category" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,contact_type_left:0 +msgid "Left partner type" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +msgid "Left side of relation" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,name:0 +#: field:res.partner.relation.type.selection,name:0 +msgid "Name" +msgstr "Nome" + +#. module: partner_multi_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +#: field:res.partner.relation.all,other_partner_id:0 +msgid "Other Partner" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,partner_category_other:0 +msgid "Other record's category" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,contact_type_other:0 +msgid "Other record's partner type" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner +#: field:res.partner.relation,any_partner_id:0 +#: field:res.partner.relation,partner_id_display:0 +msgid "Partner" +msgstr "Partner" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.form_res_partner_relation +msgid "Partner Relation" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_type +msgid "Partner Relation Type" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.tree_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.tree_res_partner_relation_all +msgid "Partner Relations" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation_type +#: model:ir.ui.menu,name:partner_multi_relation.menu_res_partner_relation_type +msgid "Partner Relations Types" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,contact_type:0 +msgid "Partner Type" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.form_res_partner_relation_all +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +#: view:res.partner.relation.type:partner_multi_relation.tree_res_partner_relation_type +msgid "Partner relation" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:301 +#, python-format +msgid "Partners cannot have a relation with themselves." +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:69 +#, python-format +msgid "Person" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,record_type:0 +msgid "Record Type" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,record_type:0 +msgid "Record type" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:370 +#, python-format +msgid "Related partners" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,relation_id:0 +msgid "Relation" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner,relation_count:0 +msgid "Relation Count" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,type_id:0 +#: field:res.partner.relation.all,type_selection_id:0 +msgid "Relation Type" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_date:0 +msgid "Relation valid" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation_all +#: model:ir.ui.menu,name:partner_multi_relation.menu_res_partner_relation_sales +#: view:res.partner:partner_multi_relation.view_partner_form +#: field:res.partner,relation_ids:0 +msgid "Relations" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Relationship Type" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +msgid "Right Partner" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,right_contact_type:0 +msgid "Right Partner Type" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,partner_category_right:0 +msgid "Right partner category" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,contact_type_right:0 +msgid "Right partner type" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +msgid "Right side of relation" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Search Relations" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_show_partner_multi_relation +msgid "Show partner's relations" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.actions.server,name:partner_multi_relation.action_show_right_relation_partners +msgid "Show partners" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,left_partner_id:0 +msgid "Source Partner" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,date_start:0 +#: field:res.partner.relation.all,date_start:0 +msgid "Starting date" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:287 +#, python-format +msgid "The %s partner is not applicable for this relation type." +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:254 +#, python-format +msgid "The starting date cannot be after the ending date." +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:329 +#, python-format +msgid "There is already a similar relation with overlapping dates" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,type_id:0 +#: field:res.partner.relation,type_selection_id:0 +#: selection:res.partner.relation.all,record_type:0 +#: selection:res.partner.relation.type.selection,record_type:0 +#: field:res.partner.relation.type.selection,type_id:0 +msgid "Type" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner.py:122 +#, python-format +msgid "Unsupported search operand \"%s\"" +msgstr "" diff --git a/i18n/nl.po b/i18n/nl.po new file mode 100644 index 000000000..3e1448eb8 --- /dev/null +++ b/i18n/nl.po @@ -0,0 +1,549 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * partner_multi_relation +# +# Translators: +# OCA Transbot , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: partner-contact (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-09-02 12:39+0000\n" +"PO-Revision-Date: 2016-09-02 15:03+0200\n" +"Last-Translator: OCA Transbot \n" +"Language-Team: Dutch (http://www.transifex.com/oca/OCA-partner-contact-8-0/" +"language/nl/)\n" +"Language: nl\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"X-Generator: Gtranslator 2.91.6\n" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_all.py:178 +#, python-format +msgid "%s partner incompatible with relation type." +msgstr "%s relatie is onverenigbaar met gekozen connectietype." + +#. module: partner_multi_relation +#: model:ir.actions.act_window,help:partner_multi_relation.action_res_partner_relation_all +msgid "" +"

\n" +" Record and track your partners' relations. Relations " +"may\n" +" be linked to other partners with a type either directly\n" +" or inversely.\n" +"

\n" +" " +msgstr "" +"

\n" +"Onderhoud de connecties tussen uw relaties. Relaties mogen gekoppeld\n" +"worden zowel via een normale connectie, als met een omgekeerde\n" +"connectie.

" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,active:0 +msgid "Active" +msgstr "Actief" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_all +msgid "All (non-inverse + inverse) relations between partners" +msgstr "Alle connecties tussen relaties (gewoon en omgekeerd)." + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_type_selection +msgid "All relation types" +msgstr "Alle connectietypes" + +#. module: partner_multi_relation +#: field:res.partner,relation_all_ids:0 +msgid "All relations with current partner" +msgstr "Alle connecties vanuit de huidige relatie" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:13 +#: selection:res.partner.relation.type,handle_invalid_onchange:0 +#, python-format +msgid "Allow existing relations that do not fit changed conditions" +msgstr "" +"Sta bestaande connecties toe die niet voldoen aan de gewijzigde criteria" + +#. module: partner_multi_relation +#: field:res.partner.relation,create_uid:0 +#: field:res.partner.relation.type,create_uid:0 +msgid "Created by" +msgstr "Aangemaakt door" + +#. module: partner_multi_relation +#: field:res.partner.relation,create_date:0 +#: field:res.partner.relation.type,create_date:0 +msgid "Created on" +msgstr "Aangemaakt op" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,partner_category_this:0 +msgid "Current record's category" +msgstr "Categorie van het huidige record" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,contact_type_this:0 +msgid "Current record's partner type" +msgstr "Type van de huidige relatie" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:17 +#: selection:res.partner.relation.type,handle_invalid_onchange:0 +#, python-format +msgid "Delete relations that do not fit changed conditions" +msgstr "Verwijder connecties die niet voldoen aan de gewijzigde condities" + +#. module: partner_multi_relation +#: field:res.partner.relation,right_partner_id:0 +msgid "Destination Partner" +msgstr "Doel relatie" + +#. module: partner_multi_relation +#: field:res.partner.relation,display_name:0 +#: field:res.partner.relation.all,display_name:0 +#: field:res.partner.relation.type,display_name:0 +#: field:res.partner.relation.type.selection,display_name:0 +msgid "Display Name" +msgstr "Te tonen naam" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:11 +#: selection:res.partner.relation.type,handle_invalid_onchange:0 +#, python-format +msgid "Do not allow change that will result in invalid relations" +msgstr "Sta geen wijziging toe die zal resulteren in ongeldige connecties" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:15 +#: selection:res.partner.relation.type,handle_invalid_onchange:0 +#, python-format +msgid "End relations per today, if they do not fit changed conditions" +msgstr "" +"Beëindig wijzigingen per vandaag indien ze niet voldoen aan de gewijzigde " +"condities" + +#. module: partner_multi_relation +#: field:res.partner.relation,date_end:0 +#: field:res.partner.relation.all,date_end:0 +msgid "Ending date" +msgstr "Einddatum" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_all.py:184 +#: code:addons/partner_multi_relation/models/res_partner_relation_all.py:259 +#, python-format +msgid "Error!" +msgstr "Fout!" + +#. module: partner_multi_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Group By" +msgstr "Groepeer op" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_assistant +msgid "Has assistant" +msgstr "Heeft assistent" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_has_worked_for +msgid "Has former employee" +msgstr "Heeft voormalig werknemer" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_type_id:0 +msgid "Has relation of type" +msgstr "heeft connectie van type" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_partner_id:0 +msgid "Has relation with" +msgstr "Heeft connectie met" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_partner_category_id:0 +msgid "Has relation with a partner in category" +msgstr "Heeft connectie met een relatie in de categorie" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_has_worked_for +msgid "Has worked for" +msgstr "Heeft gewerkt voor" + +#. module: partner_multi_relation +#: field:res.partner.relation,id:0 field:res.partner.relation.all,id:0 +#: field:res.partner.relation.type,id:0 +#: field:res.partner.relation.type.selection,id:0 +msgid "ID" +msgstr "ID" + +#. module: partner_multi_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Include past records" +msgstr "Inclusief beëindigde connecties" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,handle_invalid_onchange:0 +msgid "Invalid relation handling" +msgstr "Afhandeling van ongeldige connecties" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,name_inverse:0 +msgid "Inverse name" +msgstr "Omgekeerde naam" + +#. module: partner_multi_relation +#: help:res.partner.relation.type.selection,is_inverse:0 +msgid "Inverse relations are from right to left partner." +msgstr "Omgekeerde connecties zijn vanaf de rechter relatie naar de linker." + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_assistant +msgid "Is assistant of" +msgstr "Is assistent van" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_competitor +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_competitor +msgid "Is competitor of" +msgstr "Is concurrent van" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,is_inverse:0 +msgid "Is reverse type?" +msgstr "Is omgekeerd type?" + +#. module: partner_multi_relation +#: field:res.partner.relation,__last_update:0 +#: field:res.partner.relation.all,__last_update:0 +#: field:res.partner.relation.type,__last_update:0 +#: field:res.partner.relation.type.selection,__last_update:0 +msgid "Last Modified on" +msgstr "Laatst bijgewerkt op" + +#. module: partner_multi_relation +#: field:res.partner.relation,write_uid:0 +#: field:res.partner.relation.type,write_uid:0 +msgid "Last Updated by" +msgstr "Laatst bijgewerkt door" + +#. module: partner_multi_relation +#: field:res.partner.relation,write_date:0 +#: field:res.partner.relation.type,write_date:0 +msgid "Last Updated on" +msgstr "Laatst bijgewerkt op" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,partner_category_left:0 +msgid "Left partner category" +msgstr "Categorie linkerrelatie" + +#. module: partner_multi_relation +#: selection:res.partner.relation.all,record_type:0 +msgid "Left partner to right partner" +msgstr "Van linker naar rechterrelatie" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,contact_type_left:0 +msgid "Left partner type" +msgstr "Type linkerrelatie" + +#. module: partner_multi_relation +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +msgid "Left side of relation" +msgstr "Linkerkant van relatie" + +#. module: partner_multi_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Left to right" +msgstr "Links naar rechts" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,name:0 +#: field:res.partner.relation.type.selection,name:0 +msgid "Name" +msgstr "Naam" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_all.py:181 +#, python-format +msgid "No %s partner available for relation type." +msgstr "Geen %s relatie beschikbaar voor dit connectietype." + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_all.py:256 +#, python-format +msgid "No relation type available for selected partners." +msgstr "Geen connectietype beschikbaar voor verbinden van deze relaties." + +#. module: partner_multi_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +#: field:res.partner.relation.all,this_partner_id:0 +msgid "One Partner" +msgstr "De ene relatie" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:82 +#, python-format +msgid "Organisation" +msgstr "Organisatie" + +#. module: partner_multi_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +#: field:res.partner.relation.all,other_partner_id:0 +msgid "Other Partner" +msgstr "De andere relatie" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,partner_category_other:0 +msgid "Other record's category" +msgstr "Categorie andere relatie" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,contact_type_other:0 +msgid "Other record's partner type" +msgstr "Type andere relatie" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner +#: field:res.partner.relation.all,any_partner_id:0 +msgid "Partner" +msgstr "Relatie" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_type +msgid "Partner Relation Type" +msgstr "Type connectie" + +#. module: partner_multi_relation +#: view:res.partner.relation.all:partner_multi_relation.tree_res_partner_relation_all +msgid "Partner Relations" +msgstr "Connecties" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation_type +#: model:ir.ui.menu,name:partner_multi_relation.menu_res_partner_relation_type +msgid "Partner Relations Types" +msgstr "Connectietypes" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation +msgid "Partner relation" +msgstr "Connectie" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:115 +#, python-format +msgid "Partners cannot have a relation with themselves." +msgstr "Relaties kunnen geen connectie met zichzelf hebben" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:83 +#, python-format +msgid "Person" +msgstr "Persoon" + +#. module: partner_multi_relation +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +msgid "Properties" +msgstr "Eigenschappen" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,record_type:0 +msgid "Record Type" +msgstr "Recordtype" + +#. module: partner_multi_relation +#: help:res.partner.relation.all,active:0 +msgid "Records with date_end in the past are inactive" +msgstr "Connecties met een datum in het verleden zijn inactief" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,allow_self:0 +#: field:res.partner.relation.type.selection,allow_self:0 +msgid "Reflexive" +msgstr "Wederkerig" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,relation_id:0 +msgid "Relation" +msgstr "Connectie" + +#. module: partner_multi_relation +#: field:res.partner,relation_count:0 +msgid "Relation Count" +msgstr "Aantal connecties" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,type_selection_id:0 +msgid "Relation Type" +msgstr "Type connectie" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_all.py:252 +#, python-format +msgid "Relation type incompatible with selected partner(s)." +msgstr "Type connectie komt niet overeen met geselecteerde relatie(s)." + +#. module: partner_multi_relation +#: field:res.partner,search_relation_date:0 +msgid "Relation valid" +msgstr "Geldige connectie" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation_all +#: model:ir.ui.menu,name:partner_multi_relation.menu_res_partner_relation_sales +#: view:res.partner:partner_multi_relation.view_partner_form +msgid "Relations" +msgstr "Connecties" + +#. module: partner_multi_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Relationship Type" +msgstr "Type connectie" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,partner_category_right:0 +msgid "Right partner category" +msgstr "Categorie rechterrelatie" + +#. module: partner_multi_relation +#: selection:res.partner.relation.all,record_type:0 +msgid "Right partner to left partner" +msgstr "Rechter naar linkerrelatie" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,contact_type_right:0 +msgid "Right partner type" +msgstr "Type rechterrelatie" + +#. module: partner_multi_relation +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +msgid "Right side of relation" +msgstr "Rechterkant van de connectie" + +#. module: partner_multi_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Right to left" +msgstr "Rechts naar links" + +#. module: partner_multi_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Search Relations" +msgstr "Zoek connecties" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_show_partner_multi_relation +msgid "Show partner's relations" +msgstr "Toon connecties van relatie" + +#. module: partner_multi_relation +#: field:res.partner.relation,left_partner_id:0 +msgid "Source Partner" +msgstr "Bron relatie" + +#. module: partner_multi_relation +#: field:res.partner.relation,date_start:0 +#: field:res.partner.relation.all,date_start:0 +msgid "Starting date" +msgstr "Datum ingang" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,is_symmetric:0 +#: field:res.partner.relation.type.selection,is_symmetric:0 +msgid "Symmetric" +msgstr "Symmetrisch" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:101 +#, fuzzy, python-format +msgid "The %s partner does not have category %s." +msgstr "De %s relatie is niet geldig voor dit type connectie." + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:95 +#, python-format +msgid "The %s partner is not applicable for this relation type." +msgstr "De %s relatie is niet geldig voor dit type connectie." + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:61 +#, python-format +msgid "The starting date cannot be after the ending date." +msgstr "De ingangsdatum kan niet na de einddatum liggen." + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:168 +#, python-format +msgid "" +"There are already relations not satisfying the conditions for partner type " +"or category." +msgstr "" +"Er zijn al connecties die niet voldoen aan de criteria voor type relatie of " +"categorie." + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:154 +#, python-format +msgid "There is already a similar relation with overlapping dates" +msgstr "Er is al een gelijkaardige connectie met overlappende geldigheid" + +#. module: partner_multi_relation +#: help:res.partner.relation.type,allow_self:0 +msgid "This relation can be set up with the same partner left and right" +msgstr "Deze connectie kan een relatie met zichzelf verbinden" + +#. module: partner_multi_relation +#: help:res.partner.relation.type,is_symmetric:0 +msgid "This relation is the same from right to left as from left to right" +msgstr "" +"Deze connectie is van rechts naar links hetzelfde als van links naar rechts" + +#. module: partner_multi_relation +#: field:res.partner.relation,type_id:0 +#: field:res.partner.relation.type.selection,type_id:0 +msgid "Type" +msgstr "Type" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner.py:80 +#: code:addons/partner_multi_relation/models/res_partner.py:121 +#, python-format +msgid "Unsupported search operator \"%s\"" +msgstr "Zoek operator \"%s\" wordt niet ondersteund " + +#. module: partner_multi_relation +#: help:res.partner.relation.type,handle_invalid_onchange:0 +msgid "" +"When adding relations criteria like partner type and category are checked.\n" +"However when you change the criteria, there might be relations that do not " +"fit the new criteria.\n" +"Specify how this situation should be handled." +msgstr "" +"Bij het aanmaken van connecties vinden controles plaats op type en categorie " +"van de relatie.\n" +"Echter, wanneer u de criteria verandert, dan kunnen er al connecties bestaan " +"die daar niet aan voldoen.\n" +"Geef aan hoe zo'n situatie moet worden afgehandeld. " + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_all.py:221 +#, python-format +msgid "other" +msgstr "andere" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_all.py:215 +#, python-format +msgid "this" +msgstr "deze" + +#~ msgid "Company" +#~ msgstr "Bedrijf" diff --git a/i18n/partner_multi_relation.pot b/i18n/partner_multi_relation.pot new file mode 100644 index 000000000..91e2c7ce9 --- /dev/null +++ b/i18n/partner_multi_relation.pot @@ -0,0 +1,521 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * partner_multi_relation +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 8.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-09-02 12:39+0000\n" +"PO-Revision-Date: 2016-09-02 12:39+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: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_all.py:178 +#, python-format +msgid "%s partner incompatible with relation type." +msgstr "" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,help:partner_multi_relation.action_res_partner_relation_all +msgid "

\n" +" Record and track your partners' relations. Relations may\n" +" be linked to other partners with a type either directly\n" +" or inversely.\n" +"

\n" +" " +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,active:0 +msgid "Active" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_all +msgid "All (non-inverse + inverse) relations between partners" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_type_selection +msgid "All relation types" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner,relation_all_ids:0 +msgid "All relations with current partner" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:13 +#: selection:res.partner.relation.type,handle_invalid_onchange:0 +#, python-format +msgid "Allow existing relations that do not fit changed conditions" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,create_uid:0 +#: field:res.partner.relation.type,create_uid:0 +msgid "Created by" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,create_date:0 +#: field:res.partner.relation.type,create_date:0 +msgid "Created on" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,partner_category_this:0 +msgid "Current record's category" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,contact_type_this:0 +msgid "Current record's partner type" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:17 +#: selection:res.partner.relation.type,handle_invalid_onchange:0 +#, python-format +msgid "Delete relations that do not fit changed conditions" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,right_partner_id:0 +msgid "Destination Partner" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,display_name:0 +#: field:res.partner.relation.all,display_name:0 +#: field:res.partner.relation.type,display_name:0 +#: field:res.partner.relation.type.selection,display_name:0 +msgid "Display Name" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:11 +#: selection:res.partner.relation.type,handle_invalid_onchange:0 +#, python-format +msgid "Do not allow change that will result in invalid relations" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:15 +#: selection:res.partner.relation.type,handle_invalid_onchange:0 +#, python-format +msgid "End relations per today, if they do not fit changed conditions" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,date_end:0 +#: field:res.partner.relation.all,date_end:0 +msgid "Ending date" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_all.py:184 +#: code:addons/partner_multi_relation/models/res_partner_relation_all.py:259 +#, python-format +msgid "Error!" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Group By" +msgstr "" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_assistant +msgid "Has assistant" +msgstr "" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_has_worked_for +msgid "Has former employee" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_type_id:0 +msgid "Has relation of type" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_partner_id:0 +msgid "Has relation with" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_partner_category_id:0 +msgid "Has relation with a partner in category" +msgstr "" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_has_worked_for +msgid "Has worked for" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,id:0 +#: field:res.partner.relation.all,id:0 +#: field:res.partner.relation.type,id:0 +#: field:res.partner.relation.type.selection,id:0 +msgid "ID" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Include past records" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,handle_invalid_onchange:0 +msgid "Invalid relation handling" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,name_inverse:0 +msgid "Inverse name" +msgstr "" + +#. module: partner_multi_relation +#: help:res.partner.relation.type.selection,is_inverse:0 +msgid "Inverse relations are from right to left partner." +msgstr "" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_assistant +msgid "Is assistant of" +msgstr "" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_competitor +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_competitor +msgid "Is competitor of" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,is_inverse:0 +msgid "Is reverse type?" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,__last_update:0 +#: field:res.partner.relation.all,__last_update:0 +#: field:res.partner.relation.type,__last_update:0 +#: field:res.partner.relation.type.selection,__last_update:0 +msgid "Last Modified on" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,write_uid:0 +#: field:res.partner.relation.type,write_uid:0 +msgid "Last Updated by" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,write_date:0 +#: field:res.partner.relation.type,write_date:0 +msgid "Last Updated on" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,partner_category_left:0 +msgid "Left partner category" +msgstr "" + +#. module: partner_multi_relation +#: selection:res.partner.relation.all,record_type:0 +msgid "Left partner to right partner" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,contact_type_left:0 +msgid "Left partner type" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +msgid "Left side of relation" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Left to right" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,name:0 +#: field:res.partner.relation.type.selection,name:0 +msgid "Name" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_all.py:181 +#, python-format +msgid "No %s partner available for relation type." +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_all.py:256 +#, python-format +msgid "No relation type available for selected partners." +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +#: field:res.partner.relation.all,this_partner_id:0 +msgid "One Partner" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:82 +#, python-format +msgid "Organisation" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +#: field:res.partner.relation.all,other_partner_id:0 +msgid "Other Partner" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,partner_category_other:0 +msgid "Other record's category" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,contact_type_other:0 +msgid "Other record's partner type" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner +#: field:res.partner.relation.all,any_partner_id:0 +msgid "Partner" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_type +msgid "Partner Relation Type" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation.all:partner_multi_relation.tree_res_partner_relation_all +msgid "Partner Relations" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation_type +#: model:ir.ui.menu,name:partner_multi_relation.menu_res_partner_relation_type +msgid "Partner Relations Types" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation +msgid "Partner relation" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:115 +#, python-format +msgid "Partners cannot have a relation with themselves." +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:83 +#, python-format +msgid "Person" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +msgid "Properties" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,record_type:0 +msgid "Record Type" +msgstr "" + +#. module: partner_multi_relation +#: help:res.partner.relation.all,active:0 +msgid "Records with date_end in the past are inactive" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,allow_self:0 +#: field:res.partner.relation.type.selection,allow_self:0 +msgid "Reflexive" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,relation_id:0 +msgid "Relation" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner,relation_count:0 +msgid "Relation Count" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,type_selection_id:0 +msgid "Relation Type" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_all.py:252 +#, python-format +msgid "Relation type incompatible with selected partner(s)." +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_date:0 +msgid "Relation valid" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation_all +#: model:ir.ui.menu,name:partner_multi_relation.menu_res_partner_relation_sales +#: view:res.partner:partner_multi_relation.view_partner_form +msgid "Relations" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Relationship Type" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,partner_category_right:0 +msgid "Right partner category" +msgstr "" + +#. module: partner_multi_relation +#: selection:res.partner.relation.all,record_type:0 +msgid "Right partner to left partner" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,contact_type_right:0 +msgid "Right partner type" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +msgid "Right side of relation" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Right to left" +msgstr "" + +#. module: partner_multi_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Search Relations" +msgstr "" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_show_partner_multi_relation +msgid "Show partner's relations" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,left_partner_id:0 +msgid "Source Partner" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,date_start:0 +#: field:res.partner.relation.all,date_start:0 +msgid "Starting date" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,is_symmetric:0 +#: field:res.partner.relation.type.selection,is_symmetric:0 +msgid "Symmetric" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:101 +#, python-format +msgid "The %s partner does not have category %s." +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:95 +#, python-format +msgid "The %s partner is not applicable for this relation type." +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:61 +#, python-format +msgid "The starting date cannot be after the ending date." +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:168 +#, python-format +msgid "There are already relations not satisfying the conditions for partner type or category." +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:154 +#, python-format +msgid "There is already a similar relation with overlapping dates" +msgstr "" + +#. module: partner_multi_relation +#: help:res.partner.relation.type,allow_self:0 +msgid "This relation can be set up with the same partner left and right" +msgstr "" + +#. module: partner_multi_relation +#: help:res.partner.relation.type,is_symmetric:0 +msgid "This relation is the same from right to left as from left to right" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,type_id:0 +#: field:res.partner.relation.type.selection,type_id:0 +msgid "Type" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner.py:80 +#: code:addons/partner_multi_relation/models/res_partner.py:121 +#, python-format +msgid "Unsupported search operator \"%s\"" +msgstr "" + +#. module: partner_multi_relation +#: help:res.partner.relation.type,handle_invalid_onchange:0 +msgid "When adding relations criteria like partner type and category are checked.\n" +"However when you change the criteria, there might be relations that do not fit the new criteria.\n" +"Specify how this situation should be handled." +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_all.py:221 +#, python-format +msgid "other" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_all.py:215 +#, python-format +msgid "this" +msgstr "" + diff --git a/i18n/pt_BR.po b/i18n/pt_BR.po new file mode 100644 index 000000000..e39a02a79 --- /dev/null +++ b/i18n/pt_BR.po @@ -0,0 +1,432 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * partner_multi_relation +# +# Translators: +# danimaribeiro , 2015 +# danimaribeiro , 2015 +msgid "" +msgstr "" +"Project-Id-Version: partner-contact (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-07 07:18+0000\n" +"PO-Revision-Date: 2016-05-06 15:15+0000\n" +"Last-Translator: OCA Transbot \n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-partner-contact-8-0/language/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,help:partner_multi_relation.action_res_partner_relation +#: model:ir.actions.act_window,help:partner_multi_relation.action_res_partner_relation_all +msgid "" +"

\n" +" Record and track your partners' relations. Relations may be linked to other partners with a type either directly or inversely.\n" +"

\n" +" " +msgstr "

\nRegistre e mantenha registro das relações entre seus parceiros. Relações podem ser\nligações para outros parceiros com um tipo específico, tanto diretamente ou o inverso.\n

" + +#. module: partner_multi_relation +#: field:res.partner.relation,active:0 field:res.partner.relation.all,active:0 +msgid "Active" +msgstr "Ativo" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_all +msgid "All (non-inverse + inverse) relations between partners" +msgstr "Todas (inversas e não-inversas) relações entre parceiros" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_type_selection +msgid "All relation types" +msgstr "Todos os tipos de relação" + +#. module: partner_multi_relation +#: field:res.partner,relation_all_ids:0 +msgid "All relations with current partner" +msgstr "Todos os relacionamentos com o parceiro atual" + +#. module: partner_multi_relation +#: field:res.partner.relation,allow_self:0 +#: field:res.partner.relation.type,allow_self:0 +msgid "Allow both sides to be the same" +msgstr "" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:68 +#, python-format +msgid "Company" +msgstr "Empresa" + +#. module: partner_multi_relation +#: field:res.partner.relation,create_uid:0 +#: field:res.partner.relation.type,create_uid:0 +msgid "Created by" +msgstr "Criado por" + +#. module: partner_multi_relation +#: field:res.partner.relation,create_date:0 +#: field:res.partner.relation.type,create_date:0 +msgid "Created on" +msgstr "Criado em" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,this_partner_id:0 +msgid "Current Partner" +msgstr "Parceiro atual" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,partner_category_this:0 +#: field:res.partner.relation.type.selection,search_partner_category_this:0 +msgid "Current record's category" +msgstr "Categoria do registro atual" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,contact_type_this:0 +msgid "Current record's partner type" +msgstr "Tipo do parceiro registro atual" + +#. module: partner_multi_relation +#: field:res.partner.relation,right_partner_id:0 +msgid "Destination Partner" +msgstr "Parceiro de destino" + +#. module: partner_multi_relation +#: field:res.partner.relation,display_name:0 +#: field:res.partner.relation.all,display_name:0 +#: field:res.partner.relation.type,display_name:0 +#: field:res.partner.relation.type.selection,display_name:0 +msgid "Display Name" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,date_end:0 +#: field:res.partner.relation.all,date_end:0 +msgid "Ending date" +msgstr "Data fina" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Group By" +msgstr "Agrupar por" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_assistant +msgid "Has assistant" +msgstr "Tem assistente" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_has_worked_for +msgid "Has former employee" +msgstr "Tem ex-empregado" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_type_id:0 +msgid "Has relation of type" +msgstr "Tem relação do tipo" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_partner_id:0 +msgid "Has relation with" +msgstr "Tem relação com" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_partner_category_id:0 +msgid "Has relation with a partner in category" +msgstr "Tem relação com um parceiro na categoria" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_has_worked_for +msgid "Has worked for" +msgstr "Trabalhou para" + +#. module: partner_multi_relation +#: field:res.partner.relation,id:0 field:res.partner.relation.all,id:0 +#: field:res.partner.relation.type,id:0 +#: field:res.partner.relation.type.selection,id:0 +msgid "ID" +msgstr "ID" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,name_inverse:0 +msgid "Inverse name" +msgstr "Nome inverso" + +#. module: partner_multi_relation +#: selection:res.partner.relation.all,record_type:0 +#: selection:res.partner.relation.type.selection,record_type:0 +msgid "Inverse type" +msgstr "Tipo inverso" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_assistant +msgid "Is assistant of" +msgstr "É assistente de " + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_competitor +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_competitor +msgid "Is competitor of" +msgstr "É competidor de" + +#. module: partner_multi_relation +#: field:res.partner.relation,__last_update:0 +#: field:res.partner.relation.all,__last_update:0 +#: field:res.partner.relation.type,__last_update:0 +#: field:res.partner.relation.type.selection,__last_update:0 +msgid "Last Modified on" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation,write_uid:0 +#: field:res.partner.relation.type,write_uid:0 +msgid "Last Updated by" +msgstr "Útima atualização por" + +#. module: partner_multi_relation +#: field:res.partner.relation,write_date:0 +#: field:res.partner.relation.type,write_date:0 +msgid "Last Updated on" +msgstr "Útima atualização em" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +msgid "Left Partner" +msgstr "Parceiro da esquerda" + +#. module: partner_multi_relation +#: field:res.partner.relation,left_contact_type:0 +msgid "Left Partner Type" +msgstr "Tipo parceiro da esquerda" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,partner_category_left:0 +msgid "Left partner category" +msgstr "Categoria do parceiro da esquerda" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,contact_type_left:0 +msgid "Left partner type" +msgstr "Tipo parceiro da esquerda" + +#. module: partner_multi_relation +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +msgid "Left side of relation" +msgstr "Lado esquerdo da relação" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,name:0 +#: field:res.partner.relation.type.selection,name:0 +msgid "Name" +msgstr "Nome" + +#. module: partner_multi_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +#: field:res.partner.relation.all,other_partner_id:0 +msgid "Other Partner" +msgstr "Outro parceiro" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,partner_category_other:0 +msgid "Other record's category" +msgstr "Outra categoria de registro" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,contact_type_other:0 +msgid "Other record's partner type" +msgstr "Outro tipo de registro de parceiro" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner +#: field:res.partner.relation,any_partner_id:0 +#: field:res.partner.relation,partner_id_display:0 +msgid "Partner" +msgstr "Parceiro" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.form_res_partner_relation +msgid "Partner Relation" +msgstr "Relacãos entre parceiros" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_type +msgid "Partner Relation Type" +msgstr "Tipo de relação entre parceiros" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.tree_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.tree_res_partner_relation_all +msgid "Partner Relations" +msgstr "Relacão entre parceiros" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation_type +#: model:ir.ui.menu,name:partner_multi_relation.menu_res_partner_relation_type +msgid "Partner Relations Types" +msgstr "Tipo de relação entre parceiros" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,contact_type:0 +msgid "Partner Type" +msgstr "Tipo de parceiro" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.form_res_partner_relation_all +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +#: view:res.partner.relation.type:partner_multi_relation.tree_res_partner_relation_type +msgid "Partner relation" +msgstr "Relação parceiro" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:301 +#, python-format +msgid "Partners cannot have a relation with themselves." +msgstr "Parceiros não podem ter relacionamentos com ele mesmo." + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:69 +#, python-format +msgid "Person" +msgstr "Pessoa" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,record_type:0 +msgid "Record Type" +msgstr "Tipo de Registro" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,record_type:0 +msgid "Record type" +msgstr "Tipo de registro" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:370 +#, python-format +msgid "Related partners" +msgstr "Parceiros relacionados" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,relation_id:0 +msgid "Relation" +msgstr "Relação" + +#. module: partner_multi_relation +#: field:res.partner,relation_count:0 +msgid "Relation Count" +msgstr "" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,type_id:0 +#: field:res.partner.relation.all,type_selection_id:0 +msgid "Relation Type" +msgstr "Tipo de relação" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_date:0 +msgid "Relation valid" +msgstr "Relação válida" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation_all +#: model:ir.ui.menu,name:partner_multi_relation.menu_res_partner_relation_sales +#: view:res.partner:partner_multi_relation.view_partner_form +#: field:res.partner,relation_ids:0 +msgid "Relations" +msgstr "Relações" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Relationship Type" +msgstr "Tipo de relacionamento" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +msgid "Right Partner" +msgstr "Parceiro da direita" + +#. module: partner_multi_relation +#: field:res.partner.relation,right_contact_type:0 +msgid "Right Partner Type" +msgstr "Tipo de parceiro da direita" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,partner_category_right:0 +msgid "Right partner category" +msgstr "Categoria do parceiro da direita" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,contact_type_right:0 +msgid "Right partner type" +msgstr "Tipo de parceiro da direita" + +#. module: partner_multi_relation +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +msgid "Right side of relation" +msgstr "Lado direito da relação" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Search Relations" +msgstr "Buscar relações" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_show_partner_multi_relation +msgid "Show partner's relations" +msgstr "Mostrar relações do parceiro" + +#. module: partner_multi_relation +#: model:ir.actions.server,name:partner_multi_relation.action_show_right_relation_partners +msgid "Show partners" +msgstr "Mostrar parceiros" + +#. module: partner_multi_relation +#: field:res.partner.relation,left_partner_id:0 +msgid "Source Partner" +msgstr "Parceiro de origem" + +#. module: partner_multi_relation +#: field:res.partner.relation,date_start:0 +#: field:res.partner.relation.all,date_start:0 +msgid "Starting date" +msgstr "Data de inicio" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:287 +#, python-format +msgid "The %s partner is not applicable for this relation type." +msgstr "O parceiro %s não é aplicavel a este tipo de relação." + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:254 +#, python-format +msgid "The starting date cannot be after the ending date." +msgstr "A data de inicio não pode ser após a data de fim." + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:329 +#, python-format +msgid "There is already a similar relation with overlapping dates" +msgstr "Já existe uma relação similar com datas incompativeis." + +#. module: partner_multi_relation +#: field:res.partner.relation,type_id:0 +#: field:res.partner.relation,type_selection_id:0 +#: selection:res.partner.relation.all,record_type:0 +#: selection:res.partner.relation.type.selection,record_type:0 +#: field:res.partner.relation.type.selection,type_id:0 +msgid "Type" +msgstr "Tipo" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner.py:122 +#, python-format +msgid "Unsupported search operand \"%s\"" +msgstr "Operador de busca não suportado \"%s\"" diff --git a/i18n/sl.po b/i18n/sl.po new file mode 100644 index 000000000..e7a20bcc2 --- /dev/null +++ b/i18n/sl.po @@ -0,0 +1,431 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * partner_multi_relation +# +# Translators: +# Matjaž Mozetič , 2015-2016 +msgid "" +msgstr "" +"Project-Id-Version: partner-contact (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-05-07 07:18+0000\n" +"PO-Revision-Date: 2016-05-07 07:16+0000\n" +"Last-Translator: Matjaž Mozetič \n" +"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-partner-contact-8-0/language/sl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: sl\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,help:partner_multi_relation.action_res_partner_relation +#: model:ir.actions.act_window,help:partner_multi_relation.action_res_partner_relation_all +msgid "" +"

\n" +" Record and track your partners' relations. Relations may be linked to other partners with a type either directly or inversely.\n" +"

\n" +" " +msgstr "

\n Beležite in sledite odnosom med partnerji. Odnosi se lahko povezani s partnerji direktno ali inverzno.\n

\n " + +#. module: partner_multi_relation +#: field:res.partner.relation,active:0 field:res.partner.relation.all,active:0 +msgid "Active" +msgstr "Aktivno" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_all +msgid "All (non-inverse + inverse) relations between partners" +msgstr "Vsi (ne inverzni in inverzni) odnosi med partnerji" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_type_selection +msgid "All relation types" +msgstr "Vsi tipi odnosov" + +#. module: partner_multi_relation +#: field:res.partner,relation_all_ids:0 +msgid "All relations with current partner" +msgstr "Vsi odnosi s trenutnim partnerjem" + +#. module: partner_multi_relation +#: field:res.partner.relation,allow_self:0 +#: field:res.partner.relation.type,allow_self:0 +msgid "Allow both sides to be the same" +msgstr "Dovoli, da sta obe strani enaki" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:68 +#, python-format +msgid "Company" +msgstr "Družba" + +#. module: partner_multi_relation +#: field:res.partner.relation,create_uid:0 +#: field:res.partner.relation.type,create_uid:0 +msgid "Created by" +msgstr "Ustvaril" + +#. module: partner_multi_relation +#: field:res.partner.relation,create_date:0 +#: field:res.partner.relation.type,create_date:0 +msgid "Created on" +msgstr "Ustvarjeno" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,this_partner_id:0 +msgid "Current Partner" +msgstr "Trenutni partner" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,partner_category_this:0 +#: field:res.partner.relation.type.selection,search_partner_category_this:0 +msgid "Current record's category" +msgstr "Kategorija trenutnega zapisa" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,contact_type_this:0 +msgid "Current record's partner type" +msgstr "Tip partnerja na trenutnem zapisu" + +#. module: partner_multi_relation +#: field:res.partner.relation,right_partner_id:0 +msgid "Destination Partner" +msgstr "Ciljni partner" + +#. module: partner_multi_relation +#: field:res.partner.relation,display_name:0 +#: field:res.partner.relation.all,display_name:0 +#: field:res.partner.relation.type,display_name:0 +#: field:res.partner.relation.type.selection,display_name:0 +msgid "Display Name" +msgstr "Prikazni naziv" + +#. module: partner_multi_relation +#: field:res.partner.relation,date_end:0 +#: field:res.partner.relation.all,date_end:0 +msgid "Ending date" +msgstr "Končni datum" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Group By" +msgstr "Združi po" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_assistant +msgid "Has assistant" +msgstr "Ima asistenta" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_has_worked_for +msgid "Has former employee" +msgstr "Ima bivšega zaposlenega" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_type_id:0 +msgid "Has relation of type" +msgstr "Ima odnos tipa" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_partner_id:0 +msgid "Has relation with" +msgstr "Je v odnosu z" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_partner_category_id:0 +msgid "Has relation with a partner in category" +msgstr "Je v odnosu s partnerjem kategorije" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_has_worked_for +msgid "Has worked for" +msgstr "Je delal za" + +#. module: partner_multi_relation +#: field:res.partner.relation,id:0 field:res.partner.relation.all,id:0 +#: field:res.partner.relation.type,id:0 +#: field:res.partner.relation.type.selection,id:0 +msgid "ID" +msgstr "ID" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,name_inverse:0 +msgid "Inverse name" +msgstr "Inverzni naziv" + +#. module: partner_multi_relation +#: selection:res.partner.relation.all,record_type:0 +#: selection:res.partner.relation.type.selection,record_type:0 +msgid "Inverse type" +msgstr "Inverzni tip" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_assistant +msgid "Is assistant of" +msgstr "Je asistent" + +#. module: partner_multi_relation +#: model:res.partner.relation.type,name:partner_multi_relation.rel_type_competitor +#: model:res.partner.relation.type,name_inverse:partner_multi_relation.rel_type_competitor +msgid "Is competitor of" +msgstr "Je konkurent" + +#. module: partner_multi_relation +#: field:res.partner.relation,__last_update:0 +#: field:res.partner.relation.all,__last_update:0 +#: field:res.partner.relation.type,__last_update:0 +#: field:res.partner.relation.type.selection,__last_update:0 +msgid "Last Modified on" +msgstr "Zadnjič spremenjeno" + +#. module: partner_multi_relation +#: field:res.partner.relation,write_uid:0 +#: field:res.partner.relation.type,write_uid:0 +msgid "Last Updated by" +msgstr "Zadnji posodobil" + +#. module: partner_multi_relation +#: field:res.partner.relation,write_date:0 +#: field:res.partner.relation.type,write_date:0 +msgid "Last Updated on" +msgstr "Zadnjič posodobljeno" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +msgid "Left Partner" +msgstr "Levi partner" + +#. module: partner_multi_relation +#: field:res.partner.relation,left_contact_type:0 +msgid "Left Partner Type" +msgstr "Tip levega partnerja" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,partner_category_left:0 +msgid "Left partner category" +msgstr "Kategorija levega partnerja" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,contact_type_left:0 +msgid "Left partner type" +msgstr "Tip levega partnerja" + +#. module: partner_multi_relation +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +msgid "Left side of relation" +msgstr "Leva stran odnosa" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,name:0 +#: field:res.partner.relation.type.selection,name:0 +msgid "Name" +msgstr "Naziv" + +#. module: partner_multi_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +#: field:res.partner.relation.all,other_partner_id:0 +msgid "Other Partner" +msgstr "Drugi partner" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,partner_category_other:0 +msgid "Other record's category" +msgstr "Kategorija drugega zapisa" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,contact_type_other:0 +msgid "Other record's partner type" +msgstr "Tip partnerja drugega zapisa" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner +#: field:res.partner.relation,any_partner_id:0 +#: field:res.partner.relation,partner_id_display:0 +msgid "Partner" +msgstr "Partner" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.form_res_partner_relation +msgid "Partner Relation" +msgstr "Partnerski odnos" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation_type +msgid "Partner Relation Type" +msgstr "Tip partnerskega odnosa" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.tree_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.tree_res_partner_relation_all +msgid "Partner Relations" +msgstr "Partnerski odnosi" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation_type +#: model:ir.ui.menu,name:partner_multi_relation.menu_res_partner_relation_type +msgid "Partner Relations Types" +msgstr "Tipi partnerskih odnosov" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,contact_type:0 +msgid "Partner Type" +msgstr "Tip partnerja" + +#. module: partner_multi_relation +#: model:ir.model,name:partner_multi_relation.model_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.form_res_partner_relation_all +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +#: view:res.partner.relation.type:partner_multi_relation.tree_res_partner_relation_type +msgid "Partner relation" +msgstr "Partnerski odnos" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:301 +#, python-format +msgid "Partners cannot have a relation with themselves." +msgstr "Partnerji ne morejo biti v odnosu sami s seboj." + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation_type.py:69 +#, python-format +msgid "Person" +msgstr "Oseba" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,record_type:0 +msgid "Record Type" +msgstr "Tip zapisa" + +#. module: partner_multi_relation +#: field:res.partner.relation.type.selection,record_type:0 +msgid "Record type" +msgstr "Tip zapisa" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:370 +#, python-format +msgid "Related partners" +msgstr "Povezani partnerji" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,relation_id:0 +msgid "Relation" +msgstr "Odnos" + +#. module: partner_multi_relation +#: field:res.partner,relation_count:0 +msgid "Relation Count" +msgstr "Števec relacij" + +#. module: partner_multi_relation +#: field:res.partner.relation.all,type_id:0 +#: field:res.partner.relation.all,type_selection_id:0 +msgid "Relation Type" +msgstr "Tip odnosa" + +#. module: partner_multi_relation +#: field:res.partner,search_relation_date:0 +msgid "Relation valid" +msgstr "Odnos veljaven" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_res_partner_relation_all +#: model:ir.ui.menu,name:partner_multi_relation.menu_res_partner_relation_sales +#: view:res.partner:partner_multi_relation.view_partner_form +#: field:res.partner,relation_ids:0 +msgid "Relations" +msgstr "Odnosi" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Relationship Type" +msgstr "Tip odnosa" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +msgid "Right Partner" +msgstr "Desni partner" + +#. module: partner_multi_relation +#: field:res.partner.relation,right_contact_type:0 +msgid "Right Partner Type" +msgstr "Tip desnega partnerja" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,partner_category_right:0 +msgid "Right partner category" +msgstr "Kategorija desnega partnerja" + +#. module: partner_multi_relation +#: field:res.partner.relation.type,contact_type_right:0 +msgid "Right partner type" +msgstr "Tip desnega partnerja" + +#. module: partner_multi_relation +#: view:res.partner.relation.type:partner_multi_relation.form_res_partner_relation_type +msgid "Right side of relation" +msgstr "Desna stran odnosa" + +#. module: partner_multi_relation +#: view:res.partner.relation:partner_multi_relation.search_res_partner_relation +#: view:res.partner.relation.all:partner_multi_relation.search_res_partner_relation_all +msgid "Search Relations" +msgstr "Iskanje odnosov" + +#. module: partner_multi_relation +#: model:ir.actions.act_window,name:partner_multi_relation.action_show_partner_multi_relation +msgid "Show partner's relations" +msgstr "Prikaz odnosov partnerja" + +#. module: partner_multi_relation +#: model:ir.actions.server,name:partner_multi_relation.action_show_right_relation_partners +msgid "Show partners" +msgstr "Prikaz partnerjev" + +#. module: partner_multi_relation +#: field:res.partner.relation,left_partner_id:0 +msgid "Source Partner" +msgstr "Izvorni partner" + +#. module: partner_multi_relation +#: field:res.partner.relation,date_start:0 +#: field:res.partner.relation.all,date_start:0 +msgid "Starting date" +msgstr "Začetni datum" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:287 +#, python-format +msgid "The %s partner is not applicable for this relation type." +msgstr "Partner %s ni ustrezen za ta tip odnosa." + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:254 +#, python-format +msgid "The starting date cannot be after the ending date." +msgstr "Začetni datum ne more biti za končnim datumom." + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner_relation.py:329 +#, python-format +msgid "There is already a similar relation with overlapping dates" +msgstr "Podoben odnos s prekrivajočimi se datumi že obstaja." + +#. module: partner_multi_relation +#: field:res.partner.relation,type_id:0 +#: field:res.partner.relation,type_selection_id:0 +#: selection:res.partner.relation.all,record_type:0 +#: selection:res.partner.relation.type.selection,record_type:0 +#: field:res.partner.relation.type.selection,type_id:0 +msgid "Type" +msgstr "Tip" + +#. module: partner_multi_relation +#: code:addons/partner_multi_relation/models/res_partner.py:122 +#, python-format +msgid "Unsupported search operand \"%s\"" +msgstr "Nepodprt iskalni operand \"%s\"" diff --git a/models/__init__.py b/models/__init__.py new file mode 100644 index 000000000..8aef17344 --- /dev/null +++ b/models/__init__.py @@ -0,0 +1,8 @@ +# -*- coding: utf-8 -*- +# © 2013-2016 Therp BV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from . import res_partner +from . import res_partner_relation +from . import res_partner_relation_type +from . import res_partner_relation_all +from . import res_partner_relation_type_selection diff --git a/models/res_partner.py b/models/res_partner.py new file mode 100644 index 000000000..3545a299c --- /dev/null +++ b/models/res_partner.py @@ -0,0 +1,172 @@ +# -*- coding: utf-8 -*- +# © 2013-2016 Therp BV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +"""Support connections between partners.""" +import numbers + +from openerp import _, api, exceptions, fields, models +from openerp.osv.expression import is_leaf, OR, FALSE_LEAF + + +class ResPartner(models.Model): + """Extend partner with relations and allow to search for relations + in various ways. + """ + # pylint: disable=invalid-name + # pylint: disable=no-member + _inherit = 'res.partner' + + relation_count = fields.Integer( + string='Relation Count', + compute="_compute_relation_count" + ) + relation_all_ids = fields.One2many( + comodel_name='res.partner.relation.all', + inverse_name='this_partner_id', + string='All relations with current partner', + auto_join=True, + selectable=False, + copy=False, + ) + search_relation_type_id = fields.Many2one( + comodel_name='res.partner.relation.type.selection', + compute=lambda self: None, + search='_search_relation_type_id', + string='Has relation of type', + ) + search_relation_partner_id = fields.Many2one( + comodel_name='res.partner', + compute=lambda self: None, + search='_search_related_partner_id', + string='Has relation with', + ) + search_relation_date = fields.Date( + compute=lambda self: None, + search='_search_relation_date', + string='Relation valid', + ) + search_relation_partner_category_id = fields.Many2one( + comodel_name='res.partner.category', + compute=lambda self: None, + search='_search_related_partner_category_id', + string='Has relation with a partner in category', + ) + + @api.depends("relation_all_ids") + def _compute_relation_count(self): + """Count the number of relations this partner has for Smart Button + + Don't count inactive relations. + """ + for rec in self: + rec.relation_count = len(rec.relation_all_ids.filtered('active')) + + @api.model + def _search_relation_type_id(self, operator, value): + """Search partners based on their type of relations.""" + result = [] + SUPPORTED_OPERATORS = ( + '=', + '!=', + 'like', + 'not like', + 'ilike', + 'not ilike', + 'in', + 'not in', + ) + if operator not in SUPPORTED_OPERATORS: + raise exceptions.ValidationError( + _('Unsupported search operator "%s"') % operator) + type_selection_model = self.env['res.partner.relation.type.selection'] + relation_type_selection = [] + if operator == '=' and isinstance(value, numbers.Integral): + relation_type_selection += type_selection_model.browse(value) + elif operator == '!=' and isinstance(value, numbers.Integral): + relation_type_selection = type_selection_model.search([ + ('id', operator, value), + ]) + else: + relation_type_selection = type_selection_model.search([ + '|', + ('type_id.name', operator, value), + ('type_id.name_inverse', operator, value), + ]) + if not relation_type_selection: + result = [FALSE_LEAF] + for relation_type in relation_type_selection: + result = OR([ + result, + [ + ('relation_all_ids.type_selection_id.id', '=', + relation_type.id), + ], + ]) + return result + + @api.model + def _search_related_partner_id(self, operator, value): + """Find partner based on relation with other partner.""" + # pylint: disable=no-self-use + return [ + ('relation_all_ids.other_partner_id', operator, value), + ] + + @api.model + def _search_relation_date(self, operator, value): + """Look only for relations valid at date of search.""" + # pylint: disable=no-self-use + return [ + '&', + '|', + ('relation_all_ids.date_start', '=', False), + ('relation_all_ids.date_start', '<=', value), + '|', + ('relation_all_ids.date_end', '=', False), + ('relation_all_ids.date_end', '>=', value), + ] + + @api.model + def _search_related_partner_category_id(self, operator, value): + """Search for partner related to a partner with search category.""" + # pylint: disable=no-self-use + return [ + ('relation_all_ids.other_partner_id.category_id', operator, value), + ] + + @api.model + def search(self, args, offset=0, limit=None, order=None, count=False): + """Inject searching for current relation date if we search for + relation properties and no explicit date was given. + """ + # pylint: disable=arguments-differ + # pylint: disable=no-value-for-parameter + date_args = [] + for arg in args: + if is_leaf(arg) and arg[0].startswith('search_relation'): + if arg[0] == 'search_relation_date': + date_args = [] + break + if not date_args: + date_args = [ + ('search_relation_date', '=', fields.Date.today()), + ] + # because of auto_join, we have to do the active test by hand + active_args = [] + if self.env.context.get('active_test', True): + for arg in args: + if is_leaf(arg) and arg[0].startswith('search_relation'): + active_args = [('relation_all_ids.active', '=', True)] + break + return super(ResPartner, self).search( + args + date_args + active_args, offset=offset, limit=limit, + order=order, count=count) + + @api.multi + def get_partner_type(self): + """Get partner type for relation. + :return: 'c' for company or 'p' for person + :rtype: str + """ + self.ensure_one() + return 'c' if self.is_company else 'p' diff --git a/models/res_partner_relation.py b/models/res_partner_relation.py new file mode 100644 index 000000000..0176fe9b2 --- /dev/null +++ b/models/res_partner_relation.py @@ -0,0 +1,156 @@ +# -*- coding: utf-8 -*- +# © 2013-2016 Therp BV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +"""Store relations (connections) between partners.""" +from openerp import _, api, fields, models +from openerp.exceptions import ValidationError + + +class ResPartnerRelation(models.Model): + """Model res.partner.relation is used to describe all links or relations + between partners in the database. + + This model is actually only used to store the data. The model + res.partner.relation.all, based on a view that contains each record + two times, once for the normal relation, once for the inverse relation, + will be used to maintain the data. + """ + _name = 'res.partner.relation' + _description = 'Partner relation' + + left_partner_id = fields.Many2one( + comodel_name='res.partner', + string='Source Partner', + required=True, + auto_join=True, + ondelete='cascade', + ) + right_partner_id = fields.Many2one( + comodel_name='res.partner', + string='Destination Partner', + required=True, + auto_join=True, + ondelete='cascade', + ) + type_id = fields.Many2one( + comodel_name='res.partner.relation.type', + string='Type', + required=True, + auto_join=True, + ) + date_start = fields.Date('Starting date') + date_end = fields.Date('Ending date') + + @api.model + def create(self, vals): + """Override create to correct values, before being stored.""" + context = self.env.context + if 'left_partner_id' not in vals and context.get('active_id'): + vals['left_partner_id'] = context.get('active_id') + return super(ResPartnerRelation, self).create(vals) + + @api.one + @api.constrains('date_start', 'date_end') + def _check_dates(self): + """End date should not be before start date, if not filled + + :raises ValidationError: When constraint is violated + """ + if (self.date_start and self.date_end and + self.date_start > self.date_end): + raise ValidationError( + _('The starting date cannot be after the ending date.') + ) + + @api.one + @api.constrains('left_partner_id', 'type_id') + def _check_partner_left(self): + """Check left partner for required company or person + + :raises ValidationError: When constraint is violated + """ + self._check_partner("left") + + @api.one + @api.constrains('right_partner_id', 'type_id') + def _check_partner_right(self): + """Check right partner for required company or person + + :raises ValidationError: When constraint is violated + """ + self._check_partner("right") + + @api.one + def _check_partner(self, side): + """Check partner for required company or person, and for category + + :param str side: left or right + :raises ValidationError: When constraint is violated + """ + assert side in ['left', 'right'] + ptype = getattr(self.type_id, "contact_type_%s" % side) + partner = getattr(self, '%s_partner_id' % side) + if ((ptype == 'c' and not partner.is_company) or + (ptype == 'p' and partner.is_company)): + raise ValidationError( + _('The %s partner is not applicable for this relation type.') % + side + ) + category = getattr(self.type_id, "partner_category_%s" % side) + if category and category.id not in partner.category_id.ids: + raise ValidationError( + _('The %s partner does not have category %s.') % + (side, category.name) + ) + + @api.one + @api.constrains('left_partner_id', 'right_partner_id') + def _check_not_with_self(self): + """Not allowed to link partner to same partner + + :raises ValidationError: When constraint is violated + """ + if self.left_partner_id == self.right_partner_id: + if not (self.type_id and self.type_id.allow_self): + raise ValidationError( + _('Partners cannot have a relation with themselves.') + ) + + @api.one + @api.constrains( + 'left_partner_id', + 'type_id', + 'right_partner_id', + 'date_start', + 'date_end', + ) + def _check_relation_uniqueness(self): + """Forbid multiple active relations of the same type between the same + partners + + :raises ValidationError: When constraint is violated + """ + # pylint: disable=no-member + # pylint: disable=no-value-for-parameter + domain = [ + ('type_id', '=', self.type_id.id), + ('id', '!=', self.id), + ('left_partner_id', '=', self.left_partner_id.id), + ('right_partner_id', '=', self.right_partner_id.id), + ] + if self.date_start: + domain += [ + '|', + ('date_end', '=', False), + ('date_end', '>=', self.date_start), + ] + if self.date_end: + domain += [ + '|', + ('date_start', '=', False), + ('date_start', '<=', self.date_end), + ] + if self.search(domain): + raise ValidationError( + _('There is already a similar relation with overlapping dates') + ) diff --git a/models/res_partner_relation_all.py b/models/res_partner_relation_all.py new file mode 100644 index 000000000..eeef17346 --- /dev/null +++ b/models/res_partner_relation_all.py @@ -0,0 +1,345 @@ +# -*- coding: utf-8 -*- +# © 2014-2016 Therp BV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +"""Abstract model to show each relation from two sides.""" +from psycopg2.extensions import AsIs + +from openerp import _, api, fields, models +from openerp.tools import drop_view_if_exists + + +PADDING = 10 +_RECORD_TYPES = [ + ('a', 'Left partner to right partner'), + ('b', 'Right partner to left partner'), +] + + +class ResPartnerRelationAll(models.AbstractModel): + """Abstract model to show each relation from two sides.""" + _auto = False + _log_access = False + _name = 'res.partner.relation.all' + _description = 'All (non-inverse + inverse) relations between partners' + _order = ( + 'this_partner_id, type_selection_id,' + 'date_end desc, date_start desc' + ) + + _additional_view_fields = [] + """append to this list if you added fields to res_partner_relation that + you need in this model and related fields are not adequate (ie for sorting) + You must use the same name as in res_partner_relation. + Don't overwrite this list in your declaration but append in _auto_init: + + def _auto_init(self, cr, context=None): + self._additional_view_fields.append('my_field') + return super(ResPartnerRelationAll, self)._auto_init( + cr, context=context) + + my_field = fields... + """ + + this_partner_id = fields.Many2one( + comodel_name='res.partner', + string='One Partner', + required=True, + ) + other_partner_id = fields.Many2one( + comodel_name='res.partner', + string='Other Partner', + required=True, + ) + type_selection_id = fields.Many2one( + comodel_name='res.partner.relation.type.selection', + string='Relation Type', + required=True, + ) + relation_id = fields.Many2one( + comodel_name='res.partner.relation', + string='Relation', + readonly=True, + ) + record_type = fields.Selection( + selection=_RECORD_TYPES, + string='Record Type', + readonly=True, + ) + date_start = fields.Date('Starting date') + date_end = fields.Date('Ending date') + active = fields.Boolean( + string='Active', + help="Records with date_end in the past are inactive", + ) + any_partner_id = fields.Many2many( + comodel_name='res.partner', + string='Partner', + compute=lambda self: None, + search='_search_any_partner_id' + ) + + def _auto_init(self, cr, context=None): + drop_view_if_exists(cr, self._table) + additional_view_fields = ','.join(self._additional_view_fields) + additional_view_fields = (',' + additional_view_fields)\ + if additional_view_fields else '' + cr.execute( + """\ +CREATE OR REPLACE VIEW %(table)s AS + SELECT + rel.id * %(padding)s AS id, + rel.id AS relation_id, + cast('a' AS CHAR(1)) AS record_type, + rel.left_partner_id AS this_partner_id, + rel.right_partner_id AS other_partner_id, + rel.date_start, + rel.date_end, + (rel.date_end IS NULL OR rel.date_end >= current_date) AS active, + rel.type_id * %(padding)s AS type_selection_id + %(additional_view_fields)s + FROM res_partner_relation rel + UNION SELECT + rel.id * %(padding)s + 1, + rel.id, + CAST('b' AS CHAR(1)), + rel.right_partner_id, + rel.left_partner_id, + rel.date_start, + rel.date_end, + rel.date_end IS NULL OR rel.date_end >= current_date, + CASE + WHEN typ.is_symmetric THEN rel.type_id * %(padding)s + ELSE rel.type_id * %(padding)s + 1 + END + %(additional_view_fields)s + FROM res_partner_relation rel + JOIN res_partner_relation_type typ ON (rel.type_id = typ.id) + """, + { + 'table': AsIs(self._table), + 'padding': PADDING, + 'additional_view_fields': AsIs(additional_view_fields), + } + ) + return super(ResPartnerRelationAll, self)._auto_init( + cr, context=context + ) + + @api.model + def _search_any_partner_id(self, operator, value): + """Search relation with partner, no matter on which side.""" + # pylint: disable=no-self-use + return [ + '|', + ('this_partner_id', operator, value), + ('other_partner_id', operator, value), + ] + + @api.multi + def name_get(self): + return { + this.id: '%s %s %s' % ( + this.this_partner_id.name, + this.type_selection_id.display_name, + this.other_partner_id.name, + ) + for this in self + } + + @api.onchange('type_selection_id') + def onchange_type_selection_id(self): + """Add domain on partners according to category and contact_type.""" + + def check_partner_domain(partner, partner_domain, side): + """Check wether partner_domain results in empty selection + for partner, or wrong selection of partner already selected. + """ + warning = {} + if partner: + test_domain = [('id', '=', partner.id)] + partner_domain + else: + test_domain = partner_domain + partner_model = self.env['res.partner'] + partners_found = partner_model.search(test_domain, limit=1) + if not partners_found: + warning['title'] = _('Error!') + if partner: + warning['message'] = ( + _('%s partner incompatible with relation type.') % + side.title() + ) + else: + warning['message'] = ( + _('No %s partner available for relation type.') % + side + ) + return warning + + this_partner_domain = [] + other_partner_domain = [] + if self.type_selection_id.contact_type_this: + this_partner_domain.append(( + 'is_company', '=', + self.type_selection_id.contact_type_this == 'c' + )) + if self.type_selection_id.partner_category_this: + this_partner_domain.append(( + 'category_id', 'in', + self.type_selection_id.partner_category_this.ids + )) + if self.type_selection_id.contact_type_other: + other_partner_domain.append(( + 'is_company', '=', + self.type_selection_id.contact_type_other == 'c' + )) + if self.type_selection_id.partner_category_other: + other_partner_domain.append(( + 'category_id', 'in', + self.type_selection_id.partner_category_other.ids + )) + result = {'domain': { + 'this_partner_id': this_partner_domain, + 'other_partner_id': other_partner_domain, + }} + # Check wether domain results in no choice or wrong choice of partners: + warning = {} + if this_partner_domain: + warning = check_partner_domain( + self.this_partner_id, this_partner_domain, _('this') + ) + if not warning and other_partner_domain: + warning = check_partner_domain( + self.other_partner_id, other_partner_domain, _('other') + ) + if warning: + result['warning'] = warning + return result + + @api.onchange( + 'this_partner_id', + 'other_partner_id', + ) + def onchange_partner_id(self): + """Set domain on type_selection_id based on partner(s) selected.""" + + def check_type_selection_domain(type_selection_domain): + """If type_selection_id already selected, check wether it + is compatible with the computed type_selection_domain. An empty + selection can practically only occur in a practically empty + database, and will not lead to problems. Therefore not tested. + """ + warning = {} + if not (type_selection_domain and self.type_selection_id): + return warning + test_domain = ( + [('id', '=', self.type_selection_id.id)] + + type_selection_domain + ) + type_model = self.env['res.partner.relation.type.selection'] + types_found = type_model.search(test_domain, limit=1) + if not types_found: + warning['title'] = _('Error!') + warning['message'] = _( + 'Relation type incompatible with selected partner(s).' + ) + return warning + + type_selection_domain = [] + if self.this_partner_id: + type_selection_domain += [ + '|', + ('contact_type_this', '=', False), + ('contact_type_this', '=', + self.this_partner_id.get_partner_type()), + '|', + ('partner_category_this', '=', False), + ('partner_category_this', 'in', + self.this_partner_id.category_id.ids), + ] + if self.other_partner_id: + type_selection_domain += [ + '|', + ('contact_type_other', '=', False), + ('contact_type_other', '=', + self.other_partner_id.get_partner_type()), + '|', + ('partner_category_other', '=', False), + ('partner_category_other', 'in', + self.other_partner_id.category_id.ids), + ] + result = {'domain': { + 'type_selection_id': type_selection_domain, + }} + # Check wether domain results in no choice or wrong choice for + # type_selection_id: + warning = check_type_selection_domain(type_selection_domain) + if warning: + result['warning'] = warning + return result + + @api.model + def _correct_vals(self, vals): + """Fill left and right partner from this and other partner.""" + vals = vals.copy() + if 'this_partner_id' in vals: + vals['left_partner_id'] = vals['this_partner_id'] + del vals['this_partner_id'] + if 'other_partner_id' in vals: + vals['right_partner_id'] = vals['other_partner_id'] + del vals['other_partner_id'] + if 'type_selection_id' not in vals: + return vals + selection = self.type_selection_id.browse(vals['type_selection_id']) + type_id = selection.type_id.id + is_inverse = selection.is_inverse + vals['type_id'] = type_id + del vals['type_selection_id'] + # Need to switch right and left partner if we are in reverse id: + if 'left_partner_id' in vals or 'right_partner_id' in vals: + if is_inverse: + left_partner_id = False + right_partner_id = False + if 'left_partner_id' in vals: + right_partner_id = vals['left_partner_id'] + del vals['left_partner_id'] + if 'right_partner_id' in vals: + left_partner_id = vals['right_partner_id'] + del vals['right_partner_id'] + if left_partner_id: + vals['left_partner_id'] = left_partner_id + if right_partner_id: + vals['right_partner_id'] = right_partner_id + return vals + + @api.multi + def write(self, vals): + """divert non-problematic writes to underlying table""" + vals = self._correct_vals(vals) + for rec in self: + rec.relation_id.write(vals) + return True + + @api.model + def create(self, vals): + """Divert non-problematic creates to underlying table. + + Create a res.partner.relation but return the converted id. + """ + is_inverse = False + if 'type_selection_id' in vals: + selection = self.type_selection_id.browse( + vals['type_selection_id'] + ) + is_inverse = selection.is_inverse + vals = self._correct_vals(vals) + res = self.relation_id.create(vals) + return_id = res.id * PADDING + (is_inverse and 1 or 0) + return self.browse(return_id) + + @api.multi + def unlink(self): + """divert non-problematic creates to underlying table""" + # pylint: disable=arguments-differ + for rec in self: + rec.relation_id.unlink() + return True diff --git a/models/res_partner_relation_type.py b/models/res_partner_relation_type.py new file mode 100644 index 000000000..5cfee5c6c --- /dev/null +++ b/models/res_partner_relation_type.py @@ -0,0 +1,175 @@ +# -*- coding: utf-8 -*- +# © 2013-2016 Therp BV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +"""Define the type of relations that can exist between partners.""" +from openerp import _, api, fields, models +from openerp.exceptions import ValidationError +from openerp.osv.expression import AND, OR + + +HANDLE_INVALID_ONCHANGE = [ + ('restrict', + _('Do not allow change that will result in invalid relations')), + ('ignore', + _('Allow existing relations that do not fit changed conditions')), + ('end', + _('End relations per today, if they do not fit changed conditions')), + ('delete', + _('Delete relations that do not fit changed conditions')), +] + + +class ResPartnerRelationType(models.Model): + """Model that defines relation types that might exist between partners""" + _name = 'res.partner.relation.type' + _description = 'Partner Relation Type' + _order = 'name' + + name = fields.Char( + string='Name', + required=True, + translate=True, + ) + name_inverse = fields.Char( + string='Inverse name', + required=True, + translate=True, + ) + contact_type_left = fields.Selection( + selection='get_partner_types', + string='Left partner type', + ) + contact_type_right = fields.Selection( + selection='get_partner_types', + string='Right partner type', + ) + partner_category_left = fields.Many2one( + comodel_name='res.partner.category', + string='Left partner category', + ) + partner_category_right = fields.Many2one( + comodel_name='res.partner.category', + string='Right partner category', + ) + allow_self = fields.Boolean( + string='Reflexive', + help='This relation can be set up with the same partner left and ' + 'right', + default=False, + ) + is_symmetric = fields.Boolean( + string='Symmetric', + help="This relation is the same from right to left as from left to" + " right", + default=False, + ) + handle_invalid_onchange = fields.Selection( + selection=HANDLE_INVALID_ONCHANGE, + string='Invalid relation handling', + required=True, + default='restrict', + help="When adding relations criteria like partner type and category" + " are checked.\n" + "However when you change the criteria, there might be relations" + " that do not fit the new criteria.\n" + "Specify how this situation should be handled.", + ) + + @api.model + def get_partner_types(self): + """A partner can be an organisation or an individual.""" + # pylint: disable=no-self-use + return [ + ('c', _('Organisation')), + ('p', _('Person')), + ] + + @api.onchange('is_symmetric') + def onchange_is_symmetric(self): + """Set right side to left side if symmetric.""" + if self.is_symmetric: + self.update({ + 'name_inverse': self.name, + 'contact_type_right': self.contact_type_left, + 'partner_category_right': self.partner_category_left, + }) + + @api.multi + def check_existing(self, vals): + """Check wether records exist that do not fit new criteria.""" + relation_model = self.env['res.partner.relation'] + + def get_type_condition(vals, side): + """Add if needed check for contact type.""" + fieldname1 = 'contact_type_%s' % side + fieldname2 = '%s_partner_id.is_company' % side + contact_type = fieldname1 in vals and vals[fieldname1] or False + if contact_type == 'c': + # Records that are not companies are invalid: + return [(fieldname2, '=', False)] + if contact_type == 'p': + # Records that are companies are invalid: + return [(fieldname2, '=', True)] + return [] + + def get_category_condition(vals, side): + """Add if needed check for partner category.""" + fieldname1 = 'partner_category_%s' % side + fieldname2 = '%s_partner_id.category_id' % side + category_id = fieldname1 in vals and vals[fieldname1] or False + if category_id: + # Records that do not have the specified category are invalid: + return [(fieldname2, 'not in', [category_id])] + return [] + + for rec in self: + handling = ( + 'handle_invalid_onchange' in vals and + vals['handle_invalid_onchange'] or + self.handle_invalid_onchange + ) + if handling == 'ignore': + continue + invalid_conditions = [] + for side in ['left', 'right']: + invalid_conditions = OR([ + invalid_conditions, + get_type_condition(vals, side), + ]) + invalid_conditions = OR([ + invalid_conditions, + get_category_condition(vals, side), + ]) + if not invalid_conditions: + return + # only look at relations for this type + invalid_domain = AND([ + [('type_id', '=', rec.id)], invalid_conditions + ]) + invalid_relations = relation_model.with_context( + active_test=False + ).search(invalid_domain) + if invalid_relations: + if handling == 'restrict': + raise ValidationError( + _('There are already relations not satisfying the' + ' conditions for partner type or category.') + ) + elif handling == 'delete': + invalid_relations.unlink() + else: + # Delete future records, end other ones, ignore relations + # already ended: + cutoff_date = fields.Date.today() + for relation in invalid_relations: + if relation.date_start >= cutoff_date: + relation.unlink() + elif (not relation.date_end or + relation.date_end > cutoff_date): + relation.write({'date_end': cutoff_date}) + + @api.multi + def write(self, vals): + """Handle existing relations if conditions change.""" + self.check_existing(vals) + return super(ResPartnerRelationType, self).write(vals) diff --git a/models/res_partner_relation_type_selection.py b/models/res_partner_relation_type_selection.py new file mode 100644 index 000000000..43ea80f94 --- /dev/null +++ b/models/res_partner_relation_type_selection.py @@ -0,0 +1,127 @@ +# -*- coding: utf-8 -*- +# © 2014-2016 Therp BV +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +""" +For the model defined here _auto is set to False to prevent creating a +database file. The model is based on a SQL view based on +res_partner_relation_type where each type is included in the +result set twice, so it appears that the connection type and the inverse +type are separate records.. + +The original function _auto_init is still called because this function +normally (if _auto == True) not only creates the db tables, but it also takes +care of registering all fields in ir_model_fields. This is needed to make +the field labels translatable. +""" +from psycopg2.extensions import AsIs + +from openerp import api, fields, models +from openerp.tools import drop_view_if_exists + +from .res_partner_relation_type import ResPartnerRelationType + + +PADDING = 10 + + +class ResPartnerRelationTypeSelection(models.Model): + """Virtual relation types""" + _name = 'res.partner.relation.type.selection' + _description = 'All relation types' + _auto = False # Do not try to create table in _auto_init(..) + _foreign_keys = [] + _log_access = False + _order = 'name asc' + + type_id = fields.Many2one( + comodel_name='res.partner.relation.type', + string='Type', + ) + name = fields.Char('Name') + contact_type_this = fields.Selection( + selection=ResPartnerRelationType.get_partner_types.im_func, + string='Current record\'s partner type', + ) + is_inverse = fields.Boolean( + string="Is reverse type?", + help="Inverse relations are from right to left partner.", + ) + contact_type_other = fields.Selection( + selection=ResPartnerRelationType.get_partner_types.im_func, + string='Other record\'s partner type', + ) + partner_category_this = fields.Many2one( + comodel_name='res.partner.category', + string='Current record\'s category', + ) + partner_category_other = fields.Many2one( + comodel_name='res.partner.category', + string='Other record\'s category', + ) + allow_self = fields.Boolean( + string='Reflexive', + ) + is_symmetric = fields.Boolean( + string='Symmetric', + ) + + def _auto_init(self, cr, context=None): + drop_view_if_exists(cr, self._table) + cr.execute( + """CREATE OR REPLACE VIEW %(table)s AS + SELECT + id * %(padding)s AS id, + id AS type_id, + name AS name, + False AS is_inverse, + contact_type_left AS contact_type_this, + contact_type_right AS contact_type_other, + partner_category_left AS partner_category_this, + partner_category_right AS partner_category_other, + allow_self, + is_symmetric + FROM %(underlying_table)s + UNION SELECT + id * %(padding)s + 1, + id, + name_inverse, + True, + contact_type_right, + contact_type_left, + partner_category_right, + partner_category_left, + allow_self, + is_symmetric + FROM %(underlying_table)s + WHERE not is_symmetric + """, + { + 'table': AsIs(self._table), + 'padding': PADDING, + 'underlying_table': AsIs('res_partner_relation_type'), + }) + return super(ResPartnerRelationTypeSelection, self)._auto_init( + cr, context=context) + + @api.multi + def name_get(self): + """Get name or name_inverse from underlying model.""" + return [ + (this.id, + this.is_inverse and this.type_id.name_inverse or + this.type_id.display_name) + for this in self + ] + + @api.model + def name_search(self, name='', args=None, operator='ilike', limit=100): + """Search for name or inverse name in underlying model.""" + # pylint: disable=no-value-for-parameter + return self.search( + [ + '|', + ('type_id.name', operator, name), + ('type_id.name_inverse', operator, name), + ] + (args or []), + limit=limit + ).name_get() diff --git a/security/ir.model.access.csv b/security/ir.model.access.csv new file mode 100644 index 000000000..45744e5d8 --- /dev/null +++ b/security/ir.model.access.csv @@ -0,0 +1,8 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +read_res_partner_relation,access_res_partner_relation,model_res_partner_relation,,1,0,0,0 +read_res_partner_relation_all,access_res_partner_relation,model_res_partner_relation_all,,1,0,0,0 +read_res_partner_relation_type,access_res_partner_relation_type,model_res_partner_relation_type,,1,0,0,0 +read_res_partner_relation_type_selection,access_res_partner_relation_type,model_res_partner_relation_type_selection,,1,0,0,0 +crud_res_partner_relation,access_res_partner_relation,model_res_partner_relation,base.group_partner_manager,1,1,1,1 +crud_res_partner_relation_all,access_res_partner_relation,model_res_partner_relation_all,base.group_partner_manager,1,1,1,1 +crud_res_partner_relation_type,access_res_partner_relation_type,model_res_partner_relation_type,base.group_sale_manager,1,1,1,1 diff --git a/static/description/icon.png b/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c6863a3e4852ea743449d6a17547b5ddc16c821c GIT binary patch literal 12960 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 ?Im#$t6v{tsveBQHiC6tSq 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 WM@fu$C{uy}0000 + + + + + + + + + diff --git a/views/res_partner_relation_all.xml b/views/res_partner_relation_all.xml new file mode 100644 index 000000000..6f529984f --- /dev/null +++ b/views/res_partner_relation_all.xml @@ -0,0 +1,96 @@ + + + + + + res.partner.relation.all + + + + + + + + + + + + + + res.partner.relation.all + + + + + + + + + + + + + + + + + + + + Relations + res.partner.relation.all + form + tree + + + +

+ Record and track your partners' relations. Relations may + be linked to other partners with a type either directly + or inversely. +

+ + + + + diff --git a/views/res_partner_relation_type.xml b/views/res_partner_relation_type.xml new file mode 100644 index 000000000..56f883959 --- /dev/null +++ b/views/res_partner_relation_type.xml @@ -0,0 +1,51 @@ + + + + res.partner.relation.type + + + + + + + + + + + + + + res.partner.relation.type + +
+ + + + + + + + + + + + + + + + + + + +
+
+
+
+