changeset 3555b5d8194c in modules/account:default
details: https://hg.tryton.org/modules/account?cmd=changeset&node=3555b5d8194c
description:
        Add field access on referential document

        issue10269
        review332861003
diffstat:

 CHANGELOG   |   1 +
 account.xml |   8 ++++++++
 party.py    |  14 ++++++++++++++
 party.xml   |  59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 82 insertions(+), 0 deletions(-)

diffs (125 lines):

diff -r 597c8212cb85 -r 3555b5d8194c CHANGELOG
--- a/CHANGELOG Sun Oct 03 13:50:33 2021 +0200
+++ b/CHANGELOG Mon Oct 11 15:35:46 2021 +0200
@@ -1,3 +1,4 @@
+* Add group to edit accounting of parties
 * Rename lock buttons into lock_
 * Add split lines wizard
 * Validate that all inactive accounts have no balance when closing periods
diff -r 597c8212cb85 -r 3555b5d8194c account.xml
--- a/account.xml       Sun Oct 03 13:50:33 2021 +0200
+++ b/account.xml       Mon Oct 11 15:35:46 2021 +0200
@@ -6,6 +6,10 @@
         <record model="res.group" id="group_account">
             <field name="name">Account</field>
         </record>
+        <record model="res.group" id="group_account_party">
+            <field name="name">Accounting Party</field>
+            <field name="parent" ref="group_account"/>
+        </record>
         <record model="res.group" id="group_account_admin">
             <field name="name">Account Administration</field>
             <field name="parent" ref="group_account"/>
@@ -14,6 +18,10 @@
             <field name="user" ref="res.user_admin"/>
             <field name="group" ref="group_account"/>
         </record>
+        <record model="res.user-res.group" id="user_admin_group_account_party">
+            <field name="user" ref="res.user_admin"/>
+            <field name="group" ref="group_account_party"/>
+        </record>
         <record model="res.user-res.group" id="user_admin_group_account_admin">
             <field name="user" ref="res.user_admin"/>
             <field name="group" ref="group_account_admin"/>
diff -r 597c8212cb85 -r 3555b5d8194c party.py
--- a/party.py  Sun Oct 03 13:50:33 2021 +0200
+++ b/party.py  Mon Oct 11 15:35:46 2021 +0200
@@ -270,6 +270,20 @@
                 'visual', If(Eval('payable_today', 0) < 0, 'warning', '')),
             ]
 
+    @classmethod
+    def copy(cls, parties, default=None):
+        context = Transaction().context
+        default = default.copy() if default else {}
+        if context.get('_check_access'):
+            fields = [
+                'accounts',
+                'account_payable', 'account_receivable',
+                'customer_tax_rule', 'supplier_tax_rule']
+            default_values = cls.default_get(fields, with_rec_name=False)
+            for fname in fields:
+                default.setdefault(fname, default_values.get(fname))
+        return super().copy(parties, default=default)
+
 
 class PartyAccount(ModelSQL, CompanyValueMixin):
     "Party Account"
diff -r 597c8212cb85 -r 3555b5d8194c party.xml
--- a/party.xml Sun Oct 03 13:50:33 2021 +0200
+++ b/party.xml Mon Oct 11 15:35:46 2021 +0200
@@ -15,5 +15,64 @@
             <field name="name">party_form</field>
         </record>
 
+        <record model="ir.model.field.access" id="access_party_accounts">
+            <field name="field" search="[('model.model', '=', 'party.party'), 
('name', '=', 'accounts')]"/>
+            <field name="perm_read" eval="True"/>
+            <field name="perm_write" eval="False"/>
+        </record>
+        <record model="ir.model.field.access" 
id="access_party_accounts_account_party">
+            <field name="field" search="[('model.model', '=', 'party.party'), 
('name', '=', 'accounts')]"/>
+            <field name="group" ref="group_account_party"/>
+            <field name="perm_read" eval="True"/>
+            <field name="perm_write" eval="True"/>
+        </record>
+
+        <record model="ir.model.field.access" 
id="access_party_account_payable">
+            <field name="field" search="[('model.model', '=', 'party.party'), 
('name', '=', 'account_payable')]"/>
+            <field name="perm_read" eval="True"/>
+            <field name="perm_write" eval="False"/>
+        </record>
+        <record model="ir.model.field.access" 
id="access_party_account_payable_account_party">
+            <field name="field" search="[('model.model', '=', 'party.party'), 
('name', '=', 'account_payable')]"/>
+            <field name="group" ref="group_account_party"/>
+            <field name="perm_read" eval="True"/>
+            <field name="perm_write" eval="True"/>
+        </record>
+
+        <record model="ir.model.field.access" 
id="access_party_account_receivable">
+            <field name="field" search="[('model.model', '=', 'party.party'), 
('name', '=', 'account_receivable')]"/>
+            <field name="perm_read" eval="True"/>
+            <field name="perm_write" eval="False"/>
+        </record>
+        <record model="ir.model.field.access" 
id="access_party_account_receivable_account_party">
+            <field name="field" search="[('model.model', '=', 'party.party'), 
('name', '=', 'account_receivable')]"/>
+            <field name="group" ref="group_account_party"/>
+            <field name="perm_read" eval="True"/>
+            <field name="perm_write" eval="True"/>
+        </record>
+
+        <record model="ir.model.field.access" 
id="access_party_customer_tax_rule">
+            <field name="field" search="[('model.model', '=', 'party.party'), 
('name', '=', 'customer_tax_rule')]"/>
+            <field name="perm_read" eval="True"/>
+            <field name="perm_write" eval="False"/>
+        </record>
+        <record model="ir.model.field.access" 
id="access_party_customer_tax_rule_account_party">
+            <field name="field" search="[('model.model', '=', 'party.party'), 
('name', '=', 'customer_tax_rule')]"/>
+            <field name="group" ref="group_account_party"/>
+            <field name="perm_read" eval="True"/>
+            <field name="perm_write" eval="True"/>
+        </record>
+
+        <record model="ir.model.field.access" 
id="access_party_supplier_tax_rule">
+            <field name="field" search="[('model.model', '=', 'party.party'), 
('name', '=', 'supplier_tax_rule')]"/>
+            <field name="perm_read" eval="True"/>
+            <field name="perm_write" eval="False"/>
+        </record>
+        <record model="ir.model.field.access" 
id="access_party_supplier_tax_rule_account_party">
+            <field name="field" search="[('model.model', '=', 'party.party'), 
('name', '=', 'supplier_tax_rule')]"/>
+            <field name="group" ref="group_account_party"/>
+            <field name="perm_read" eval="True"/>
+            <field name="perm_write" eval="True"/>
+        </record>
     </data>
 </tryton>

Reply via email to