From 3fed1b0c4df6076afa0c126252215260f93df08d Mon Sep 17 00:00:00 2001 From: Javier Uribe Date: Thu, 12 Jul 2018 11:43:01 +0200 Subject: [PATCH] Added migrate property. Refactor --- party.py | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/party.py b/party.py index 5fd0caa..7b3824f 100644 --- a/party.py +++ b/party.py @@ -3,8 +3,11 @@ from trytond.model import ModelSQL, fields from trytond.pool import PoolMeta, Pool from trytond.modules.company.model import CompanyValueMixin +from trytond import backend +from trytond.tools.multivalue import migrate_property __all__ = ['Party', 'PartyParty'] +parties_names = ['customer_to_invoice', 'supplier_to_invoice'] class Party: @@ -19,7 +22,7 @@ class Party: @classmethod def multivalue_model(cls, field): pool = Pool() - if field in {'customer_to_invoice', 'supplier_to_invoice'}: + if field in parties_names: return pool.get('party.party.party') return super(Party, cls).multivalue_model(field) @@ -29,3 +32,21 @@ class PartyParty(ModelSQL, CompanyValueMixin): __name__ = 'party.party.party' customer_to_invoice = fields.Many2One('party.party', 'Customer to invoice') supplier_to_invoice = fields.Many2One('party.party', 'Supplier to invoice') + + @classmethod + def __register__(cls, module_name): + TableHandler = backend.get('TableHandler') + exist = TableHandler.table_exist(cls._table) + + super(PartyParty, cls).__register__(module_name) + + if not exist: + cls._migrate_property([], [], []) + + @classmethod + def _migrate_property(cls, field_names, value_names, fields): + field_names.extend(parties_names) + value_names.extend(parties_names) + fields.append('company') + migrate_property('party.party', + field_names, cls, value_names, fields=fields)