stock_usability: inventory: set default location via filter on location

This commit is contained in:
Alexis de Lattre
2022-12-27 14:30:24 +01:00
parent 492a7275c2
commit 795e9a1737
2 changed files with 26 additions and 1 deletions

View File

@@ -2,7 +2,7 @@
# @author Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import fields, models
from odoo import api, fields, models
class StockQuant(models.Model):
@@ -27,3 +27,14 @@ class StockQuant(models.Model):
]
action['context'] = {'create': 0}
return action
@api.model
def default_get(self, fields_list):
res = super().default_get(fields_list)
if (
not res.get('location_id') and
self._context.get('search_location') and
isinstance(self._context['search_location'], list) and
len(self._context['search_location']) == 1):
res['location_id'] = self._context['search_location'][0]
return res

View File

@@ -51,6 +51,20 @@
</field>
</record>
<record id="quant_search_view" model="ir.ui.view">
<field name="model">stock.quant</field>
<field name="inherit_id" ref="stock.quant_search_view"/>
<field name="arch" type="xml">
<!-- With the context set via the field location_id
odoo will set default_location_id to [self]
So, to make it work, we also inherit default_get
to convert from list of 1 ID to an ID -->
<field name="location_id" position="attributes">
<attribute name="context">{'search_location': self}</attribute>
</field>
</field>
</record>
<!--
<record id="view_stock_quant_tree_editable" model="ir.ui.view">
<field name="model">stock.quant</field>