Changelog
Odoo version 19.0
Odoo Online version 18.4
Odoo Online version 18.3
Odoo Online version 18.2
Odoo Online version 18.1
Odoo version 18.0
Searching by name is now implemented as _search_display_name like all other fields. See #174967.
New methods to check access rights and rules now combine both access rights and rules: check_access, has_access and _filtered_access. See #179148.
Translations are made available from the Environment with #174844.
Odoo Online version 17.4
The internal operator inselect is removed. The alternative is to use in with a Query or SQL object. #171371.
Odoo Online version 17.3
We can now group by date parts numbers in read_group, _read_group and domains with #159528.
Odoo Online version 17.2
Odoo Online version 17.1
Method ~odoo.models.Model._flush_search has been deprecated with #144747. The flushing of fields is now done by ~odoo.api.Environment.execute_query, and is based on metadata put in the ~odoo.tools.SQL object by ~odoo.models.BaseModel._search and other low-level ORM methods that build such objects. Those methods are also responsible for checking the access rights on the fields that are used in the SQL object.
Odoo version 17.0
Introduce an ~odoo.tools.SQL wrapper object to make SQL composition easier and safer with respect to SQL injections. Methods of the ORM now use it internally. Introduced by #134677.
Odoo Online version 16.4
Method ~odoo.models.Model.name_get has been deprecated with #122085. Read field display_name instead.
Odoo Online version 16.3
Method ~odoo.models.Model._read_group has a new signature with #110737
Odoo Online version 16.2
Refactor the implementation of searching and reading methods to be able to combine both in a minimal number of SQL queries. We introduce two new methods ~odoo.models.Model.search_fetch and ~odoo.models.Model.fetch that take advantage of the combination. More details can be found on the pull request #112126.
Odoo version 16.0
Translations for translated fields are stored as JSONB values with #97692 and #101115. Code translations are no longer stored into the database. They become static and are extracted from the PO files when needed.
~odoo.models.Model.search_count takes the limit argument into account with #95589. It limits the number of records to count, improving performance when a partial result is acceptable.
Odoo Online version 15.4
New API for flushing to the database and invalidating the cache with #87527. New methods have been added to odoo.models.Model and odoo.api.Environment, and are less confusing about what is actually done in each case. See the section SQL Execution <reference/orm/sql>.
Odoo Online version 15.3
The argument args is renamed to domain for ~odoo.models.Model.search, ~odoo.models.Model.search_count and ~odoo.models.Model._search. #83687
~odoo.models.Model.filtered_domain conserves the order of the current recordset. #83687
~odoo.models.Model.browse does not accept str as ids. #83687
The methods ~odoo.models.Model.fields_get_keys and ~odoo.models.Model.get_xml_id on ~odoo.models.Model are deprecated. #83687
The method ~odoo.models.Model._mapped_cache is removed. #83687
Remove the limit attribute of ~odoo.fields.One2many and ~odoo.fields.Many2many. #83687
Odoo Online version 15.2
Specific index types on fields: With #83274 and #83015, developers can now define what type of indexes can be used on fields by PostgreSQL. See the index property <reference/fields> of odoo.fields.Field.
The _sequence attribute of ~odoo.models.Model is removed. Odoo lets PostgreSQL use the default sequence of the primary key. #82727
The method ~odoo.models.Model._write does not raise an error for non-existing records. #82727
The column_format and deprecated attributes of ~odoo.fields.Field are removed. #82727