Browse Source

[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)
pull/172/head
Dmytro Katyukha 7 years ago
committed by Ronald Portier
parent
commit
3c0c73c0f5
  1. 12
      contract/models/account_analytic_contract_line.py
  2. 9
      contract/models/account_analytic_invoice_line.py
  3. 4
      contract_variable_quantity/models/contract.py

12
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',
)

9
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',
)

4
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=[

Loading…
Cancel
Save