summaryrefslogtreecommitdiff
path: root/addons/stock/static/src
diff options
context:
space:
mode:
authorTiffany Chang (tic) <tic@odoo.com>2020-05-19 12:13:45 +0000
committerTiffany Chang (tic) <tic@odoo.com>2020-06-22 11:55:26 +0000
commit06fa22728bca9069dab6f212bbf8c8a9fd91e7b5 (patch)
tree147787b45c3e44ff01069437357ef5845fd430f7 /addons/stock/static/src
parent9c4b2b5a1d175788bcb81c509f6862de50609866 (diff)
[IMP] stock: update orderpoint view
This commit updates the orderpoint (replenishment) view with the following changes: - group "Min Quantity", "Max Quantity", and "To Order" together - make preferred route "selection" only (note that widget="selection" does not work in list view => standard workaround applied) - renaming of order buttons: "Order" => "Order Once" and "Order Always" => "Automate Orders" - add a link to forecasted inventory report for the product (note this link will show even if there is no data to show in the report) - remove class decorates from replenishing related buttons ("Order Once", "Automate Orders", and "Snooze") Specifications 14 and 15 of inventory usability task. Task: 2206279 Related Enterprise PR: odoo/enterprise#10723 closes odoo/odoo#51681 Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
Diffstat (limited to 'addons/stock/static/src')
-rw-r--r--addons/stock/static/src/js/popover_widget.js30
-rw-r--r--addons/stock/static/src/xml/stock_orderpoint.xml5
2 files changed, 35 insertions, 0 deletions
diff --git a/addons/stock/static/src/js/popover_widget.js b/addons/stock/static/src/js/popover_widget.js
index e3e3db85bab..c31b32a39e0 100644
--- a/addons/stock/static/src/js/popover_widget.js
+++ b/addons/stock/static/src/js/popover_widget.js
@@ -4,6 +4,8 @@ odoo.define('stock.popover_widget', function (require) {
var AbstractField = require('web.AbstractField');
var core = require('web.core');
var QWeb = core.qweb;
+var Context = require('web.Context');
+var data_manager = require('web.data_manager');
var fieldRegistry = require('web.field_registry');
/**
@@ -36,6 +38,7 @@ var PopoverWidgetField = AbstractField.extend({
this.$el.html(QWeb.render(this.buttonTemplape, _.defaults(value, {color: this.color, icon: this.icon})));
this.$el.find('a').prop('special_click', true);
this.$popover = $(QWeb.render(value.popoverTemplate || this.popoverTemplate, value));
+ this.$popover.on('click', '.action_open_forecast', this._openForecast.bind(this));
this.$el.find('a').popover({
content: this.$popover,
html: this.html,
@@ -46,6 +49,33 @@ var PopoverWidgetField = AbstractField.extend({
});
},
+ /**
+ * Redirect to the product graph view.
+ * (Based off of qty_at_date_widget.js method)
+ *
+ * @private
+ * @param {MouseEvent} event
+ * @returns {Promise} action loaded
+ */
+ async _openForecast(ev) {
+ ev.stopPropagation();
+ // Change action context to choose a specific date and product(s)
+ // As grid_anchor is set to now() by default in the data, we need
+ // to load the action first, change the context then launch it via do_action
+ // additional_context cannot replace a context value, only add new
+ const action = await data_manager.load_action('stock.report_stock_quantity_action_product');
+ const additional_context = {
+ grid_anchor: this.recordData.delivery_date_grid,
+ search_default_warehouse_id: [this.recordData.warehouse_id.data.id],
+ search_default_below_warehouse: false
+ };
+ action.context = new Context(action.context, additional_context);
+ action.domain = [
+ ['product_id', '=', this.recordData.product_id.data.id]
+ ];
+ return this.do_action(action);
+ },
+
destroy: function () {
this.$el.find('a').popover('dispose');
this._super.apply(this, arguments);
diff --git a/addons/stock/static/src/xml/stock_orderpoint.xml b/addons/stock/static/src/xml/stock_orderpoint.xml
index 0985d7ff022..a9155181300 100644
--- a/addons/stock/static/src/xml/stock_orderpoint.xml
+++ b/addons/stock/static/src/xml/stock_orderpoint.xml
@@ -29,6 +29,11 @@
</tr>
</tbody>
</table>
+ <button class="text-left btn btn-link action_open_forecast"
+ type="button">
+ <i class="fa fa-fw o_button_icon fa-arrow-right"></i>
+ View Forecast
+ </button>
</div>
<t t-name="StockOrderpoint.Buttons">