summaryrefslogtreecommitdiff
path: root/addons/base_sparse_field/models/fields.py
AgeCommit message (Collapse)Author
2020-04-03[IMP] core: remove `Field._slots`Raphael Collet
This optimization is no longer necessary. Thanks to Python 3.6's new implementation of dicts, the memory footprint difference between slots and dicts is now around 5%, which is no longer worth the complexity and performance cost. This saves 2% of the total installation time. X-original-commit: c7f17770803744cbbb741fc11265ee914641aed7
2019-08-20[IMP] models: ORM speedupRaphael Collet
This branch is the combination of several optimizations in the ORM: * store field values once in the cache: the cache reflects more faithfully the database, only fields that explicitly depend on the context have an extra indirection in the cache; * delay recomputations by default: use method `recompute` to explicitly flush out pending recomputations; * delay updates in method `write`: updates are stored in a data structure that can be flushed efficiently to the database with method `flush` (which also flush out recomputations); * make method `modified` take advantage of inverse fields to inverse dependencies; * filter records by evaluating a domain on records in Python; * a computed field with `readonly=False` behaves like a normal field with an onchange method; * computed fields are computed in superuser mode by default. Work done by Toufik Ben Jaa, Raphael Collet, Denis Ledoux and Fabien Pinckaers. closes odoo/odoo#35659 Signed-off-by: Denis Ledoux <beledouxdenis@users.noreply.github.com>
2018-01-16[REF] models: improve code of `_create`/`_write`Raphael Collet
Also remove method `self._check_selection_field_value`, and perform the check in field method `convert_to_column`.
2017-05-18[FIX] Always round monetary values in database (#17010)Raphael Collet
Let `create` and `write` round monetary field values before sending them to the database. Pass the values to be written to `field.convert_to_column`, so that the currency can be retrieved from the values, and the value be rounded.
2017-01-19[REF] move support for sparse fields into a separate module (#15070)Raphael Collet
This removal has led to a necessary refactoring: - make the setup of field attributes extensible; - make the instantiation of custom fields extensible; - delegate model and field reflection to `ir.model` and `ir.model.fields`; - move the implementation of sparse and serialized fields to module `base_sparse_field`;