Changelog

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

  • The group_operator attribute of Field is renamed into aggregator with #127353.

  • We can now group/aggregate/order by related no-store field with #127353.

Odoo Online version 17.1

  • Method _flush_search() has been deprecated with #144747. The flushing of fields is now done by execute_query(), and is based on metadata put in the SQL object by _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 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 name_get() has been deprecated with #122085. Read field display_name instead.

Odoo Online version 16.3

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 search_fetch() and 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.

  • 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.

Odoo Online version 15.3

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 of odoo.fields.Field.

  • The _sequence attribute of Model is removed. Odoo lets PostgreSQL use the default sequence of the primary key. #82727

  • The method _write() does not raise an error for non-existing records. #82727

  • The column_format and deprecated attributes of Field are removed. #82727