Files
odoo_source/odoo/addons/test_new_api/security/ir.model.access.csv
T
d04a5b5c8c [REF] core: compute fields before database insertion.
Until now, stored compute fields were computed after database insertion.
This meant that required fields should not be computed, for instance,
unless some hackish code was added to make it work.  Another trick was
to provide some default value, but this actually prevents the field for
being computed after insertion.

This commit provides a field parameter to specify that the field should
be precomputed: adding precompute=True on the field definition force the
method create() to compute its value before inserting the new record in
the database.  For the reason explained below, precomputing fields is
not always correct, and therefore the default remains to not precompute
a field.

Some stored fields must be computed after insertion, for instance:
* statistics fields computed with search/read_group/...
* fields referencing the current record (res.partner.commercial_partner_id)
* fields referencing another record that does not exist yet (think about
  records created by one2many fields)
* fields depending on the create_date/write_date/create_uid/write_uid

Those fields shouldn't be defined with precompute=True, which triggers
their computation post record creation.  This is why, by safety, we
consider the default behavior to be precompute=False.

closes odoo/odoo#80449

Signed-off-by: Raphael Collet (rco) <rco@openerp.com>
Co-authored-by: Raphael Collet <rco@odoo.com>
Co-authored-by: Yannick Tivisse <yti@odoo.com>
2021-11-30 14:30:48 +00:00

9.4 KiB

