Files
tryton/configuration.py
T
2017-02-02 00:33:27 +01:00

71 lines
2.4 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.model import ModelView, ModelSQL, ModelSingleton, fields
from trytond.pool import Pool
__all__ = ['Configuration']
class Configuration(ModelSingleton, ModelSQL, ModelView):
'Product Configuration'
__name__ = 'product.configuration'
default_cost_price_method = fields.Function(fields.Selection(
'get_cost_price_methods', 'Default Cost Method'),
'get_default_cost_price_method',
setter='set_default_cost_price_method')
@classmethod
def default_default_cost_price_method(cls):
return cls().get_default_cost_price_method('default_cost_price_method')
@classmethod
def get_cost_price_methods(cls):
pool = Pool()
Template = pool.get('product.template')
return (Template.fields_get(
['cost_price_method'])['cost_price_method']['selection']
+ [(None, '')])
@classmethod
def _get_product_field(cls, name):
pool = Pool()
ModelField = pool.get('ir.model.field')
for model in ['product.product', 'product.template']:
fields = ModelField.search([
('model.model', '=', model),
('name', '=', name),
], limit=1)
if fields:
return fields[0]
def get_default_cost_price_method(self, name):
pool = Pool()
Property = pool.get('ir.property')
field = self._get_product_field('cost_price_method')
properties = Property.search([
('field', '=', field.id),
('res', '=', None),
], limit=1)
if properties:
prop, = properties
if prop.value:
return prop.value.split(',')[1]
@classmethod
def set_default_cost_price_method(cls, configurations, name, value):
pool = Pool()
Property = pool.get('ir.property')
field = cls._get_product_field('cost_price_method')
properties = Property.search([
('field', '=', field.id),
('res', '=', None),
])
Property.delete(properties)
if value:
Property.create([{
'field': field.id,
'value': ',%s' % value,
}])