From 3c0c73c0f5aa63ae49a466c724722f938ca5eb87 Mon Sep 17 00:00:00 2001 From: Dmytro Katyukha Date: Wed, 27 Jun 2018 00:40:12 +0300 Subject: [PATCH 1/4] [FIX] analytic invoice/contract lines inheritance Bug description --------------- `account.analytic.contract.line` inherits `account.analytic.invoice.line` `account.analytic.invoice.line` defines field `analytic_account_id`: - comodel='account.analytic.account' `account.analytic.contract.line` redefines field `analytic_account_id`: - comodel='account.analytic.contract' On attempt to extend `account.analytic.invoice.line` model adding field that depends on `analytic_account_id.date_start` Odoo fails to update, because it adds this field to `account.analytic.contract.line` through inheritance, and `account.analytic.contract` model have no this field. What is done ------------ Change inheritance order: - `account.analytic.invoice.line` inherits `account.analytic.contract.line` - no file renames at this stage (this wil be done in next commit) --- contract/models/account_analytic_contract_line.py | 12 +++++------- contract/models/account_analytic_invoice_line.py | 9 +++++---- contract_variable_quantity/models/contract.py | 4 ++-- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/contract/models/account_analytic_contract_line.py b/contract/models/account_analytic_contract_line.py index b2222c9b..2fec9cee 100644 --- a/contract/models/account_analytic_contract_line.py +++ b/contract/models/account_analytic_contract_line.py @@ -5,15 +5,13 @@ from odoo import fields, models -class AccountAnalyticContractLine(models.Model): - - _name = 'account.analytic.contract.line' - _description = 'Contract Lines' - _inherit = 'account.analytic.invoice.line' +class AccountAnalyticInvoiceLine(models.Model): + _name = 'account.analytic.invoice.line' + _inherit = 'account.analytic.contract.line' analytic_account_id = fields.Many2one( - string='Contract', - comodel_name='account.analytic.contract', + 'account.analytic.account', + string='Analytic Account', required=True, ondelete='cascade', ) diff --git a/contract/models/account_analytic_invoice_line.py b/contract/models/account_analytic_invoice_line.py index 68df3d7c..a7eb5e63 100644 --- a/contract/models/account_analytic_invoice_line.py +++ b/contract/models/account_analytic_invoice_line.py @@ -12,8 +12,9 @@ from odoo.exceptions import ValidationError from odoo.tools.translate import _ -class AccountAnalyticInvoiceLine(models.Model): - _name = 'account.analytic.invoice.line' +class AccountAnalyticContractLine(models.Model): + _name = 'account.analytic.contract.line' + _description = 'Contract Lines' _order = "sequence,id" product_id = fields.Many2one( @@ -22,8 +23,8 @@ class AccountAnalyticInvoiceLine(models.Model): required=True, ) analytic_account_id = fields.Many2one( - 'account.analytic.account', - string='Analytic Account', + string='Contract', + comodel_name='account.analytic.contract', required=True, ondelete='cascade', ) diff --git a/contract_variable_quantity/models/contract.py b/contract_variable_quantity/models/contract.py index 1667a5e7..50b2f30b 100644 --- a/contract_variable_quantity/models/contract.py +++ b/contract_variable_quantity/models/contract.py @@ -28,8 +28,8 @@ class AccountAnalyticAccount(models.Model): return vals -class AccountAnalyticInvoiceLine(models.Model): - _inherit = 'account.analytic.invoice.line' +class AccountAnalyticContractLine(models.Model): + _inherit = 'account.analytic.contract.line' qty_type = fields.Selection( selection=[ From 3dec9ede41bce241b7c46e75c78dc17f1ab0fe44 Mon Sep 17 00:00:00 2001 From: Dmytro Katyukha Date: Thu, 12 Jul 2018 13:33:35 +0300 Subject: [PATCH 2/4] Rename account_analytic_*_line files In previous commit changed inheritance order of 'account.analytic.*.line' models, thus classes and models were renamed. This commit only renames files to temporary names. This commit does not change file contents. --- contract/models/__init__.py | 4 ++-- ...contract_line.py => account_analytic_contract_line_bis.py} | 0 ...c_invoice_line.py => account_analytic_invoice_line_bis.py} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename contract/models/{account_analytic_contract_line.py => account_analytic_contract_line_bis.py} (100%) rename contract/models/{account_analytic_invoice_line.py => account_analytic_invoice_line_bis.py} (100%) diff --git a/contract/models/__init__.py b/contract/models/__init__.py index 3a3ee1be..529169df 100644 --- a/contract/models/__init__.py +++ b/contract/models/__init__.py @@ -3,7 +3,7 @@ from . import account_analytic_contract from . import account_analytic_account -from . import account_analytic_invoice_line -from . import account_analytic_contract_line +from . import account_analytic_invoice_line_bis +from . import account_analytic_contract_line_bis from . import account_invoice from . import res_partner diff --git a/contract/models/account_analytic_contract_line.py b/contract/models/account_analytic_contract_line_bis.py similarity index 100% rename from contract/models/account_analytic_contract_line.py rename to contract/models/account_analytic_contract_line_bis.py diff --git a/contract/models/account_analytic_invoice_line.py b/contract/models/account_analytic_invoice_line_bis.py similarity index 100% rename from contract/models/account_analytic_invoice_line.py rename to contract/models/account_analytic_invoice_line_bis.py From 1d6cd308b0916d330fec2df87f53cdf96def3a83 Mon Sep 17 00:00:00 2001 From: Dmytro Katyukha Date: Thu, 12 Jul 2018 14:52:10 +0300 Subject: [PATCH 3/4] Rename account_analytic_*_line files In previous commit 'account_analytic_*_line' model files were renamed to temporary names. This commit renames these files to correct names --- contract/models/__init__.py | 4 ++-- ..._invoice_line_bis.py => account_analytic_contract_line.py} | 0 ..._contract_line_bis.py => account_analytic_invoice_line.py} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename contract/models/{account_analytic_invoice_line_bis.py => account_analytic_contract_line.py} (100%) rename contract/models/{account_analytic_contract_line_bis.py => account_analytic_invoice_line.py} (100%) diff --git a/contract/models/__init__.py b/contract/models/__init__.py index 529169df..7d711125 100644 --- a/contract/models/__init__.py +++ b/contract/models/__init__.py @@ -3,7 +3,7 @@ from . import account_analytic_contract from . import account_analytic_account -from . import account_analytic_invoice_line_bis -from . import account_analytic_contract_line_bis +from . import account_analytic_contract_line +from . import account_analytic_invoice_line from . import account_invoice from . import res_partner diff --git a/contract/models/account_analytic_invoice_line_bis.py b/contract/models/account_analytic_contract_line.py similarity index 100% rename from contract/models/account_analytic_invoice_line_bis.py rename to contract/models/account_analytic_contract_line.py diff --git a/contract/models/account_analytic_contract_line_bis.py b/contract/models/account_analytic_invoice_line.py similarity index 100% rename from contract/models/account_analytic_contract_line_bis.py rename to contract/models/account_analytic_invoice_line.py From cab7df4f1fd50b976598653af1f34ccc3126df9e Mon Sep 17 00:00:00 2001 From: Dmytro Katyukha Date: Thu, 12 Jul 2018 21:11:28 +0300 Subject: [PATCH 4/4] Update addon versions - contract - contract_variable_quantity --- contract/__manifest__.py | 2 +- contract_variable_quantity/__manifest__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/contract/__manifest__.py b/contract/__manifest__.py index 1e8b8492..e63b2fc2 100644 --- a/contract/__manifest__.py +++ b/contract/__manifest__.py @@ -9,7 +9,7 @@ { 'name': 'Contracts Management - Recurring', - 'version': '10.0.4.1.1', + 'version': '10.0.4.2.0', 'category': 'Contract Management', 'license': 'AGPL-3', 'author': "OpenERP SA, " diff --git a/contract_variable_quantity/__manifest__.py b/contract_variable_quantity/__manifest__.py index b56b6a3b..f61b1165 100644 --- a/contract_variable_quantity/__manifest__.py +++ b/contract_variable_quantity/__manifest__.py @@ -4,7 +4,7 @@ { 'name': 'Variable quantity in contract recurrent invoicing', - 'version': '10.0.1.1.0', + 'version': '10.0.1.2.0', 'category': 'Contract Management', 'license': 'AGPL-3', 'author': "Tecnativa,"