From 3962bb1c131915e552dc703d76de3713a3482aab Mon Sep 17 00:00:00 2001 From: nie Date: Wed, 20 Jan 2021 15:36:27 +0000 Subject: [PATCH] [FIX] board,stock: cannot add stock on hand report to dashboard Steps: - Install Inventory and Dashboard - Go to Inventory > Reporting > Inventory Report - Click Favorites - Add to my Dashboard is missing - Open the Favorites dropdown again - Click Add to my Dashboard Bug: Error: Could not add filter to dashboard Explanation: This report action window is created dynamically by the server action `action_view_quants`. The `id` isn't present, but it's not needed to display the view. However, in order to create a dashboard item, the `id` of an action is required as seen here: https://github.com/odoo/odoo/blob/cfb5e6e82a773fee0342d5e0417bae4efeb7f0bb/addons/board/controllers/main.py#L16 This commit adds the ID of a new simple `ir.actions.act_window`. Reusing `product_template_open_quants` is not possible because, when refreshing the page, the view hasn't got any `active_ids`. The menu item only appears after reopening the Favorites dropdown because the frontend checks if the `id` of the action is present here: https://github.com/odoo/odoo/blob/cfb5e6e82a773fee0342d5e0417bae4efeb7f0bb/addons/board/static/src/js/add_to_board_menu.js#L35-L40 but re-renders it every time the dropdown is closed, no matter what: https://github.com/odoo/odoo/blob/cfb5e6e82a773fee0342d5e0417bae4efeb7f0bb/addons/board/static/src/js/add_to_board_menu.js#L50-L53 This commit also prevents the item from appearing after clicking multiple times on the button. opw:2426986 closes odoo/odoo#65383 X-original-commit: 9c9c4117ccc705dc47a67f659425de67e200542f Signed-off-by: Nicolas Lempereur (nle) Signed-off-by: backspac --- addons/stock/i18n/stock.pot | 1 + addons/stock/models/stock_quant.py | 4 ++++ addons/stock/views/stock_quant_views.xml | 5 +++++ 3 files changed, 10 insertions(+) diff --git a/addons/stock/i18n/stock.pot b/addons/stock/i18n/stock.pot index 5c4f564558a..706a734956a 100644 --- a/addons/stock/i18n/stock.pot +++ b/addons/stock/i18n/stock.pot @@ -6099,6 +6099,7 @@ msgstr "" #. module: stock #: code:addons/stock/models/stock_quant.py:0 +#: model:ir.actions.act_window,name:stock.dashboard_open_quants #, python-format msgid "Stock On Hand" msgstr "" diff --git a/addons/stock/models/stock_quant.py b/addons/stock/models/stock_quant.py index a6b1192f36f..27615327ecc 100644 --- a/addons/stock/models/stock_quant.py +++ b/addons/stock/models/stock_quant.py @@ -615,6 +615,10 @@ class StockQuant(models.Model): """ } + target_action = self.env.ref('stock.dashboard_open_quants', False) + if target_action: + action['id'] = target_action.id + if self._is_inventory_mode(): action['view_id'] = self.env.ref('stock.view_stock_quant_tree_editable').id form_view = self.env.ref('stock.view_stock_quant_form_editable').id diff --git a/addons/stock/views/stock_quant_views.xml b/addons/stock/views/stock_quant_views.xml index 1ae0fed8101..45128f812fd 100644 --- a/addons/stock/views/stock_quant_views.xml +++ b/addons/stock/views/stock_quant_views.xml @@ -207,6 +207,11 @@ + + Stock On Hand + {'search_default_internal_loc': 1, 'search_default_productgroup':1, 'search_default_locationgroup':1} + stock.quant + {'search_default_productgroup': 1} [('location_id', 'child_of', active_ids)]