Browse Source

[MIG] V11 migration

- fax field removed from res.partner
- 2to3 on all py files
- add contributor and update README
- use hasclass in place of @class in xpath expr
- improve tests

[FIX] typo and clean README
14.0
Nicolas JEUDY 7 years ago
committed by Jacob Oldfield
parent
commit
235a12f84a
  1. 2
      partner_contact_in_several_companies/README.rst
  2. 1
      partner_contact_in_several_companies/__init__.py
  3. 9
      partner_contact_in_several_companies/__manifest__.py
  4. 165
      partner_contact_in_several_companies/i18n/partner_contact_in_several_companies.pot
  5. 7
      partner_contact_in_several_companies/models/res_partner.py
  6. 37
      partner_contact_in_several_companies/tests/test_partner_contact_in_several_companies.py
  7. 4
      partner_contact_in_several_companies/views/res_partner.xml

2
partner_contact_in_several_companies/README.rst

@ -32,7 +32,7 @@ For further information, please visit:
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/134/10.0
:target: https://runbot.odoo-community.org/runbot/134/11.0
Known issues / Roadmap
======================

1
partner_contact_in_several_companies/__init__.py

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import models

9
partner_contact_in_several_companies/__manifest__.py

@ -4,14 +4,11 @@
{
"name": "Contacts in several partners",
"summary": "Allow to have one contact in several partners",
"version": "10.0.1.0.0",
"version": "11.0.1.0.0",
"category": "Customer Relationship Management",
"website": "https://odoo-community.org/",
"author": "Odoo Community Association (OCA),Odoo SA",
"website": "https://github.com/OCA/partner-contact",
"author": "Nicolas JEUDY,Odoo Community Association (OCA),Odoo SA",
"license": "AGPL-3",
'application': False,
'installable': True,
'auto_install': False,
"depends": [
"base",
"partner_contact_personal_information_page",

165
partner_contact_in_several_companies/i18n/partner_contact_in_several_companies.pot

@ -1,165 +0,0 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * partner_contact_in_several_companies
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 8.0-20150514\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-05-20 09:26+0000\n"
"PO-Revision-Date: 2015-05-20 09:26+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_contact_in_several_companies
#: view:res.partner:partner_contact_in_several_companies.view_partner_form_inherit
msgid "Address"
msgstr ""
#. module: partner_contact_in_several_companies
#: view:res.partner:partner_contact_in_several_companies.view_res_partner_filter_contact
msgid "All partner positions"
msgstr ""
#. module: partner_contact_in_several_companies
#: view:res.partner:partner_contact_in_several_companies.view_res_partner_filter_contact
msgid "All positions"
msgstr ""
#. module: partner_contact_in_several_companies
#: code:addons/partner_contact_in_several_companies/models.py:32
#, python-format
msgid "Attached to existing Contact"
msgstr ""
#. module: partner_contact_in_several_companies
#: view:res.partner:partner_contact_in_several_companies.view_partner_form_inherit
msgid "City"
msgstr ""
#. module: partner_contact_in_several_companies
#: view:res.partner:partner_contact_in_several_companies.view_partner_form_inherit
msgid "Company"
msgstr ""
#. module: partner_contact_in_several_companies
#: view:res.partner:partner_contact_in_several_companies.view_partner_form_inherit
msgid "Contact"
msgstr ""
#. module: partner_contact_in_several_companies
#: field:res.partner,contact_type:0
msgid "Contact Type"
msgstr ""
#. module: partner_contact_in_several_companies
#: view:res.partner:partner_contact_in_several_companies.view_partner_form_inherit
msgid "Contacts"
msgstr ""
#. module: partner_contact_in_several_companies
#: view:res.partner:partner_contact_in_several_companies.view_partner_form_inherit
msgid "Country"
msgstr ""
#. module: partner_contact_in_several_companies
#: view:res.partner:partner_contact_in_several_companies.view_partner_form_inherit
msgid "Fax:"
msgstr ""
#. module: partner_contact_in_several_companies
#: field:res.partner,contact_id:0
msgid "Main Contact"
msgstr ""
#. module: partner_contact_in_several_companies
#: view:res.partner:partner_contact_in_several_companies.view_partner_form_inherit
msgid "Mobile:"
msgstr ""
#. module: partner_contact_in_several_companies
#: view:res.partner:partner_contact_in_several_companies.view_partner_form_inherit
msgid "Other Positions"
msgstr ""
#. module: partner_contact_in_several_companies
#: field:res.partner,other_contact_ids:0
msgid "Others Positions"
msgstr ""
#. module: partner_contact_in_several_companies
#: model:ir.model,name:partner_contact_in_several_companies.model_res_partner
msgid "Partner"
msgstr ""
#. module: partner_contact_in_several_companies
#: view:res.partner:partner_contact_in_several_companies.view_res_partner_filter_contact
msgid "Person"
msgstr ""
#. module: partner_contact_in_several_companies
#: view:res.partner:partner_contact_in_several_companies.view_partner_form_inherit
msgid "Phone:"
msgstr ""
#. module: partner_contact_in_several_companies
#: code:addons/partner_contact_in_several_companies/models.py:31
#, python-format
msgid "Standalone Contact"
msgstr ""
#. module: partner_contact_in_several_companies
#: view:res.partner:partner_contact_in_several_companies.view_partner_form_inherit
msgid "State"
msgstr ""
#. module: partner_contact_in_several_companies
#: view:res.partner:partner_contact_in_several_companies.view_partner_form_inherit
msgid "Street..."
msgstr ""
#. module: partner_contact_in_several_companies
#: view:res.partner:partner_contact_in_several_companies.view_partner_form_inherit
msgid "Tags..."
msgstr ""
#. module: partner_contact_in_several_companies
#: view:res.partner:partner_contact_in_several_companies.view_res_partner_personal_information
msgid "To see personal information about this contact, please\n"
" go to to the his person form:"
msgstr ""
#. module: partner_contact_in_several_companies
#: view:res.partner:partner_contact_in_several_companies.view_partner_form_inherit
msgid "ZIP"
msgstr ""
#. module: partner_contact_in_several_companies
#: view:res.partner:partner_contact_in_several_companies.view_partner_form_inherit
msgid "at"
msgstr ""
#. module: partner_contact_in_several_companies
#: view:res.partner:partner_contact_in_several_companies.view_partner_form_inherit
msgid "e.g. Sales Director"
msgstr ""
#. module: partner_contact_in_several_companies
#: view:res.partner:partner_contact_in_several_companies.view_res_partner_kanban_contact
msgid "other position"
msgstr ""
#. module: partner_contact_in_several_companies
#: view:res.partner:partner_contact_in_several_companies.view_res_partner_kanban_contact
msgid "other positions"
msgstr ""
#. module: partner_contact_in_several_companies
#: view:res.partner:partner_contact_in_several_companies.view_partner_form_inherit
msgid "{'invisible': [('contact_type','=','attached')]}"
msgstr ""

7
partner_contact_in_several_companies/models/res_partner.py

@ -94,15 +94,14 @@ class ResPartner(models.Model):
return super(ResPartner, modified_self).unlink()
@api.multi
def _commercial_partner_compute(self, name, args):
def _compute_commercial_partner(self):
""" Returns the partner that is considered the commercial
entity of this partner. The commercial entity holds the master data
for all commercial fields (see :py:meth:`~_commercial_fields`) """
result = super(ResPartner, self)._commercial_partner_compute(name,
args)
result = super(ResPartner, self)._compute_commercial_partner()
for partner in self:
if partner.contact_type == 'attached' and not partner.parent_id:
result[partner.id] = partner.contact_id.id
partner.commercial_partner_id = partner.contact_id
return result
def _contact_fields(self):

37
partner_contact_in_several_companies/tests/test_partner_contact_in_several_companies.py

@ -139,8 +139,8 @@ class PartnerContactInSeveralCompaniesCase(common.TransactionCase):
new_contact = self.partner.create(
{'contact_id': self.bob_contact.id}
)
self.assertEqual(new_contact.name, u'Bob Egnops')
self.assertEqual(new_contact.contact_type, u'attached')
self.assertEqual(new_contact.name, 'Bob Egnops')
self.assertEqual(new_contact.contact_type, 'attached')
# Create a contact with both contact_id and name;
# contact's name should override provided value in that case
@ -149,14 +149,14 @@ class PartnerContactInSeveralCompaniesCase(common.TransactionCase):
)
self.assertEqual(
new_contact.name,
u'Bob Egnops'
'Bob Egnops'
)
# Reset contact to standalone
new_contact.write({'contact_id': False})
self.assertEqual(
new_contact.contact_type,
u'standalone',
'standalone',
)
# Reset contact to attached, and ensure only it is unlinked (i.e.
@ -217,3 +217,32 @@ class PartnerContactInSeveralCompaniesCase(common.TransactionCase):
details['context'],
msg='Custom actions incorrectly updated with new context'
)
def test_07_onchange(self):
"""Check onchange method
"""
new_contact = self.partner.create({'name': 'Bob before onchange'})
new_contact.write({'contact_id': self.bob_contact.id})
new_contact._onchange_contact_id()
self.assertEqual(
new_contact.name,
'Bob Egnops',
)
new_contact.write({'contact_type': 'standalone'})
new_contact._onchange_contact_type()
self.assertEqual(
new_contact.contact_id,
self.partner,
)
def test_08_commercial_partner_compute(self):
new_contact = self.partner.create({'name': 'Bob before onchange'})
new_contact.write({'contact_id': self.bob_contact.id,
'parent_id': False})
new_contact._compute_commercial_partner()
self.assertEqual(
new_contact.commercial_partner_id,
self.bob_contact,
)

4
partner_contact_in_several_companies/views/res_partner.xml

@ -55,7 +55,6 @@
<field name="city"/>
<field name="country_id"/>
<field name="mobile"/>
<field name="fax"/>
<field name="state_id"/>
<field name="image"/>
<field name="lang"/>
@ -77,7 +76,6 @@
<div t-if="record.email.raw_value"><field name="email"/></div>
<div t-if="record.phone.raw_value">Phone: <field name="phone"/></div>
<div t-if="record.mobile.raw_value">Mobile: <field name="mobile"/></div>
<div t-if="record.fax.raw_value">Fax: <field name="fax"/></div>
</div>
</div>
</t>
@ -168,7 +166,7 @@
</tree>
</field>
</field>
<xpath expr="//t[@t-name='kanban-box']//div[@class='oe_kanban_details']/ul/li[3]" position="after">
<xpath expr="//t[@t-name='kanban-box']//div[hasclass('oe_kanban_details')]/ul/li[3]" position="after">
<t t-if="record.other_contact_ids.raw_value.length &gt; 0">
<li>+<t t-esc="record.other_contact_ids.raw_value.length"/>
<t t-if="record.other_contact_ids.raw_value.length == 1">other position</t>

Loading…
Cancel
Save