Add field access on referential document

issue10269
review332861003
This commit is contained in:
Maxime Richez
2021-10-11 15:35:46 +02:00
parent 17f2f286dd
commit 6ae4a666f3
2 changed files with 36 additions and 0 deletions
+12
View File
@@ -5,6 +5,7 @@ from trytond.model import ModelSQL, fields
from trytond.pyson import Eval
from trytond.pool import PoolMeta, Pool
from trytond.tools.multivalue import migrate_property
from trytond.transaction import Transaction
from trytond.modules.company.model import (
CompanyMultiValueMixin, CompanyValueMixin)
@@ -31,6 +32,17 @@ class Party(CompanyMultiValueMixin, metaclass=PoolMeta):
price_list = config.get_multivalue('sale_price_list', **pattern)
return price_list.id if price_list else None
@classmethod
def copy(cls, parties, default=None):
context = Transaction().context
default = default.copy() if default else {}
if context.get('_check_access'):
fields = ['sale_price_lists', 'sale_price_list']
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 PartySalePriceList(ModelSQL, CompanyValueMixin):
"Party Sale Price List"
+24
View File
@@ -10,5 +10,29 @@ this repository contains the full copyright notices and license terms. -->
<field name="name">party_form</field>
</record>
<record model="ir.model.field.access" id="access_party_sale_price_lists">
<field name="field" search="[('model.model', '=', 'party.party'), ('name', '=', 'sale_price_lists')]"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
</record>
<record model="ir.model.field.access" id="access_party_sale_price_lists_group_sale">
<field name="field" search="[('model.model', '=', 'party.party'), ('name', '=', 'sale_price_lists')]"/>
<field name="group" ref="sale.group_sale"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
</record>
<record model="ir.model.field.access" id="access_party_sale_price_list">
<field name="field" search="[('model.model', '=', 'party.party'), ('name', '=', 'sale_price_list')]"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="False"/>
</record>
<record model="ir.model.field.access" id="access_party_sale_price_list_group_sale">
<field name="field" search="[('model.model', '=', 'party.party'), ('name', '=', 'sale_price_list')]"/>
<field name="group" ref="sale.group_sale"/>
<field name="perm_read" eval="True"/>
<field name="perm_write" eval="True"/>
</record>
</data>
</tryton>