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
12.0
Nicolas JEUDY 7 years ago
committed by kongrattapong
parent
commit
c5a6b8ccab
  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 .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot :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 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). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from . import models from . import models

9
partner_contact_in_several_companies/__manifest__.py

@ -4,14 +4,11 @@
{ {
"name": "Contacts in several partners", "name": "Contacts in several partners",
"summary": "Allow to have one contact 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", "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", "license": "AGPL-3",
'application': False,
'installable': True,
'auto_install': False,
"depends": [ "depends": [
"base", "base",
"partner_contact_personal_information_page", "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() return super(ResPartner, modified_self).unlink()
@api.multi @api.multi
def _commercial_partner_compute(self, name, args):
def _compute_commercial_partner(self):
""" Returns the partner that is considered the commercial """ Returns the partner that is considered the commercial
entity of this partner. The commercial entity holds the master data entity of this partner. The commercial entity holds the master data
for all commercial fields (see :py:meth:`~_commercial_fields`) """ 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: for partner in self:
if partner.contact_type == 'attached' and not partner.parent_id: 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 return result
def _contact_fields(self): 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( new_contact = self.partner.create(
{'contact_id': self.bob_contact.id} {'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; # Create a contact with both contact_id and name;
# contact's name should override provided value in that case # contact's name should override provided value in that case
@ -149,14 +149,14 @@ class PartnerContactInSeveralCompaniesCase(common.TransactionCase):
) )
self.assertEqual( self.assertEqual(
new_contact.name, new_contact.name,
u'Bob Egnops'
'Bob Egnops'
) )
# Reset contact to standalone # Reset contact to standalone
new_contact.write({'contact_id': False}) new_contact.write({'contact_id': False})
self.assertEqual( self.assertEqual(
new_contact.contact_type, new_contact.contact_type,
u'standalone',
'standalone',
) )
# Reset contact to attached, and ensure only it is unlinked (i.e. # Reset contact to attached, and ensure only it is unlinked (i.e.
@ -217,3 +217,32 @@ class PartnerContactInSeveralCompaniesCase(common.TransactionCase):
details['context'], details['context'],
msg='Custom actions incorrectly updated with new 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="city"/>
<field name="country_id"/> <field name="country_id"/>
<field name="mobile"/> <field name="mobile"/>
<field name="fax"/>
<field name="state_id"/> <field name="state_id"/>
<field name="image"/> <field name="image"/>
<field name="lang"/> <field name="lang"/>
@ -77,7 +76,6 @@
<div t-if="record.email.raw_value"><field name="email"/></div> <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.phone.raw_value">Phone: <field name="phone"/></div>
<div t-if="record.mobile.raw_value">Mobile: <field name="mobile"/></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>
</div> </div>
</t> </t>
@ -168,7 +166,7 @@
</tree> </tree>
</field> </field>
</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"> <t t-if="record.other_contact_ids.raw_value.length &gt; 0">
<li>+<t t-esc="record.other_contact_ids.raw_value.length"/> <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> <t t-if="record.other_contact_ids.raw_value.length == 1">other position</t>

Loading…
Cancel
Save