TIP: You can type at any time to perform a new search.
Stock Quant Lock
stock_quant_lock · OCA/stock-logistics-workflow
Security findings
Migration considerations
view_stock_quant_form_editable_quant_lock— For a target of Odoo 17.0+: view 'view_stock_quant_form_editable_quant_lock' uses `attrs=`/`states=`, which are no longer supported. Convert modifiers to direct Python boolean expressions in `invisible`/`readonly`/`required`; preserve the original AND/OR logic. migration-view-attrs-states · source
Migration review checklist, not a compatibility verdict. No target version is selected: apply version-specific advice only when migrating to that version or later.
- Repository
- OCA/stock-logistics-workflow · module folder · Try on Runboat
- Module version
- 1.0.0
- Category
- Uncategorized
- Folder size
- 0.07 MB
- License
- AGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://github.com/OCA/stock-logistics-workflow
- Last tracking update
- 2026-10-03 23:25:07
- Authors
- ACSONE SA/NV, Odoo Community Association (OCA), BCIM
- Maintainers
- ACSONE SA/NV, Odoo Community Association (OCA), BCIM
- Committers
- Laurent Mignon (ACSONE), OCA-git-bot, oca-ci
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- None
- Description
This module adds a quant lock mechanism based on standard stock reservations. When a quant is locked, its non-reserved quantity is reserved by a dedicated stock picking so it cannot be consumed by other operations. The lock operation is done through a selectable operation type (picking type) explicitly configured for quant locking. Unlocking cancels the lock picking, which releases the corresponding reservation while keeping full traceability through standard Odoo stock documents.
Code Analysis
Views touched (6)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
quant_search_view_quant_lock |
stock.quant.search.quant.lock | stock.quant | search | Inherits stock.quant_search_view |
view_picking_type_form_quant_lock |
stock.picking.type.form.quant.lock | stock.picking.type | form | Inherits stock.view_picking_type_form |
view_stock_quant_form_editable_quant_lock |
stock.quant.form.editable.quant.lock | stock.quant | form | Inherits stock.view_stock_quant_form_editable |
view_stock_quant_lock_wizard_form |
stock.quant.lock.wizard.form | stock.quant.lock.wizard | form | New |
view_stock_quant_tree_editable_quant_lock |
stock.quant.tree.editable.quant.lock | stock.quant | tree | Inherits stock.view_stock_quant_tree_editable |
view_stock_quant_tree_quant_lock |
stock.quant.tree.quant.lock | stock.quant | tree | Inherits stock.view_stock_quant_tree |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (4)
New fields (1)
-
quant_lock_quant_idMany2one → stock.quantcomodel_name='stock.quant'copy=Falseindex=Truestring='Locked quant'
No public methods.
New fields (1)
-
allow_quant_lockBooleanhelp='If checked, this operation type can be used to lock stock quants.'string='Allow quant lock'
No public methods.
New fields (3)
-
is_locked_by_pickingBooleancompute='_compute_is_locked_by_picking'index=Truestore=Truestring='Locked by issue' -
lock_move_countIntegercompute='_compute_lock_move_count' -
lock_move_idsOne2many → stock.movecomodel_name='stock.move'inverse_name='quant_lock_quant_id'readonly=Truestring='Lock Moves'
-
action_open_lock_wizard(self) -
action_unlock_quant(self) -
action_view_lock_moves(self)
New fields (2)
-
picking_type_idMany2one → stock.picking.typecomodel_name='stock.picking.type'domain="[('allow_quant_lock', '=', True)]"required=Truestring='Operation Type' -
quant_idsMany2many → stock.quantcomodel_name='stock.quant'readonly=Truestring='Quants'
-
action_lock(self) -
default_get(self, fields_list)