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>