Browse Source

[FIX] partner_multi_relation_parent. Adapt to thread safe version.

pull/493/head
Ronald Portier 7 years ago
parent
commit
fa6061e795
  1. 32
      partner_multi_relation_parent/models/res_partner_relation_all.py

32
partner_multi_relation_parent/models/res_partner_relation_all.py

@ -4,15 +4,9 @@
from openerp import _, api, models from openerp import _, api, models
from openerp.exceptions import ValidationError from openerp.exceptions import ValidationError
from openerp.addons.partner_multi_relation.models.res_partner_relation_all \
import register_select_specification
# Register relation from address partner to parent partner: # Register relation from address partner to parent partner:
register_select_specification(
base_name='partner_address',
is_inverse=False,
select_sql="""\
PARTNER_ADDRESS_SQL = """\
SELECT SELECT
(partner.id * %%(padding)s) + %(key_offset)s as ID, (partner.id * %%(padding)s) + %(key_offset)s as ID,
'res.partner' AS res_model, 'res.partner' AS res_model,
@ -26,13 +20,10 @@ SELECT
FROM res_partner partner FROM res_partner partner
JOIN res_partner_relation_type rprt ON partner.type = rprt.partner_type JOIN res_partner_relation_type rprt ON partner.type = rprt.partner_type
WHERE NOT partner.parent_id IS NULL WHERE NOT partner.parent_id IS NULL
AND rprt.partner_synchronization_active""")
AND rprt.partner_synchronization_active"""
# Register relation from parent partner to address partner: # Register relation from parent partner to address partner:
register_select_specification(
base_name='partner_address',
is_inverse=True,
select_sql="""\
PARTNER_ADDRESS_SQL_INVERSE = """\
SELECT SELECT
(partner.id * %%(padding)s) + %(key_offset)s as ID, (partner.id * %%(padding)s) + %(key_offset)s as ID,
'res.partner' AS res_model, 'res.partner' AS res_model,
@ -46,21 +37,20 @@ SELECT
FROM res_partner partner FROM res_partner partner
JOIN res_partner_relation_type rprt ON partner.type = rprt.partner_type JOIN res_partner_relation_type rprt ON partner.type = rprt.partner_type
WHERE NOT partner.parent_id IS NULL WHERE NOT partner.parent_id IS NULL
AND rprt.partner_synchronization_active""")
AND rprt.partner_synchronization_active"""
class ResPartnerRelationAll(models.AbstractModel): class ResPartnerRelationAll(models.AbstractModel):
"""Show addresses as relations if so configured.""" """Show addresses as relations if so configured."""
_inherit = 'res.partner.relation.all' _inherit = 'res.partner.relation.all'
def _get_active_selects(self):
"""Return selects actually to be used.
Selects are registered from all modules PRESENT. But should only be
used to build view if module actually INSTALLED.
"""
return super(ResPartnerRelationAll, self)._get_active_selects() +\
['partner_address', 'partner_address_inverse']
def get_register(self):
register = super(ResPartnerRelationAll, self).get_register()
self.register_specification(
register, 'partner_address', False, PARTNER_ADDRESS_SQL)
self.register_specification(
register, 'partner_address', True, PARTNER_ADDRESS_SQL_INVERSE)
return register
@api.model @api.model
def _compute_base_name(self, type_selection): def _compute_base_name(self, type_selection):

Loading…
Cancel
Save