diff options
| author | Raphael Collet <rco@odoo.com> | 2019-08-14 07:35:49 +0000 |
|---|---|---|
| committer | Denis Ledoux <dle@odoo.com> | 2019-08-20 12:43:59 +0000 |
| commit | 9920f20e4c7753bc17bea71dea3a90f7de687196 (patch) | |
| tree | 6a3d0258c10a8ccb1d85949ddafdeb070de78121 /addons/mrp_subcontracting/models | |
| parent | e28d3aa4d3851d72deba08c236072d002f83216a (diff) | |
[IMP] models: ORM speedup
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>
Diffstat (limited to 'addons/mrp_subcontracting/models')
| -rw-r--r-- | addons/mrp_subcontracting/models/stock_picking.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/addons/mrp_subcontracting/models/stock_picking.py b/addons/mrp_subcontracting/models/stock_picking.py index 00a6fbbd11a..734a0e51933 100644 --- a/addons/mrp_subcontracting/models/stock_picking.py +++ b/addons/mrp_subcontracting/models/stock_picking.py @@ -16,16 +16,20 @@ class StockPicking(models.Model): for picking in self: # Hide if not encoding state if picking.state in ('draft', 'cancel', 'done'): + picking.display_action_record_components = False continue if not picking._is_subcontract(): + picking.display_action_record_components = False continue # Hide if no components are track subcontracted_productions = picking._get_subcontracted_productions() subcontracted_moves = subcontracted_productions.mapped('move_raw_ids') if all(subcontracted_move.has_tracking == 'none' for subcontracted_move in subcontracted_moves): + picking.display_action_record_components = False continue # Hide if the production is to close if not subcontracted_productions.filtered(lambda mo: mo.state not in ('to_close', 'done')): + picking.display_action_record_components = False continue picking.display_action_record_components = True |
