Files
tryton/configuration.py
T
Cédric Krier 6c9407f4bd Move category into account_category
and rename account_category into accounts_category

issue5320
review23791002
2016-03-19 09:03:23 +01:00

96 lines
3.5 KiB
Python

# This file is part of Tryton. The COPYRIGHT file at the top level of
# this repository contains the full copyright notices and license terms.
from trytond.pool import PoolMeta, Pool
from trytond.model import fields
from trytond.pyson import Eval
from trytond import backend
from trytond.transaction import Transaction
__all__ = ['Configuration', 'ProductConfiguration']
class Configuration:
__metaclass__ = PoolMeta
__name__ = 'account.configuration'
default_product_account_expense = fields.Function(fields.Many2One(
'account.account', 'Default Account Expense',
domain=[
('kind', '=', 'expense'),
('company', '=', Eval('context', {}).get('company', -1)),
]),
'get_account', setter='set_account')
default_product_account_revenue = fields.Function(fields.Many2One(
'account.account', 'Default Account Revenue',
domain=[
('kind', '=', 'revenue'),
('company', '=', Eval('context', {}).get('company', -1)),
]),
'get_account', setter='set_account')
default_category_account_expense = fields.Function(fields.Many2One(
'account.account', 'Default Account Expense',
domain=[
('kind', '=', 'expense'),
('company', '=', Eval('context', {}).get('company', -1)),
]),
'get_account', setter='set_account')
default_category_account_revenue = fields.Function(fields.Many2One(
'account.account', 'Default Account Revenue',
domain=[
('kind', '=', 'revenue'),
('company', '=', Eval('context', {}).get('company', -1)),
]),
'get_account', setter='set_account')
@classmethod
def _get_account_field(cls, name):
pool = Pool()
ModelField = pool.get('ir.model.field')
if name in ['default_product_account_expense',
'default_product_account_revenue']:
field, = ModelField.search([
('model.model', '=', 'product.template'),
('name', '=', name[len('default_product_'):]),
], limit=1)
return field
elif name in ['default_category_account_expense',
'default_category_account_revenue']:
field, = ModelField.search([
('model.model', '=', 'product.category'),
('name', '=', name[len('default_category_'):]),
], limit=1)
return field
return super(Configuration, cls)._get_account_field(name)
class ProductConfiguration:
__metaclass__ = PoolMeta
__name__ = 'product.configuration'
default_accounts_category = fields.Boolean(
'Use Category\'s accounts by default')
default_taxes_category = fields.Boolean(
'Use Category\' taxes by default')
@classmethod
def __register__(cls, module_name):
TableHandler = backend.get('TableHandler')
# Migration from 3.8: rename default_account_category into
# default_accounts_category
table = TableHandler(cls, module_name)
if table.column_exist('default_account_category'):
table.column_rename('default_account_category',
'default_accounts_category', exception=True)
super(ProductConfiguration, cls).__register__(module_name)
@classmethod
def default_default_accounts_category(cls):
return False
@classmethod
def default_default_taxes_category(cls):
return False