1idnamemodel_id:idgroup_id:idperm_readperm_writeperm_createperm_unlink
2access_categorytest_new_api_categorytest_new_api.model_test_new_api_category1111
3access_decimal_precision_test_alldecimal.precision.testmodel_decimal_precision_test1111
4access_discussiontest_new_api_discussiontest_new_api.model_test_new_api_discussion1111
5access_messagetest_new_api_messagetest_new_api.model_test_new_api_message1111
6access_emailmessagetest_new_api_emailmessagetest_new_api.model_test_new_api_emailmessage1111
7access_multitest_new_api_multitest_new_api.model_test_new_api_multi1111
8access_multi_linetest_new_api_multi_linetest_new_api.model_test_new_api_multi_line1111
9access_multi_line2test_new_api_multi_line2test_new_api.model_test_new_api_multi_line21111
10access_multi_tagtest_new_api_multi_tagtest_new_api.model_test_new_api_multi_tag1111
11access_creativework_editiontest_new_api_creativework_editionmodel_test_new_api_creativework_edition1111
12access_creativework_booktest_new_api_creativework_bookmodel_test_new_api_creativework_book1111
13access_creativework_movietest_new_api_creativework_moviemodel_test_new_api_creativework_movie1111
14access_mixedtest_new_api_mixedtest_new_api.model_test_new_api_mixed1111
15access_domain_boolaccess_domain_boolmodel_domain_bool1111
16access_test_new_api_fooaccess_test_new_api_foomodel_test_new_api_foo1111
17access_test_new_api_baraccess_test_new_api_barmodel_test_new_api_bar1111
18access_test_new_api_relatedaccess_test_new_api_relatedmodel_test_new_api_related1111
19access_test_new_api_companyaccess_test_new_api_companymodel_test_new_api_company1111
20access_test_new_api_company_attraccess_test_new_api_company_attrmodel_test_new_api_company_attr1111
21access_test_new_api_compute_inverseaccess_test_new_api_compute_inversemodel_test_new_api_compute_inverse1111
22access_test_new_api_compute_readonlyaccess_test_new_api_compute_readonlymodel_test_new_api_compute_readonly1111
23access_test_new_api_multi_compute_inverseaccess_test_new_api_multi_compute_inversemodel_test_new_api_multi_compute_inverse1111
24access_test_new_api_recursiveaccess_test_new_api_recursivemodel_test_new_api_recursive1111
25access_test_new_api_recursive_treeaccess_test_new_api_recursive_treemodel_test_new_api_recursive_tree1111
26access_test_new_api_cascadeaccess_test_new_api_cascademodel_test_new_api_cascade1111
27access_test_new_api_compute_readwriteaccess_test_new_api_compute_readwritemodel_test_new_api_compute_readwrite1111
28access_test_new_api_compute_onchangeaccess_test_new_api_compute_onchangemodel_test_new_api_compute_onchange1111
29access_test_new_api_compute_onchange_lineaccess_test_new_api_compute_onchange_linemodel_test_new_api_compute_onchange_line1111
30access_test_new_api_compute_dynamic_dependsaccess_test_new_api_compute_dynamic_dependsmodel_test_new_api_compute_dynamic_depends1111
31access_test_new_api_compute_unassignedaccess_test_new_api_compute_unassignedmodel_test_new_api_compute_unassigned1111
32access_test_new_api_one2manyaccess_test_new_api_one2manymodel_test_new_api_one2many1111
33access_test_new_api_one2many_lineaccess_test_new_api_one2many_linemodel_test_new_api_one2many_line1111
34access_test_new_api_binary_svgaccess_test_new_api_binary_svgmodel_test_new_api_binary_svg1111
35access_test_new_api_monetary_baseaccess_test_new_api_monetary_basemodel_test_new_api_monetary_base1111
36access_test_new_api_monetary_relatedaccess_test_new_api_monetary_relatedmodel_test_new_api_monetary_related1111
37access_test_new_api_monetary_customaccess_test_new_api_monetary_custommodel_test_new_api_monetary_custom1111
38access_test_new_api_monetary_inheritsaccess_test_new_api_monetary_inheritsmodel_test_new_api_monetary_inherits1111
39access_test_new_api_field_with_capsaccess_test_new_api_field_with_capsmodel_test_new_api_field_with_caps1111
40access_test_new_api_req_m2oaccess_test_new_api_req_m2omodel_test_new_api_req_m2o1111
41access_test_new_api_selectionaccess_test_new_api_selectionmodel_test_new_api_selection1111
42access_test_new_api_attachmentaccess_test_new_api_attachmentmodel_test_new_api_attachment1111
43access_test_new_api_attachment_hostaccess_test_new_api_attachment_hostmodel_test_new_api_attachment_host1111
44access_test_new_api_model_imageaccess_test_new_api_model_imagemodel_test_new_api_model_image1111
45access_test_new_api_model_aaccess_test_new_api_model_amodel_test_new_api_model_a1111
46access_test_new_api_model_baccess_test_new_api_model_bmodel_test_new_api_model_b1111
47access_test_new_api_model_parentaccess_test_new_api_model_parentmodel_test_new_api_model_parent1111
48access_test_new_api_model_childaccess_test_new_api_model_childmodel_test_new_api_model_child1111
49access_test_new_api_model_child_nocheckaccess_test_new_api_model_child_nocheckmodel_test_new_api_model_child_nocheck1111
50access_test_new_api_displayaccess_test_new_api_displaymodel_test_new_api_display1111
51access_test_new_api_model_active_fieldaccess_test_new_api_model_active_fieldmodel_test_new_api_model_active_field1111
52access_test_new_api_model_many2one_referenceaccess_test_new_api_model_many2one_referencemodel_test_new_api_model_many2one_reference1111
53access_test_new_api_inverse_m2o_refaccess_test_new_api_inverse_m2o_refmodel_test_new_api_inverse_m2o_ref1111
54access_test_new_api_model_binaryaccess_test_new_api_model_binarymodel_test_new_api_model_binary1111
55access_test_new_api_model_child_m2oaccess_test_new_api_model_child_m2omodel_test_new_api_model_child_m2o1111
56access_test_new_api_model_parent_m2oaccess_test_new_api_model_parent_m2omodel_test_new_api_model_parent_m2o1111
57access_test_new_api_model_private_address_onchangeaccess_test_new_api_model_private_address_onchangemodel_test_new_api_model_private_address_onchangebase.group_user1111
58access_test_new_api_req_m2o_transientaccess_test_new_api_req_m2o_transientmodel_test_new_api_req_m2o_transient0000
59access_test_new_api_countryaccess_test_new_api_countrymodel_test_new_api_countrybase.group_user1111
60access_test_new_api_cityaccess_test_new_api_citymodel_test_new_api_citybase.group_user1111
61access_test_new_api_monetary_orderaccess_test_new_api_monetary_ordermodel_test_new_api_monetary_order1111
62access_test_new_api_monetary_order_lineaccess_test_new_api_monetary_order_linemodel_test_new_api_monetary_order_line1111
63access_test_new_api_model_selection_baseaccess_test_new_api_model_selection_basemodel_test_new_api_model_selection_base1111
64access_test_new_api_model_selection_requiredaccess_test_new_api_model_selection_requiredmodel_test_new_api_model_selection_required1111
65access_test_new_api_model_selection_non_storedaccess_test_new_api_model_selection_non_storedmodel_test_new_api_model_selection_non_stored1111
66access_test_new_api_model_selection_required_for_write_overrideaccess_test_new_api_model_selection_required_for_write_overridemodel_test_new_api_model_selection_required_for_write_override1111
67access_test_new_api_moveaccess_test_new_api_movemodel_test_new_api_move1111
68access_test_new_api_move_lineaccess_test_new_api_move_linemodel_test_new_api_move_line1111
69access_test_new_api_paymentaccess_test_new_api_paymentmodel_test_new_api_payment1111
70access_test_new_api_orderaccess_test_new_api_ordermodel_test_new_api_order1111
71access_test_new_api_order_lineaccess_test_new_api_order_linemodel_test_new_api_order_line1111
72access_test_new_api_model_shared_cache_compute_parentaccess_test_new_api.model_shared_cache_compute_parentmodel_test_new_api_model_shared_cache_compute_parent1111
73access_test_new_api_model_shared_cache_compute_lineaccess_test_new_api.model_shared_cache_compute_linemodel_test_new_api_model_shared_cache_compute_line1111
74access_test_new_api_compute_containeraccess_test_new_api_compute_containermodel_test_new_api_compute_container1111
75access_test_new_api_compute_memberaccess_test_new_api_compute_membermodel_test_new_api_compute_member1111
76access_test_new_api_compute_editableaccess_test_new_api_compute_editablemodel_test_new_api_compute_editable1111
77access_test_new_api_compute_editable_lineaccess_test_new_api_compute_editable_linemodel_test_new_api_compute_editable_line1111
78access_test_new_api_model_constrained_unlinksaccess_test_new_api_model_constrained_unlinksmodel_test_new_api_model_constrained_unlinks1111
79access_test_new_api_trigger_leftaccess_test_new_api_trigger_leftmodel_test_new_api_trigger_left1111
80access_test_new_api_trigger_middleaccess_test_new_api_trigger_middlemodel_test_new_api_trigger_middle1111
81access_test_new_api_trigger_rightaccess_test_new_api_trigger_rightmodel_test_new_api_trigger_right1111
82access_test_new_api_precomputeaccess_test_new_api_precomputemodel_test_new_api_precompute1000
83access_test_new_api_precompute_lineaccess_test_new_api_precompute_linemodel_test_new_api_precompute_line1000
84access_test_new_api_precompute_comboaccess_test_new_api_precompute_combomodel_test_new_api_precompute_combo1000
85access_test_new_api_precompute_editableaccess_test_new_api_precompute_editablemodel_test_new_api_precompute_editable1000
86access_test_new_api_precompute_requiredaccess_test_new_api_precompute_requiredmodel_test_new_api_precompute_required1000