mirror of
https://github.com/Kalenis/kalenislims.git
synced 2023-12-14 07:13:04 +01:00
lims_industry/lims_sale/lims_sale_industry: fix readonly property in fields
This commit is contained in:
parent
20e2db1bd1
commit
02f8a214be
|
@ -64,6 +64,12 @@ class Sample(metaclass=PoolMeta):
|
|||
hours_oil = fields.Integer('Hs. Oil')
|
||||
changed_oil = fields.Boolean('Did change Oil?')
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super(Sample, cls).__setup__()
|
||||
cls.product_type.states['readonly'] = True
|
||||
cls.matrix.states['readonly'] = True
|
||||
|
||||
@fields.depends('component')
|
||||
def on_change_component(self):
|
||||
if self.component:
|
||||
|
@ -178,6 +184,8 @@ class CreateSampleStart(metaclass=PoolMeta):
|
|||
super(CreateSampleStart, cls).__setup__()
|
||||
for field in ('component', 'comercial_product'):
|
||||
cls.analysis_domain.on_change_with.add(field)
|
||||
cls.product_type.states['readonly'] = True
|
||||
cls.matrix.states['readonly'] = True
|
||||
|
||||
@fields.depends('component')
|
||||
def on_change_component(self):
|
||||
|
|
|
@ -39,8 +39,12 @@ class Sale(metaclass=PoolMeta):
|
|||
states={'readonly': ~Eval('state').in_(['draft', 'quotation'])},
|
||||
depends=['state'])
|
||||
clauses = fields.Many2Many('sale.sale-sale.clause', 'sale', 'clause',
|
||||
'Clauses')
|
||||
send_email = fields.Boolean('Send automatically by Email')
|
||||
'Clauses',
|
||||
states={'readonly': Eval('state') != 'draft'},
|
||||
depends=['state'])
|
||||
send_email = fields.Boolean('Send automatically by Email',
|
||||
states={'readonly': Eval('state') != 'draft'},
|
||||
depends=['state'])
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
|
@ -194,40 +198,55 @@ class SaleLine(metaclass=PoolMeta):
|
|||
product_type = fields.Many2One('lims.product.type', 'Product type',
|
||||
domain=['OR', ('id', '=', Eval('product_type')),
|
||||
('id', 'in', Eval('product_type_domain'))],
|
||||
depends=['product_type_domain'])
|
||||
states={'readonly': Eval('sale_state') != 'draft'},
|
||||
depends=['product_type_domain', 'sale_state'])
|
||||
product_type_domain = fields.Function(fields.Many2Many('lims.product.type',
|
||||
None, None, 'Product type domain'),
|
||||
'on_change_with_product_type_domain')
|
||||
matrix = fields.Many2One('lims.matrix', 'Matrix',
|
||||
domain=['OR', ('id', '=', Eval('matrix')),
|
||||
('id', 'in', Eval('matrix_domain'))],
|
||||
depends=['matrix_domain', 'services'])
|
||||
states={'readonly': Eval('sale_state') != 'draft'},
|
||||
depends=['matrix_domain', 'services', 'sale_state'])
|
||||
matrix_domain = fields.Function(fields.Many2Many('lims.matrix',
|
||||
None, None, 'Matrix domain'), 'on_change_with_matrix_domain')
|
||||
analysis = fields.Many2One('lims.analysis', 'Service',
|
||||
domain=['OR', ('id', '=', Eval('analysis')),
|
||||
('id', 'in', Eval('analysis_domain'))],
|
||||
depends=['analysis_domain'])
|
||||
states={'readonly': Eval('sale_state') != 'draft'},
|
||||
depends=['analysis_domain', 'sale_state'])
|
||||
analysis_domain = fields.Function(fields.Many2Many('lims.analysis',
|
||||
None, None, 'Analysis domain'), 'on_change_with_analysis_domain')
|
||||
method = fields.Many2One('lims.lab.method', 'Method',
|
||||
domain=['OR', ('id', '=', Eval('method')),
|
||||
('id', 'in', Eval('method_domain'))],
|
||||
states={'invisible': Bool(Eval('method_invisible'))},
|
||||
depends=['method_domain', 'method_invisible'])
|
||||
states={
|
||||
'invisible': Bool(Eval('method_invisible')),
|
||||
'readonly': Eval('sale_state') != 'draft',
|
||||
},
|
||||
depends=['method_domain', 'method_invisible', 'sale_state'])
|
||||
method_invisible = fields.Function(fields.Boolean('Method invisible'),
|
||||
'on_change_with_method_invisible')
|
||||
method_domain = fields.Function(fields.Many2Many('lims.lab.method',
|
||||
None, None, 'Method domain'), 'on_change_with_method_domain')
|
||||
expiration_date = fields.Date('Expiration date')
|
||||
print_price = fields.Boolean('Print price on quotation')
|
||||
expiration_date = fields.Date('Expiration date',
|
||||
states={'readonly': Eval('sale_state') != 'draft'},
|
||||
depends=['sale_state'])
|
||||
print_price = fields.Boolean('Print price on quotation',
|
||||
states={'readonly': Eval('sale_state') != 'draft'},
|
||||
depends=['sale_state'])
|
||||
print_service_detail = fields.Boolean('Print service detail',
|
||||
states={'invisible': Bool(Eval('print_service_detail_invisible'))},
|
||||
depends=['print_service_detail_invisible'])
|
||||
states={
|
||||
'invisible': Bool(Eval('print_service_detail_invisible')),
|
||||
'readonly': Eval('sale_state') != 'draft',
|
||||
},
|
||||
depends=['print_service_detail_invisible', 'sale_state'])
|
||||
print_service_detail_invisible = fields.Function(fields.Boolean(
|
||||
'Print service detail invisible'),
|
||||
'on_change_with_print_service_detail_invisible')
|
||||
unlimited_quantity = fields.Boolean('Unlimited quantity')
|
||||
unlimited_quantity = fields.Boolean('Unlimited quantity',
|
||||
states={'readonly': Eval('sale_state') != 'draft'},
|
||||
depends=['sale_state'])
|
||||
|
||||
@staticmethod
|
||||
def default_product_type_domain():
|
||||
|
|
|
@ -7,7 +7,7 @@ from trytond.wizard import Wizard, StateView, StateTransition, StateReport, \
|
|||
StateAction, Button
|
||||
from trytond.report import Report
|
||||
from trytond.pool import PoolMeta, Pool
|
||||
from trytond.pyson import PYSONEncoder, Eval, And, Bool, If
|
||||
from trytond.pyson import PYSONEncoder, Eval, And, Bool, If, Or
|
||||
from trytond.transaction import Transaction
|
||||
from trytond.exceptions import UserError
|
||||
from trytond.i18n import gettext
|
||||
|
@ -22,23 +22,26 @@ __all__ = ['Sale', 'SalePlant', 'SaleEquipment', 'SaleComponent',
|
|||
class Sale(metaclass=PoolMeta):
|
||||
__name__ = 'sale.sale'
|
||||
|
||||
lubrication_plan = fields.Boolean('Lubrication plan')
|
||||
_states = {'readonly': Eval('state') != 'draft'}
|
||||
|
||||
lubrication_plan = fields.Boolean('Lubrication plan',
|
||||
states=_states, depends=['state'])
|
||||
plants = fields.Many2Many('sale.sale-lims.plant',
|
||||
'sale', 'plant', 'Plants',
|
||||
domain=[('party', '=', Eval('party'))],
|
||||
depends=['party'])
|
||||
states=_states, depends=['party', 'state'])
|
||||
equipments = fields.Many2Many('sale.sale-lims.equipment',
|
||||
'sale', 'equipment', 'Equipments',
|
||||
domain=[('plant', 'in', Eval('plants'))],
|
||||
depends=['plants'])
|
||||
states=_states, depends=['plants', 'state'])
|
||||
components = fields.Many2Many('sale.sale-lims.component',
|
||||
'sale', 'component', 'Components',
|
||||
domain=[('equipment', 'in', Eval('equipments'))],
|
||||
depends=['equipments'])
|
||||
states=_states, depends=['equipments', 'state'])
|
||||
contacts = fields.Many2Many('sale.sale-party.address',
|
||||
'sale', 'address', 'Contacts',
|
||||
domain=[('id', 'in', Eval('contacts_domain'))],
|
||||
depends=['contacts_domain'])
|
||||
states=_states, depends=['contacts_domain', 'state'])
|
||||
contacts_domain = fields.Function(fields.Many2Many('party.address',
|
||||
None, None, 'Contacts domain'), 'on_change_with_contacts_domain')
|
||||
label_from = fields.Integer('Label from', readonly=True)
|
||||
|
@ -151,20 +154,20 @@ class SaleLine(metaclass=PoolMeta):
|
|||
plants = fields.Many2Many('sale.line-lims.plant',
|
||||
'line', 'plant', 'Plants',
|
||||
states={
|
||||
'readonly': Bool(Eval('_parent_sale', {}).get(
|
||||
'plants', False)),
|
||||
'readonly': Or(Eval('sale_state') != 'draft',
|
||||
Bool(Eval('_parent_sale', {}).get('plants', False))),
|
||||
'required': And(
|
||||
Bool(Eval('_parent_sale', {}).get('lubrication_plan', False)),
|
||||
Bool(Eval('analysis')),
|
||||
~Bool(Eval('_parent_sale', {}).get('plants', []))),
|
||||
},
|
||||
domain=[('party', '=', Eval('_parent_sale', {}).get('party', None))],
|
||||
depends=['_parent_sale', 'analysis'])
|
||||
depends=['_parent_sale', 'analysis', 'sale_state'])
|
||||
equipments = fields.Many2Many('sale.line-lims.equipment',
|
||||
'line', 'equipment', 'Equipments',
|
||||
states={
|
||||
'readonly': Bool(Eval('_parent_sale', {}).get(
|
||||
'equipments', False)),
|
||||
'readonly': Or(Eval('sale_state') != 'draft',
|
||||
Bool(Eval('_parent_sale', {}).get('equipments', False))),
|
||||
'required': And(
|
||||
Bool(Eval('_parent_sale', {}).get('lubrication_plan', False)),
|
||||
Bool(Eval('analysis')),
|
||||
|
@ -173,12 +176,12 @@ class SaleLine(metaclass=PoolMeta):
|
|||
domain=[If(Bool(Eval('plants')),
|
||||
('plant', 'in', Eval('plants')),
|
||||
('plant', 'in', Eval('_parent_sale', {}).get('plants', [])))],
|
||||
depends=['plants', '_parent_sale', 'analysis'])
|
||||
depends=['plants', '_parent_sale', 'analysis', 'sale_state'])
|
||||
components = fields.Many2Many('sale.line-lims.component',
|
||||
'line', 'component', 'Components',
|
||||
states={
|
||||
'readonly': Bool(Eval('_parent_sale', {}).get(
|
||||
'components', False)),
|
||||
'readonly': Or(Eval('sale_state') != 'draft',
|
||||
Bool(Eval('_parent_sale', {}).get('components', False))),
|
||||
'required': And(
|
||||
Bool(Eval('_parent_sale', {}).get('lubrication_plan', False)),
|
||||
Bool(Eval('analysis')),
|
||||
|
@ -188,25 +191,28 @@ class SaleLine(metaclass=PoolMeta):
|
|||
('equipment', 'in', Eval('equipments')),
|
||||
('equipment', 'in', Eval('_parent_sale', {}).get(
|
||||
'equipments', [])))],
|
||||
depends=['equipments', '_parent_sale', 'analysis'])
|
||||
depends=['equipments', '_parent_sale', 'analysis', 'sale_state'])
|
||||
label_from = fields.Integer('Label from', readonly=True,
|
||||
depends=['_parent_sale'], states={
|
||||
states={
|
||||
'invisible': ~Bool(Eval('_parent_sale', {}).get(
|
||||
'lubrication_plan', False)),
|
||||
})
|
||||
'readonly': Eval('sale_state') != 'draft',
|
||||
},
|
||||
depends=['_parent_sale', 'sale_state'])
|
||||
label_to = fields.Integer('Label to', readonly=True,
|
||||
depends=['_parent_sale'], states={
|
||||
states={
|
||||
'invisible': ~Bool(Eval('_parent_sale', {}).get(
|
||||
'lubrication_plan', False)),
|
||||
})
|
||||
'readonly': Eval('sale_state') != 'draft',
|
||||
},
|
||||
depends=['_parent_sale', 'sale_state'])
|
||||
|
||||
@classmethod
|
||||
def __setup__(cls):
|
||||
super(SaleLine, cls).__setup__()
|
||||
cls.expiration_date.states = {
|
||||
'required': And(
|
||||
cls.expiration_date.states['required'] = And(
|
||||
Bool(Eval('_parent_sale', {}).get('lubrication_plan', False)),
|
||||
Bool(Eval('analysis')))}
|
||||
Bool(Eval('analysis')))
|
||||
cls.expiration_date.depends.extend(['_parent_sale', 'analysis'])
|
||||
|
||||
@classmethod
|
||||
|
|
Loading…
Reference in a new issue