diff --git a/__init__.py b/__init__.py index ce833fd61c..5a960224f6 100644 --- a/__init__.py +++ b/__init__.py @@ -23,6 +23,7 @@ def register(): party.PartyConfigurationLang, party.Party, party.PartyLang, + party.ContactMechanism, Rule, module='company', type_='model') Pool.register( diff --git a/party.py b/party.py index 38736e1b89..b637c68197 100644 --- a/party.py +++ b/party.py @@ -8,7 +8,7 @@ from trytond.transaction import Transaction from .model import CompanyMultiValueMixin, CompanyValueMixin __all__ = ['Configuration', 'PartyConfigurationLang', 'Party', 'PartyLang', - 'PartyReplace', 'PartyErase'] + 'PartyReplace', 'PartyErase', 'ContactMechanism'] class Configuration(CompanyMultiValueMixin, metaclass=PoolMeta): @@ -93,3 +93,20 @@ class PartyErase(metaclass=PoolMeta): def check_erase_company(self, party, company): pass + + +class ContactMechanism(CompanyMultiValueMixin, metaclass=PoolMeta): + __name__ = 'party.contact_mechanism' + + def _phone_country_codes(self): + pool = Pool() + Company = pool.get('company.company') + context = Transaction().context + + yield from super()._phone_country_codes() + + if 'company' in context: + company = Company(context['company']) + for address in company.party.addresses: + if address.country: + yield address.country.code