changeset 7707e3245eda in modules/incoterm:default
details: https://hg.tryton.org/modules/incoterm?cmd=changeset&node=7707e3245eda
description:
Check rule only if _check_access is set and enforce companies rule
issue4080
review343891009
diffstat:
party.py | 12 +++++++++++-
party.xml | 12 ++++++++++++
tests/test_incoterm.py | 11 +++++++----
3 files changed, 30 insertions(+), 5 deletions(-)
diffs (74 lines):
diff -r d920cc106f24 -r 7707e3245eda party.py
--- a/party.py Sun Mar 28 16:17:23 2021 +0200
+++ b/party.py Sat Apr 10 23:46:23 2021 +0200
@@ -89,7 +89,12 @@
"Party Incoterm"
__name__ = 'party.incoterm'
- party = fields.Many2One('party.party', "Party", required=True, select=True)
+ party = fields.Many2One(
+ 'party.party', "Party", required=True, select=True,
+ context={
+ 'company': Eval('company', -1),
+ },
+ depends=['company'])
company = fields.Many2One('company.company', "Company")
type = fields.Selection([
('purchase', "Purchase"),
@@ -109,5 +114,10 @@
depends=['party'])
@classmethod
+ def __setup__(cls):
+ super().__setup__()
+ cls.__access__.add('party')
+
+ @classmethod
def default_company(cls):
return Transaction().context.get('company')
diff -r d920cc106f24 -r 7707e3245eda party.xml
--- a/party.xml Sun Mar 28 16:17:23 2021 +0200
+++ b/party.xml Sat Apr 10 23:46:23 2021 +0200
@@ -29,5 +29,17 @@
<field name="type">tree</field>
<field name="name">party_incoterm_list</field>
</record>
+
+ <record model="ir.rule.group" id="rule_group_party_incoterm_companies">
+ <field name="name">User in companies</field>
+ <field name="model" search="[('model', '=', 'party.incoterm')]"/>
+ <field name="global_p" eval="True"/>
+ </record>
+ <record model="ir.rule" id="rule_party_incoterm_companies">
+ <field name="domain"
+ eval="[('company', 'in', Eval('companies', []))]"
+ pyson="1"/>
+ <field name="rule_group"
ref="rule_group_party_incoterm_companies"/>
+ </record>
</data>
</tryton>
diff -r d920cc106f24 -r 7707e3245eda tests/test_incoterm.py
--- a/tests/test_incoterm.py Sun Mar 28 16:17:23 2021 +0200
+++ b/tests/test_incoterm.py Sat Apr 10 23:46:23 2021 +0200
@@ -10,14 +10,17 @@
from trytond.tests.test_tryton import doctest_teardown
from trytond.tests.test_tryton import doctest_checker
+from trytond.modules.company.tests import CompanyTestMixin
-class IncotermTestCase(ModuleTestCase):
+
+class IncotermTestCase(CompanyTestMixin, ModuleTestCase):
'Test Incoterm module'
module = 'incoterm'
extras = [
- 'carrier', 'purchase', 'purchase_request_quotation', 'sale',
- 'sale_shipment_cost', 'sale_opportunity', 'sale_invoice_grouping',
- 'stock', 'account_invoice', 'account_invoice_stock']
+ 'carrier', 'company', 'purchase', 'purchase_request_quotation',
+ 'sale', 'sale_shipment_cost', 'sale_opportunity',
+ 'sale_invoice_grouping', 'stock', 'account_invoice',
+ 'account_invoice_stock']
def suite():