[FIX] account: prevent recomputation of related field internal_type

When creating a new `account.account`,
or writing on an existing one, changing the
`type`, the source of the related field
`internal_type`, `user_type_id.type`, was
re-written (re-stored) because the field
was not read-only.

In addition, the re-store of the value
of this field triggered the re-store of the related
field `internal_type` on all other `account.account`
records using this `internal_type`, which leaded to:
 - Performance issues
 - Potential access rights issues, if this leaded
   to write operations on records to which the user
   does not have the access (multi-company rules, among others)

Forcing the field as read-only allow to not pass the value of this
`internal_type` from the web client to the server when
creating or editing an `account.account`.

Besides, the field is required in the view, to correctly trigger
the according onchange method:
```
@api.onchange('internal_type')
def onchange_internal_type(self):
```

opw-660292
Closes #10143
This commit is contained in:
Denis Ledoux
2015-12-22 16:22:13 +01:00
parent 1057542f9f
commit f3ef7001cf
+1 -1
View File
@@ -20,7 +20,7 @@
<field name="tag_ids" widget="many2many_tags" domain="[('applicability', '!=', 'taxes')]" context="{'default_applicability': 'accounts'}"/>
<field name="company_id" options="{'no_create': True}" groups="base.group_multi_company"/>
<field name="currency_id" options="{'no_create': True}" groups="base.group_multi_currency"/>
<field name="internal_type" invisible="1"/>
<field name="internal_type" invisible="1" readonly="1"/>
<field name="reconcile"/>
<field name="deprecated"/>
</group>