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():

Reply via email to