Check rule only if _check_access is set and enforce companies rule
issue4080
This commit is contained in:
parent
c08f5c1b4f
commit
0ec0ad0bc4
|
@ -153,35 +153,57 @@ class Production(metaclass=PoolMeta):
|
||||||
'readonly': Eval('state').in_(['cancelled', 'done']),
|
'readonly': Eval('state').in_(['cancelled', 'done']),
|
||||||
}, depends=['allowed_output_products', 'state'])
|
}, depends=['allowed_output_products', 'state'])
|
||||||
allowed_enology_products = fields.Function(fields.One2Many(
|
allowed_enology_products = fields.Function(fields.One2Many(
|
||||||
'product.product', None, 'Allowed Enology Products', readonly=True),
|
'product.product', None, 'Allowed Enology Products', readonly=True,
|
||||||
|
context={
|
||||||
|
'company': Eval('company'),
|
||||||
|
},
|
||||||
|
depends=['company']),
|
||||||
'on_change_with_allowed_enology_products',
|
'on_change_with_allowed_enology_products',
|
||||||
setter='set_allowed_products')
|
setter='set_allowed_products')
|
||||||
allowed_output_products = fields.Function(fields.One2Many(
|
allowed_output_products = fields.Function(fields.One2Many(
|
||||||
'product.template', None, 'Allowed Output Products', readonly=True),
|
'product.template', None, 'Allowed Output Products', readonly=True,
|
||||||
|
context={
|
||||||
|
'company': Eval('company'),
|
||||||
|
},
|
||||||
|
depends=['company']),
|
||||||
'on_change_with_allowed_output_products',
|
'on_change_with_allowed_output_products',
|
||||||
setter='set_allowed_products')
|
setter='set_allowed_products')
|
||||||
cost_distributions = fields.One2Many(
|
cost_distributions = fields.One2Many(
|
||||||
'production.cost_price.distribution',
|
'production.cost_price.distribution',
|
||||||
'origin', "Cost Distributions",
|
'origin', "Cost Distributions",
|
||||||
|
domain=[
|
||||||
|
('template', 'in', Eval('cost_distribution_templates')),
|
||||||
|
],
|
||||||
states={
|
states={
|
||||||
'readonly': Eval('state').in_(['cancelled', 'done']),
|
'readonly': Eval('state').in_(['cancelled', 'done']),
|
||||||
}, domain=[
|
},
|
||||||
('template', 'in', Eval('cost_distribution_templates')),
|
context={
|
||||||
], depends=['state', 'cost_distribution_template',
|
'company': Eval('company'),
|
||||||
'cost_distribution_templates'])
|
},
|
||||||
|
depends=['state', 'cost_distribution_template',
|
||||||
|
'cost_distribution_templates', 'company'])
|
||||||
cost_distribution_template = fields.Many2One(
|
cost_distribution_template = fields.Many2One(
|
||||||
'production.cost_price.distribution.template',
|
'production.cost_price.distribution.template',
|
||||||
"Cost Distribution Template",
|
"Cost Distribution Template",
|
||||||
domain=[
|
domain=[
|
||||||
('id', 'in',
|
('id', 'in',
|
||||||
Eval('production_template_cost_distribution_templates'))
|
Eval('production_template_cost_distribution_templates'))
|
||||||
], states={
|
],
|
||||||
|
states={
|
||||||
'readonly': Eval('state').in_(['cancelled', 'done']),
|
'readonly': Eval('state').in_(['cancelled', 'done']),
|
||||||
}, depends=['state',
|
},
|
||||||
'production_template_cost_distribution_templates'])
|
context={
|
||||||
|
'company': Eval('company'),
|
||||||
|
},
|
||||||
|
depends=['state',
|
||||||
|
'production_template_cost_distribution_templates', 'company'])
|
||||||
cost_distribution_templates = fields.Function(
|
cost_distribution_templates = fields.Function(
|
||||||
fields.Many2Many('product.template',
|
fields.Many2Many('product.template',
|
||||||
None, None, "Cost Product Templates"),
|
None, None, "Cost Product Templates",
|
||||||
|
context={
|
||||||
|
'company': Eval('company'),
|
||||||
|
},
|
||||||
|
depends=['company']),
|
||||||
'on_change_with_cost_distribution_templates')
|
'on_change_with_cost_distribution_templates')
|
||||||
pass_quality = fields.Boolean('Pass Quality')
|
pass_quality = fields.Boolean('Pass Quality')
|
||||||
pass_certification = fields.Boolean('Pass Certification')
|
pass_certification = fields.Boolean('Pass Certification')
|
||||||
|
@ -487,7 +509,7 @@ class Production(metaclass=PoolMeta):
|
||||||
if output.product not in products:
|
if output.product not in products:
|
||||||
continue
|
continue
|
||||||
has_product = True
|
has_product = True
|
||||||
cost = (production_cost * (1 + cdist.percentatge) -
|
cost = (production_cost * (1 + cdist.percentatge) -
|
||||||
production_cost)
|
production_cost)
|
||||||
output_cost += round_price(cost / Decimal(total_output))
|
output_cost += round_price(cost / Decimal(total_output))
|
||||||
|
|
||||||
|
|
|
@ -71,7 +71,11 @@ class QualitySample(ModelSQL, ModelView):
|
||||||
code = fields.Char('Code', select=True, readonly=True)
|
code = fields.Char('Code', select=True, readonly=True)
|
||||||
reference = fields.Char('Reference')
|
reference = fields.Char('Reference')
|
||||||
products = fields.Many2Many('product.product-quality.sample', 'sample',
|
products = fields.Many2Many('product.product-quality.sample', 'sample',
|
||||||
'product', 'Products')
|
'product', "Products",
|
||||||
|
context={
|
||||||
|
'company': Eval('company'),
|
||||||
|
},
|
||||||
|
depends=['company'])
|
||||||
collection_date = fields.DateTime('Collection Date', required=True)
|
collection_date = fields.DateTime('Collection Date', required=True)
|
||||||
company = fields.Many2One('company.company', 'Company', required=True,
|
company = fields.Many2One('company.company', 'Company', required=True,
|
||||||
select=True)
|
select=True)
|
||||||
|
|
|
@ -13,7 +13,9 @@
|
||||||
</record>
|
</record>
|
||||||
<record model="ir.rule" id="rule_quality_configuration_company1">
|
<record model="ir.rule" id="rule_quality_configuration_company1">
|
||||||
<field name="rule_group" ref="rule_group_quality_configuration_company"/>
|
<field name="rule_group" ref="rule_group_quality_configuration_company"/>
|
||||||
<field name="domain" eval="[('company', '=', Eval('user', {}).get('company', None))]" pyson="1"/>
|
<field name="domain"
|
||||||
|
eval="[('company', 'in', Eval('companies', []))]"
|
||||||
|
pyson="1"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record model="ir.sequence.type" id="sequence_type_sample">
|
<record model="ir.sequence.type" id="sequence_type_sample">
|
||||||
|
@ -94,7 +96,9 @@
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record model="ir.rule" id="rule_quality_sample1">
|
<record model="ir.rule" id="rule_quality_sample1">
|
||||||
<field name="domain" eval="[('company', '=', Eval('user', {}).get('company', None))]" pyson="1"/>
|
<field name="domain"
|
||||||
|
eval="[('company', 'in', Eval('companies', []))]"
|
||||||
|
pyson="1"/>
|
||||||
<field name="rule_group" ref="rule_group_quality_sample"/>
|
<field name="rule_group" ref="rule_group_quality_sample"/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
|
|
@ -7,9 +7,10 @@ from trytond.tests.test_tryton import ModuleTestCase
|
||||||
from trytond.tests.test_tryton import suite as test_suite
|
from trytond.tests.test_tryton import suite as test_suite
|
||||||
from trytond.tests.test_tryton import doctest_teardown
|
from trytond.tests.test_tryton import doctest_teardown
|
||||||
from trytond.tests.test_tryton import doctest_checker
|
from trytond.tests.test_tryton import doctest_checker
|
||||||
|
from trytond.modules.company.tests import CompanyTestMixin
|
||||||
|
|
||||||
|
|
||||||
class AgronomicsTestCase(ModuleTestCase):
|
class AgronomicsTestCase(CompanyTestMixin, ModuleTestCase):
|
||||||
'Test Agronomics module'
|
'Test Agronomics module'
|
||||||
module = 'agronomics'
|
module = 'agronomics'
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue