When the field is a relation, the field name can not be used to inverse the
domain because the record evaluated it the Relation. So we inverse the domain
with all the field in the domain until find one invalid. If we find any then we
raise a generic error.
issue8597
review270141002
The break when grouped records are greater than IN_MAX, should break all the
loops in order to prevent use of the grouped domain.
issue8474
review257701002
We add to DomainValidationError the invalid domain and the field definition so
the client can format and append it to the description of the error.
issue8288
review255351002
The server adds to the definition of the fields, the definition of relation
fields up to specific deep level.
The clients use this relation fields definition to extend the domain parser
with those fields using a dot notation. But those "dotted fields" are not
shown in the search filter to not bloat the popup as it is dedicated to
learning.
In addition, Dict fields are also filled with relation fields coming from the
keys defined in the schema model. As the size can very large, it is possible
to deactivate this feature from the configuration.
issue8293
review259391005
* Add resources method to ModelStorage
* Support badge on icon
* Display unread and total of notes
* Add two extra colors for icon
issue8122
review70561002
If the record has been removed from the XML file, the db_id field will be
required. So we must not update it and let convert delete the data in
post_import.
issue8051
review70521002
* Allow callable in copy default
* Support dotted notation in copy default
* Use setdefault in copy
* Copy default when needed
* Do not set default state in copy
* Use callable and dotted notation in copy default
issue5576
issue7648
review72291002
Their values should be already validated by the underlying storage and also
the domain validation requires to have a searcher.
issue7507
review48471002
This allows fast return when the checked model has no record in ir.model.data
which is the most common case. This allow to prevent to search for non
existing records.
issue7119
review37991002
In order to support the 0 digits case rstrip was introduced in changeset
d3fec5da0dbdbut it breaks the case where the number of digits is high
as python uses manting representation when converting the float value
to string. This causes the last trailing zero is also removed which
breaks the validation.
issue7091
review37981002
The digits validation on Decimal should remove trailing 0 when create exp.
Because the string of "10.0 ** -0" is "1.0" because it is a float.
issue7091
review39111002
Use a different strategy if we are close to one domain per record.
It will use combined multiple domain at once instead of doing one query for
almost each record validated.
issue6983
review39021002
The _save_values reset the target link of one2many because it will be set by
the setter. But when the one2many is a Function field, it may not have a
target.
issue6872
review42761002
The default value of copy is expected to be the same format as for the default
methods. So the value for xxx2Many fields must be converted.
issue6818
review37751002
An option is added on RPC definition to enforce uniqueness of records
instantiated. The key methods ModeView.button and Workflow.transition have an
assert to detect error in development code.
issue6184
review36411002
The reference fields can have a negative id if no record was selected on the
client. It is not expected to get such temporary instance from a reference
field on a saved record.
issue6091
review26941002
The method set_context does not replace the context but just update it.
So we could have leak of the surrounding into the save context.
issue5614
review28341002